游戏开发

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


2
建立三角形邻接数据
给定一个三角形索引列表,如何将其转换为具有几何着色器邻接关系的索引列表呢? 请注意,我们在这里严格地讨论索引 -存在顶点,但是我们将仅关注索引,因为我们可以使用它们来匹配重复的顶点,而不必进行浮点比较和epsilon-这项工作已经完成了。 我知道对于列表中的任何给定三角形,索引为{0,1},{1,2}和{2,0}(或{n,n + 1},{n + 1,n + 2},{ n + 2,n}(如果您愿意)的形式形成边缘;索引列表格式正确,并正确遵守绕线顺序。 我知道,对于任何给定的此类边缘,我们都可以在整个列表中搜索使用两个索引的另一个三角形,并且该三角形的第三个索引是用于完成该边缘的相邻三角形的索引。 我知道在邻接表中,每个原始三角形都由6个索引表示,原始索引分别进入插槽0、2、4;完成邻接的新索引进入插槽1、3、5。边缘{0,1}完成的索引进入插槽1,边缘{1,2}完成的索引进入插槽3,索引完成以完成边{2,1}进入插槽5。 我尝试了什么? 我已经尝试过强行使用,是的,那行得通,但是我追求的是更优雅的方法。 我已经尝试了Eric Lengyel的边缘列表生成器,但是(1)它似乎并不遵循原始的三角形顺序,(2)它似乎并不遵循缠绕的顺序,(3)泥泞无处接下来,在构建边缘列表之后,以及(4)我怀疑示例代码具有明显的明显错误,例如“ triangleIndex”与“ faceIndex”-作者甚至编译了代码,没关系将其运行到验证吗? 那么-从这里开始有什么建议或指示吗?

2
世界界限-(0,大小)或(-HalfSize,HalfSize)?
创建在其中移动,绘制和碰撞对象的游戏空间时,最好将(0,0)点或(0,0,0)点放在空间的正中心,这样世界的界限是(-halfSize,halfSize),还是最好将它放在空间的最远角落,所以界限是(0,size)? 每种方案的利弊分别是什么?还是真的没关系吗? 看来这只是次要的细节,但我想看看是否存在我可能忽略的重大问题。

1
新手手游开发商| 自行发布还是发布商发布?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 因此,我们几乎完成了在Android上开发的首款独立游戏。我们相信游戏具有潜力,我们的图形专家非常出色,因此我们的游戏中有很多不错的选择。 现在我们正在考虑应该从什么开始?我们可以购买Google Play帐户并自己启动它,但是我们不确定是否能够很好地宣传它并从中获得更大收益。 或者,我们可以联系发布商,并讨论一些交易。 哪一个更好?考虑到这只是我们的第一款游戏,两者的优缺点是什么,我们打算做得更多。还考虑到我们还只是高中一年级的学生。我们希望从中产生一些收入。 与发布商联系的最佳方法是什么?我们如何对待他们并与他们打交道? 非常感谢您的帮助!

1
如何从第二个游戏中的摄像机录制,然后将其导出到视频文件?
我正在Unity中制作PC恐怖游戏,我想在游戏中进行摄像机录制模拟-这样您就可以随时离开一个令人毛骨悚然的位置,并且在浏览时您会得到一盘录像带。 从技术上讲,我需要在角色的手上安装第二个摄像头(手持摄像头),然后让玩家通过按下按钮浏览取景器。但是无论在任何位置,手持摄像机都必须记录该点聚焦的所有内容-地板,楼梯,垃圾等,无论是将其放低还是抬高以符合玩家的视线。 游戏结束时(玩家离开或死亡),我想选择一个选项,将录制的磁带保存到视频文件中(如果不可能,则保存到一些保存文件中)。 如何在游戏中实现这种功能?是否有一些特殊的Unity技巧,附加组件和附加模块?使用主动触发器保存装饰和场景,还是仅从屏幕上抓取视频? 以下是我的意思的快速MSPaint概念:


5
技巧与运气,比率及其度量
玩家好友,有一个术语来描述游戏中与运气相比的差异水平。纸牌游戏的战争将具有0技能和1.0运气,因为玩家无法影响游戏。我想不出具有1.0技能的东西。起初我以为是Spelling Bee,但是为每个参赛者选择的单词都是随机选择的,这暗示了其中的运气。不同游戏的比率是多少,如何准确地测量这些比率?可以使用什么度量标准来准确地测量该比率?我也想听听任何1.0技能的游戏,只要有人能想到。 为了清楚地重申这个问题:是否存在这样的衡量标准?此外,此测量的目标还有一个术语,因此我们可以使用名词进行讨论。 编辑:运气一词用于描述机会(即随机事件)对获胜者的影响程度。感谢大家的回应。

2
为什么公司仍使用旧版本的Visual Studio?
我了解为什么使用C ++。这不是这个问题的意思。 当我安装游戏时,通常使用Steam(这些天我几乎只使用Steam)会安装可分发的C ++ 2005 Runtime。 我的问题是为什么会这样?八年前发布的运行时仍然流行的原因是什么?我最近安装的某些游戏的年龄稍大一些,因此假设开发时间为几年,则可以证明它是当时已经过尝试和测试的标准。 为什么游戏公司不使用较新版本的VC ++运行时?
9 c++ 

2
使用两个着色器,而不是一个带IF语句的着色器
我一直在努力将相对较大的opengl ES 1.1源移植到ES 2.0。 在OpenGL ES 2.0(这意味着所有内容都使用着色器)中,我想绘制3次茶壶。 第一个具有统一的颜色(例如旧的glColor4f)。 第二个,具有每个顶点的颜色(茶壶也具有顶点颜色的数组) 第三个,具有每个顶点的纹理 也许是第四个,同时具有每个顶点的纹理和颜色。然后可能是第五名,也有法线。 据我所知,实现有两种选择。第一个方法是制作支持以上所有内容的着色器,并设置要更改其行为的均匀性(例如,使用奇异颜色均匀性或每个顶点颜色均匀性)。 第二种选择是为每种情况创建一个不同的着色器。使用一些自定义的着色器预处理,并不是那么复杂,但是要担心的是在图形对象之间切换着色器的性能成本。我读过它并不小。 我的意思是,执行此操作的最佳方法是同时进行构建和度量,但最好听取任何意见。
9 opengl-es  glsl 


1
在GPU上生成地形
在我的引擎中,我使用在CPU上计算的Perlin噪声算法来创建无限地形。 创建地形的过程如下: 如果相机靠近卸载的补丁,请创建它 计算给定边界的513x513噪声阵列 计算法线,切线,双法线,索引 将数据传递给vbo 优点: 仅在需要时才需要渲染 容易发生碰撞 骗局 在3,1s(一个线程)中创建了缓慢的64513x513补丁。对于每个图块,约20ms的噪声产生,约25ms的顶点,法线,切线,双切线,索引。当摄像机快速移动时,用户会注意到瓷砖正在加载。 内存消耗??? 现在我想知道如何通过在GPU上完全生成地形来加快速度,但是存在一些疑问: 如果着色器每帧都运行一次,难道这种计算能力会浪费一遍又一遍地计算噪声吗?可以通过将结果写入RBGA纹理中并随后在顶点着色器中进行置换来避免这种情况,但会增加内存使用量。另一方面,如果创建速度非常快,则只有可见的图块应保留在内存中。但是,分离缓冲区会导致gpu-cpu同步,这可能会使应用程序变慢(我对吗?) 如果地形只是由顶点着色器置换的平坦网格,则需要在CPU上执行相同的工作来计算给定点处的碰撞高度和法线。 这只是一个概念,但是为了加快所有速度,我考虑将网格投影到视口上,因此只使用了很少量的顶点。您认为这行得通吗? 我的最后一个问题是: 在GPU上创建无限地形的最佳/最快/广泛使用的技术是什么?
9 terrain 

5
我应该打几级?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我在许多游戏中都遇到的一个问题是试图确定要放入游戏中的等级。这是跨类型和跨平台的。 通常,可以决定的约束(尽管它们不适用于我的情况)可以包括: 预定时间表或发布日期 固定预算 游戏的故事结束/结束 (PCG游戏):难度变为“不可能” 这些都是很棒的,但不足以使我知道要制作多少个级别。 从理论上讲听起来不错但很难实施的另一个限制是游戏时间-例如,《马里奥》或《超级肉食男孩》,我可以估计x每个级别的分钟数,并y为预期的总游戏时间指定目标分钟数,从而达到游戏y/x级别。 但是这些对我来说似乎都不对。似乎应该有一种更好的方法来决定何时添加更多的级别以及何时停止。

2
如何模拟摆动摆?
我想模拟一根带有重物的绳索,像钟摆一样来回摆动。任何实际的物理学都是矫kill过正。只是不断地重复相同的动作。 jQuery具有与我正在寻找的类似的“摇摆”缓解。它是如何工作的? 我本来是想用来从一个角度旋转到另一个角度Math.easeOutExpo,但是真正的摆锤的摆放方式却有所不同...

1
使用mipmap的纹理坐标不连续性会创建接缝
我刚刚开始学习openGL,并且在使用mipmap对球体进行纹理化时得到了此工件。基本上,当片段对我的纹理的边缘进行采样时,它会检测不连续性(例如从1到0)并选择最小的mipmap,从而创建此丑陋的接缝: 丑陋的缝http://cdn.imghack.se/images/6bbe0ad0173cac003cd5dddc94bd43c7.png 因此,我尝试使用textureGrad手动覆盖渐变: //fragVert is the original vertex from the vertex shader vec2 ll = vec2((atan(fragVert.y, fragVert.x) / 3.1415926 + 1.0) * 0.5, (asin(fragVert.z) / 3.1415926 + 0.5)); vec2 ll2 = ll; if (ll.x < 0.01 || ll.x > 0.99) ll2.x = .5; vec4 surfaceColor = textureGrad(material.tex, ll, dFdx(ll2), dFdy(ll2)); …

2
我何时应将点和大小表示为结构?
作为我简单的Ruby 2D游戏开发框架的一部分,我的游戏对象具有位置(x和y值)和大小(宽度和高度)。 class MyGameObject attr_accessor :x attr_accessor :y attr_accessor :width attr_accessor :height ... 我见过的另一种方法是将位置视为Point结构,将大小视为Size结构: Point = Struct.new(:x, :y) Size = Struct.new(:width,:height) class MyGameObject attr_accessor :position # Point instance attr_accessor :size # Size instance ... 一些框架使用前者(我认为GDX,Gosu ...)。其他人则使用后者(cocos2d-iphone)。问题是,我不清楚这两种行为的优缺点(在游戏开发中)-我不知道为什么有些框架选择了一个而不选择了另一个。 我应该考虑重大差异吗?

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.