游戏开发

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

2
图形引擎/编程/等资源?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 4年前关闭。 在这里而不是在这里发布这个问题,因为它与游戏开发有关。 我的困境是:这是我在CompSci第一学期后的暑假,我已经学到了足够的C ++知识,可以真正开始使用更高级的东西。 在我自学线性代数,三角学等之前,我还不想开始游戏编程。但是,我确实想知道游戏编程中使用的基础知识,理论和方法! 我以为我在大学图书馆里有一些不错的书,但是从90年代初到2002年,这些书在游戏编程或游戏引擎或游戏/图形学方面的书籍已经过时了。 了解计算机技术的瞬息万变的状况,我认为从一本已有十年历史的书中获取有关尖端技术的知识不是一个好主意。亚马逊本身让我一无所知。 我不想要的:一本与平台有关的书。我不打算学习OpenGL,Direct3D或任何特定的API。我只想了解诸如棋盘格装饰,GPU如何处理事物,引擎盖下发生的事情以及现有的哪种射线追踪和辐射度方法之类的事情。基础知识,核心概念-诸如此类。 我希望这很清楚!欢迎书籍,资源。虽然我更喜欢一本书而不是网站!
10 books  assets 


6
使pygame的帧速率更快
通过对游戏进行性能分析,我发现我的爱好游戏的绝大部分执行时间都在blit和flip调用之间。目前,它仅以13fps的速度运行。我的显卡相当不错,所以我猜想pygame没有使用它。 有人知道我需要在pygame中设置任何图形/显示选项以使其更快吗?还是自选择pygame以来我必须忍受的东西?


3
为什么Farseer 2.x将临时人员存储为成员而不是堆栈中?(。净)
更新:此问题涉及Farseer2.x。较新的3.x似乎没有这样做。 目前,我在广泛使用Farseer Physics Engine,并且我注意到它似乎将许多临时值类型存储为类的成员,而不是像人们期望的那样存储在堆栈中。 这是来自Body该类的示例: private Vector2 _worldPositionTemp = Vector2.Zero; private Matrix _bodyMatrixTemp = Matrix.Identity; private Matrix _rotationMatrixTemp = Matrix.Identity; private Matrix _translationMatrixTemp = Matrix.Identity; public void GetBodyMatrix(out Matrix bodyMatrix) { Matrix.CreateTranslation(position.X, position.Y, 0, out _translationMatrixTemp); Matrix.CreateRotationZ(rotation, out _rotationMatrixTemp); Matrix.Multiply(ref _rotationMatrixTemp, ref _translationMatrixTemp, out bodyMatrix); } public Vector2 GetWorldPosition(Vector2 localPosition) …


2
在Unity中生成随机数而不会产生类歧义
我在Unity(C#)中有一个要创建随机数的问题。我想使用System.Random(reference:using System),但是Unity抱怨它与自己的模棱两可UnityEngine.Random。我不能指定引用(使用System.Random),因为random它不是名称空间。如何指定我要随机使用系统而不是Unity系统?
10 unity  c# 

1
如何在生成的锥化网格上修复Z字形UV贴图伪像?
我正在基于曲线创建程序网格,如下图所示,整个曲线的网格尺寸都变小了。 问题是UV会随着大小的变化而呈锯齿状(当整个曲线的网格大小相同时,UV会完美地起作用)。 Vertices.Add(R); Vertices.Add(L); UVs.Add(new Vector2(0f, (float)id / count)); UVs.Add(new Vector2(1f, (float)id / count)); start = Vertices.Count - 4; Triangles.Add(start + 0); Triangles.Add(start + 2); Triangles.Add(start + 1); Triangles.Add(start + 1); Triangles.Add(start + 2); Triangles.Add(start + 3); mesh.vertices = Vertices.ToArray(); //mesh.normals = normales; mesh.uv = UVs.ToArray(); mesh.triangles = Triangles.ToArray(); 我怎样才能解决这个问题?

4
如何使寻路算法适应受限运动?
想象一下类似汽车的运动,其中实体无法打开一角钱。为了便于讨论,请说在高速行驶时它们可以每秒旋转90度。在许多情况下,这将更改最佳路径,并因此更改寻路。它甚至可能使“常规”路径完全无法遍历。 是否有任何寻路算法或运动计划算法可以牢记这一点,或者是否有简单的方法来适应流行的算法?
10 path-finding  car 


2
为什么Unity图层蒙版需要使用位移?
我终于弄清楚了为什么我的地面碰撞代码的图层蒙版不起作用。我曾经NameToLayer()用来获取所需的图层,但是图层蒙版使用位移来实际设置图层蒙版值。这是非常不寻常的,我看不出任何原因都无法在后面的代码中处理。为什么我们必须使用如下代码: mask = 1 << LayerMask.NameToLayer("Default"); 当这样的事情: mask = LayerMask.NameToLayer("Default"); 更加直观,并且与Unity API的其余部分类似?
10 unity  c# 

3
两个定向包围盒(OBB)之间最快的3D碰撞检测
我在游戏中需要添加碰撞系统的时刻。我尝试了jBullet,尽管它确实起作用了,但这并不是我想要的。我只想要一种简单的方法来测试两个面向边界的框(OBB)树是否碰撞。 我本来是要用那棵树做碰撞的。制作一个AABB进行广相,然后通过测试,如果树中的每个OBB与另一棵树发生碰撞。 我确实在互联网上找到了一些东西,但是我无法完全理解它们。我要的是一个很好地解释3D OBB碰撞的网站或资源? 我了解到,GJK比SAT更快,它似乎能够告诉我这些盒子相互穿透的距离。我找到了一些GJK东西,但它们不是盒子。相反,事情变得更加复杂和混乱。 我只希望能够通过3个向量制作OBB:中心,大小和每个轴的旋转。然后能够测试与这些碰撞。预先感谢您发布的任何内容。

2
何时使用C ++和何时使用蓝图?
我正在尝试学习如何使用虚幻引擎。我有C ++的基本知识。最近,我开始做一个生存恐怖游戏,这是我只是为了学习经验而做的一个项目。到目前为止,尽管我已经通过Blueprint系统实现了所有功能。 所以我的问题是,什么时候以及何时使用代码来改进/制作虚幻引擎中的游戏?
10 c++  unreal-4 

2
2D游戏和现代OpenGL
前概念 好的,到目前为止,我收集的是: 不要使用固定的管道(已弃用或将要弃用) vbos存储“对象模型”(主要是n个顶点数据) vaos描述了如何放置数据,以便绘图调用知道每个vbo的哪一部分是关于哪种顶点信息的(一个vao可以引用多个vbo,相反则有点困难) 每个绘制调用还将顶点数据发送到着色器 我如何看待3D(可选) 有了这些信息,我可以看到使用现代OpenGL绘制3D复杂对象的效果如何。您基本上是将一堆对象模型(可能来自Blender或其他类似软件)加载到具有局部坐标的VBO中,然后只需为对象的每个实例提供不同的着色器参数(偏移量)即可绘制到世界空间。 问题/问题 但是,在2D中,问题和优先级完全不同。您不需要绘制很多复杂的对象,也不需要复杂的投影矩阵,并且着色器和着色器要简单得多。 用现代OpenGL频繁(实际上经常,基本上每帧)绘制变化的几何形状的最佳方法是什么? 在下面的段落中,您可以看到一些问题的想法(圆形和矩形问题),可以更好地识别我感兴趣的更改类型。 我的尝试(可选) 因此,我开始考虑如何处理在屏幕上绘制基本的2D几何: 正方形:[(1, 0), (1, 1), (0, 1), (0, 0)]在局部空间中为正方形的几何图形加载VBO,然后为着色器提供正方形的实际宽度以及世界坐标和颜色信息 冷却,看起来很容易。让我们转到一个圆圈: 一个圆圈:三角形风扇。精度(顶点数)多少?对于小圆圈,精度必须较低,对于错误环,精度必须较高。显然,加载1个VBO可能无法满足所有情况。如果由于圆的大小被调整为更大而需要增加精度怎么办? 不太酷。让我们移动到稍微容易一点的矩形: 矩形:嗯。没有“常规矩形几何体”。您只需要一个宽度/高度比例即可,但是,如果尺寸改变,每个矩形可能会有所不同。 如您所见,事情从那里走下坡路。特别是对于复杂的多边形等等。 无代码政策:P 我只需要一个大概的想法,不需要任何代码,尤其是C或C ++代码。就像这样说:“使用此顶点数据创建一个VBO,然后将其绑定,...”。
10 opengl  2d  vbo  vao 

3
确定网格上的一组拼贴是否形成封闭的形状
给定网格上的一组图块,我想确定: 如果瓷砖是一个封闭的图形 如果将板的侧面算作图形的边缘时,这些瓷砖形成一个封闭的图形 如果前两个陈述中的任何一个为真,则附加图块中的其他图块将形成初始图块。 玩家将首先按下一个图块,然后将其手指拖动到其他图块以创建一串相同颜色的图块。我将检查下一个磁贴是否有效。例如 如果玩家在红瓦开始,他们唯一的下一个有效的行动是到邻近的红瓦(对角线做计数)。当用户抬起手指时,我需要能够检查上述3个项目。 所以我最初的想法是,由于我每次走时都要检查链条的有效性,所以当玩家抬起手指时,我可以检查第一个和最后一个瓷砖是否相邻。(我已经知道它们是相同的颜色。)如果它们相邻,我会预感会做出一个封闭的图形,然后我要来这里尝试看看我是否丢失了一些大东西,并得到某种逻辑/数学证明,我的直觉是正确的(或一个例子证明它是错误的。) 但是那时候我想到了项目2:我还必须考虑使用木板边缘作为封闭图形侧面的链条。在这种情况下,链中的第一个项目和最后一个项目不会相邻,但是我仍然会附上一个数字。所以现在我回到正题。 我应该如何处理这一系列的网格坐标,以确定它们是否包含封闭的图形?有一次我不知道我有一个封闭的身影,那是什么让那个属于其范围内的所有瓷砖的附加列表的最佳方式? 上面我画了我期望该测试有4种可能结果的图片。 链没有附上数字。 链确实有一个封闭的数字。 如果将板的侧面算作图形的边缘(或一个以上的边缘),则链条会形成一个封闭的图形。 该链的确制作了一个封闭的图形,但是有一些额外的数据点(用户已有效选择作为链的一部分),这些数据点不属于所创建图形的一部分。 情况4是最棘手的,因为您必须提取“额外”链节以找到封闭的图形和落入其中的零件(但不能围绕“未封闭”的区域)。 所以...有人想办法解决这个问题,还是对我来说只是一个起点?在这一点上,我有点转圈,可以使用另一组眼睛。
10 algorithm  grid  graph 

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.