游戏开发

专业和独立游戏开发人员的问答

3
制作实时多人平台游戏涉及什么?
我正在创建一个具有“合作”功能的平台游戏,我想通过网络/互联网来工作。 现在,我已经阅读了有关网络游戏编程的文章,其中包括诸如每个程序员都需要了解的有关游戏网络的文章,因此我了解了Peer-to-Peer锁步和服务器-客户端预测架构等技术之间的区别: 我得出的结论是,对于将要在互联网上玩的任何实时游戏,“对等”锁步根本不是一种选择。 我还担心即使对于平台游戏者,由于服务器往返的作用和反应之间的延迟,简单的客户端-服务器体系结构(没有某种客户端预测)也会导致游戏性能下降。(话虽如此,我想消除对中央服务器的需求,所以只有其中一个参与者,即客户端,实际上会遇到这种延迟)。 这让客户可以预测,但是即使对于像平台游戏这样的简单游戏,这听起来仍然很复杂。 我将如何为多人平台游戏创建有效的客户预测系统?

4
可以正确模拟台球游戏的物理引擎推荐?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 6年前关闭。 我正在做类似台球游戏的游戏。此游戏需要正确(或非常准确)的反射反弹。我尝试了Box2D和Bullet Physics,但是它们都存在此问题。 如果此图像上方有一堵墙,则在台球游戏中,红线是真实球的预期路线。但是引擎经常显示绿线路线。特别, 这是在缓慢移动的球撞击墙壁后发生的。 有时快速移动的球突然变慢。 我正在寻找一种物理引擎,该引擎可以尽可能准确地模拟台球游戏而不会出现这些问题。我可以得到一些建议吗?现在,我正在研究Newton Game Dynamics,但不确定引擎是否会显示我想要的内容。我正在考虑将PhysX引擎作为下一个试用版,如果无济于事,必须自己动手做。但是很明显,这将需要很长时间,所以我希望我不会那样做。如果您节省时间,我将不胜感激。当然,也欢迎使用Box2D / Bullet Physics解决方案。 我正在iOS上使用C / C ++ / Objective + C。 我将我的配置附加到Box2D。 墙 静态盒形 线性/角度阻尼= 0.1 恢复原状= 1.0 摩擦力= 100 密度= 10 项目符号=错误 固定旋转=假 惯性比例= 1.0 球 动态球体形状 线性/角度阻尼= 0.1 恢复原状= 1.0 摩擦力= 100 …
13 physics 

3
试图了解Opengl上的光线,如何模拟逼真的阳光?
我不知道我做错了什么还是错过了什么,但我想模拟阳光,例如在晴天。 当物体面对定向光时,它的光线很好,那里没有问题。如果我绕过该物体并回头看,那是黑暗的。并不是因为我正在使用GL_AMBIENT而太暗,但对于晴天来说仍然太暗了。如果增加该值,它将永远看起来不会更好,因为物体面向光的一侧会太亮。 而且,环境光还有一个烦人的问题,当看着物体的背面时,我看不到任何形状,只有纯色。很难解释,下面是一些图片: 对象前:http : //i.stack.imgur.com/YW53X.png对象前:http : //i.stack.imgur.com/Qufha.png 如您所见,正面看起来很漂亮,可以看到红色的形状。在背面,很简单,看不到相同的形状。 现在,我知道我正在看物体的背面,并且我朝光的方向看,它应该比正面暗。但是它不应该看起来像这样简单。这不是我们在阳光下看着某个物体时看到的,我们看到这些物体形成了某种形状。 如何在OpenGL上具有相同(或相似)的效果? 我的灯光当前定义如下: float posLight0[4] = {-1.0f, 1.0f, 1.0f, 0.0f}; float ambLight0[4] = {0.5f, 0.5f, 0.5f, 0.5f}; glLightfv(GL_LIGHT0, GL_POSITION, posLight0); glLightfv(GL_LIGHT0, GL_AMBIENT, ambLight0);
13 opengl  lighting 

2
预测敌人的位置,以使物体领先于目标
在我的2D游戏中,我有AI炮塔,应该通过自动向敌人射击来辅助玩家。我想让他们明智地开火并领导目标,而不仅仅是瞄准敌人的当前位置。因此,给定敌人和炮塔的弹丸的(始终是恒定的)速度和位置矢量,我如何找到一个代表炮塔必须相交的实际位置的矢量,以使弹丸与敌人相交(并命中)? 任何描述数学,算法等文章的链接将不胜感激!
13 algorithm  ai  aiming 



3
如何从Tilemap获取所有图块?
我一直在尝试TileMap在Unity中使用新系统,我一直在寻找一种以列表或2D数组形式访问图块的方法,但是除了GetTile(Vector3Int vector)返回仅一个图块之外,我什么都找不到。去做这个 ?
13 unity  tilemap 


2
如何使用Input.GetAxis(“ Mouse X / Y”)旋转相机?
我想制作一个随鼠标旋转的第一人称相机。 我查看了Input.GetAxis Scripting API页面,并找到了示例代码,该代码已包含在文章的底部。试用后,我意识到,尽管它具有与希望的基本功能相同的功能,但它并不能使相机与xz平面平行,尤其是在圈动鼠标时。片刻之后,相机将处于一个奇怪的角度,并且播放器将完全被破坏! 是否有此代码的快速修复程序会以某种方式限制相机的移动,或者是否有更好的旋转相机的方法? using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public float horizontalSpeed = 2.0F; public float verticalSpeed = 2.0F; void Update() { float h = horizontalSpeed * Input.GetAxis("Mouse X"); float v = verticalSpeed * Input.GetAxis("Mouse Y"); transform.Rotate(v, h, 0); } }
13 unity  camera 

1
不同对象的不同着色器DirectX 11
我正在学习Direct3D 11,在有关着色器编写的所有基本教程中,都编写了顶点着色器和像素着色器,因此它们以相同的方式变换整个场景。教程喜欢用纹理渲染立方体... 但我想知道,您如何区分对象?例如,如果要模拟某个对象上的镜面并使用不同的着色器来渲染场景的其余部分,该怎么办?我认为大多数游戏必须使用许多顶点和像素着色器才能实现各种外观和变换。 谢谢。
13 c++  directx11 


4
OpenGL中“缓冲区”和“数组”之间的区别?
当我在webGL或OpenGL上阅读文档时,可以看到一些有关如何使用函数和对象名称的模式。但是我不明白缓冲区对象和数组之间的区别。 有“顶点缓冲区对象”,“顶点数组对象”,甚至某种“缓冲区数组”或“ arraybuffer”。 在OpenGL上下文中,什么时候是“数组”,什么时候应该叫做“缓冲区”?
12 opengl  webgl 

6
一组图块边界的高效算法
想要改善这篇文章吗?提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 我有一个已知的有限大小的瓷砖网格,可以形成地图。地图内的某些图块放置在称为“区域”的集合中。该区域是相连的,但对其形状一无所知。在大多数情况下,它是一个相当规则的斑点,但它可能在一个方向上被拉长,甚至可能有孔。我有兴趣找到该领土的(外)边界。 也就是说,我想要一个列表,列出所有与区域中的某个区域相关但未在区域中的区域。找到这个的有效方法是什么? 额外的困难是,我的图块是十六进制的,但是我怀疑这并没有太大的区别,每个图块仍标记有x和y整数坐标,并且给定一个图块,我可以轻松找到它的邻居。下面是一些示例:黑色是领土,蓝色是我要查找的边界。 这本身并不是一个难题,用伪python的一种简单算法是: def find_border_of_territory(territory): border = [] for tile in territory: for neighbor in tile.neighbors(): if neighbor not in territory and neighbor not in border: border.add(neighbor) 但是,这很慢,我想要更好的东西。我在整个领土上有一个O(n)循环,在所有邻居上有另一个循环(虽然很短,但仍然),然后我必须检查两个列表的成员资格,其中一个列表的大小为n。这给定了O(n ^ 2)的可怕比例。我可以通过使用集而不是边界和地区列表来将其简化为O(n),以便快速检查成员资格,但这仍然不是很好。我希望在很多情况下,由于面积和线比例缩放的原因,领土很大但边界很小。例如,如果区域是半径为5的十六进制,则其大小为91,而边框的大小仅为36。 谁能提出更好的建议? 编辑: 要回答以下一些问题。区域的大小范围从20到100左右不等。形成区域的图块集是一个对象的属性,而这个对象需要所有边界图块的集合。 最初,领土是作为一个街区创建的,然后大部分都是一块一块地获得。在这种情况下,确实最快的方法是保留一组边界并仅在获得的图块上更新它。有时,可能会对该地区进行重大更改-因此需要重新计算。 我现在认为,执行简单的边界查找算法是最好的解决方案。这带来的唯一额外复杂性是确保可能需要每次都重新计算边界,但不超过此数目。我非常有信心可以在当前框架中可靠地完成此操作。 至于时间,在我当前的代码中,我有一些例程需要检查该区域的每个图块。不是每回合,而是在创作时以及随后的创作中。即使它只是完整程序的很小一部分,也要花费我的测试代码运行时间的50%以上。因此,我渴望尽量减少重复。但是,测试代码涉及的对象创建要比程序正常运行(自然)要多得多,因此我意识到这可能不太相关。

3
如何计算玩家的参与度?
可以使用什么指标来了解某些人对游戏的看法以及他们对游戏的喜爱程度?我希望不需要玩家自己评分的参数。在一个座位上玩几个小时是否会成为多少玩家想要花时间在游戏上的好参数?

3
3D模型预算。重要的是三角形或顶点的数量更多
当我为3D游戏制作模型时,应该在预算多边形(三角形)或顶点中采取什么措施?我用两套40000立方体进行了一个实验,其中一个立方体有8个顶点和12个三角形,另一组有24个顶点和12个三角形。所有这些都是在Unity中完成的,并且两者都是程序生成的。令我惊讶的是,两套乐器的表现几乎相同,两者之间的差别很小。 这是否意味着我不应该担心顶点数而只关注三角形数? 编辑:我做了另一个实验,我创建了一个包含19602个三角形和10000个顶点的平面,以及另一个具有相同数量的三角形但有39204个顶点的平面。我都产生了4000。现在,较少的顶点赢得了14 fps到19 fps的帧。因此,我想一般来说,少即是好,但只有大的差异。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.