游戏开发

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

2
在哪里可以获取C ++的OpenSDK?
我正在查看的OpenAL网站是一个破旧的共享点门户,而下载部分中的SDK在我请求时为我提供了500个html代码。 http://connect.creativelabs.com/openal/Downloads/OpenAL11CoreSDK.zip 我在softpedia上找到了OpenAL SDK,它具有标头,但没有alu.h或alut.h,我正在查看的教程显然需要加载wavs等。 我想念什么?OpenAL死了还是什么?
12 openal 


2
在libgdx中重复纹理
如何用重复纹理填充区域?现在,我正在使用下一个方法: spriteBatch.begin(); final int tWidth = texture.getWidth(); final int tHeight = texture.getHeight(); for (int i = 0; i < regionWidth / tWidth; i++) { for (int k = 0; k < regionHeight / tHeight; k++) { spriteBatch.draw(texture, i*tWidth, k); } } spriteBatch.end(); 很明显 也许有任何内置方法?

2
在较早的游戏中逐渐消失。需要一些帮助来弄清楚算法是如何得出的
抱歉,这个问题有点深奥,但我还是想不起来! 我正在研究街机游戏DoDonPachi(以及许多其他较旧的游戏)中使用的淡入淡出算法: 我写了一个python脚本来挑选一些像素,并在淡入淡出的过程中跟踪它们。这是结果的代表性示例。每组的第一行是起始颜色值,而随后的每一行是当前帧的颜色值和前一帧的颜色值之间的差。 Starting Value: (132, 66, 189) Frame 1: [9, 9, 8] Frame 2: [8, 8, 8] Frame 3: [8, 8, 8] Frame 4: [8, 8, 9] Frame 5: [9, 9, 8] Frame 6: [8, 8, 8] Frame 7: [8, 8, 8] Frame 8: [8, 8, 9] Frame 9: …
12 algorithm  arcade 

2
实体系统中的碰撞检测和响应
ES带来更多乐趣... 目前,我有一些系统: 渲染器(Renderable属性,Transform属性) 运动(可移动属性,变换属性,可渲染属性(用于边界框等)) 输入(InputReceiver属性) 等等 我要添加碰撞检测。我的第一个想法是添加一个执行碰撞的新系统。这对我来说很有意义,以防止这种分离的Motion系统,因为不是所有的东西,移动,或者动画不一定参与碰撞检测-摄像机,雾等-但似乎Collision和Motion相互依存。 当Motion移动实体,变换需要与被验证Collision,且移动或者取消,或调节(弹跳,停在一个壁等)。 一种替代方法是创建一个Collidable属性,该属性维护对碰撞对象(kd-tree,八叉树等)的引用,该引用在可以相互碰撞的实体之间共享。然后,Motion系统将检查该属性,并使用它来检查或调整移动。 从代码角度来看,这是一个可以接受的解决方案。但是,从ECS架构的角度来看,似乎是将逻辑推入Motion系统中,而该逻辑不适用于具有Movable属性的所有实体。 我还可以在Movable属性中存储一个运动矢量,并使Collider系统Transform根据需要进行调整,但这将涉及在Motion和之间复制功能Collider,或者从Collider到Motion进行回调,并提供一些有关碰撞位置和曲面数据的反弹/反射等信息。 。 这可能属于“特殊情况破解”的标题,但是我想从以前处理过此问题的人员那里得到一些输入而无需创建大量的边缘案例代码。 问题 当运动系统和碰撞系统似乎需要彼此了解时,如何避免它们之间的紧密耦合?

4
SDL中的陷阱鼠标
如何将用户的鼠标捕获到我的游戏中?这不是一个全屏游戏,但我想要它,以便用户不能将鼠标拖到屏幕外。 我是否需要检查鼠标和SDL_WarpCursor的坐标以使其在窗口内显示(手动),还是有自动方法? 谢谢。
12 sdl  input  mouse 

2
实体系统框架中的图块地图?
我一直在阅读实体系统框架,尤其是Artemis。我正在尝试确定是否适合我。我严格从事基于图块的2d像素艺术游戏,而且我认为它们永远不会占用大量资源。过去,我一直使用标准OOP进行大量继承。 我现在对实体系统框架的理解(我不确定是否完全掌握): 实体不过是ID的 组件不过是添加到实体组件池中的哑数据 系统是附加到世界的更新功能,用于处理与系统组件签名匹配的每个实体 如果我的理解是正确的,那么在概念上很难在此框架中添加图块图和AI行为树。我将来会问有关AI的问题。 是否应在此框架中内置图块地图?还是应该将其分开放置以使其易于使用tilemap编辑器生成? 如果应该将tilemap内置到此框架中,那么每个tile都是不同的实体吗?和tilemap一个系统?还是tilemap本身就是继承了继承关系的单个实体? 如果tilemap足够精细,那么与外部tilemap碰撞检测实体的最佳方法是什么? 我了解我列出的多个选项可能是正确的,但是如果有人过去这样做过,他们也许可以使我感到困惑。也许还有我没有想到的另一种选择? 谢谢。

5
“机会”视频游戏机制的实际平衡
我多年来一直是小型游戏开发人员和设计师,最近我开始为大型项目编写更认真的设计文档。 我遇到的一个常见主题是“机会” RPG机制的不平衡。暴击几率。命中/躲闪/小姐/挡箭牌/格挡的几率。现代RPG游戏最大的问题在于急速(Attack Speed),因为它与其他基本机制融为一体。显然,玩家攻击的次数越多,间接增加他们的关键打击或命中率。这造成了巨大的失衡,大多数解决方案都以封顶仓促或利用收益递减或扼杀大幅增长的形式出现。 作为设计师和玩家,我认为这不是解决问题的健康方法。这不是一个“有趣”的解决方案。最近,游戏玩家看到了暴雪在《暗黑破坏神3》中对这个急速问题的解答,方法是将大多数所有物品的属性增加一半。 这是一个实际的例子: 暴击有50%的几率,每秒1次攻击=每秒平均0.5次暴击。 暴击的机会为50%,每秒有2次攻击=每秒平均有1次暴击。 第二种情况到目前为止是有利的,而不是仅增加您的暴击率,因为您不仅会看到每单位DPS更大的数字(或击中机会机率的命中数),而且还会击中更多具有Proc Chance机制的游戏也会受益。更复杂的游戏在内部冷却时间和权衡数据之间取得了平衡,但通常,急速仍然是最强大的数据,因此居于首位。 改为使用费率来确定天气是否可行,而不是统计权重,上限和冷却时间是否发生了变化? 我的简化示例是: 暴击率=暴击率/每秒攻击数 结果基本上是一个简单的统计权重系统。机械化这样的触发几率仍然可以从急速中受益,但是改变攻击的伤害输出和反映平衡的能力可能更容易。这样可以在游戏中保持有趣的速成机制,而且玩起来很有趣。它还为较慢的攻击构建创造了更大的深度,而不仅仅是从缓慢的武器中受益的能力或触发。 这是近视解决方案吗?当前市场上有没有能够限制或惩罚“急速”角色构建的游戏实例?

1
游戏设计师与艺术家之间交流的最佳做法
我在分享想法并将想法传达给艺术家方面遇到了很大的麻烦。他们是没有一毛钱帮助我的朋友,所以我不想浪费他们的时间来弄清楚我的想法。而且我简陋的草图似乎还不够。 您如何与艺术家交流以创建资产?通常使用哪种模板?我正在寻找定义字符,资产​​,背景的最佳做法和模板。
12 art 

3
Node.js的实时多人游戏设计原则
我一直在阅读关于多人网络的Valve 文章,该文章改编自Yahn Bernier在2001年发表的名为“ 客户端/服务器游戏内协议设计和优化中的延迟补偿方法”的论文。我正在使用通过socket.io连接到客户端的node.js服务器制作实时多人游戏,我对以下详述的原理有一些疑问: 实体插值 [插值]通过缓冲服务器更新,然后平滑地插补它们之间的间隔来播放,从而防止通常会引起的抖动。它还可以防止数据包丢失引起的故障。 客户端预测 预测是指客户无需等待服务器确认本地参与者的行为即可对其行为进行预测的概念。当服务器命令到达时,将对实体的预测状态进行测试,直到检测到匹配或不匹配。 滞后补偿 延迟补偿是服务器的一种概念,它在处理[用户输入]时使用播放器的延迟来倒回时间,以便查看播放器在发送命令时看到了什么。与预测相结合,延迟补偿可以帮助将网络延迟降低到从攻击者的角度来看几乎可以消除的水平。 这些原则是否适用于TCP,就像适用于UDP一样,在实现上是否会有任何差异?我可以看到实体插值不需要保护以防止丢包,仅此而已。 我什至可以使用UDP和Node.js在服务器和Web浏览器之间进行通信,反之亦然? 由于该论文已有十多年的历史,这些原理是否仍在使用中?还是出现了其他技术? 任何帮助将非常感激。

4
OpenGL ES 2.0中的几何实例化
我打算在OpenGL ES 2.0中进行几何体实例化。基本上,我打算在场景中渲染相同的几何体(一把椅子)大约1000次。 在OpenGL ES 2.0中执行此操作的最佳方法是什么? 我正在考虑将模型视图mat4作为属性传递。由于属性是每个顶点数据,因此我需要传递相同的mat4,因此对于同一三角形的每个顶点都要传递三遍(因为modelview在三角形的各个顶点之间保持不变)。 这将导致发送到GPU的大量额外数据(2个额外的顶点* 16个浮点*(三角形数)数量的额外数据)。 还是应该每个三角形仅发送一次mat4?但是由于属性定义为“每个顶点”数据,使用属性怎么可能呢? 在OpenGL ES 2.0中进行实例化的最佳和有效方法是什么?

3
二维网格地图上的道路/河流生成
这是一个新手问题,但是在这里: 我的地图是2D网格,我想生成道路和河流。从起点到终点的路线一定不是瓷砖数量的最佳路线。相反,它们应该具有一定程度的随机性(回合)。 是否有针对这种情况的标准算法? 干杯! 更新: 这是在网格上使用权重并使用jgrapht库应用最短路径算法(Bellman-Ford)的结果。毕竟,我接受了多纳兹的回答。 http://pastebin.com/AGQGK5ik

1
什么是kd树相交逻辑?
我试图弄清楚如何实现KD树。 在Ericson的“实时冲突检测”的第322页上 如果Google图书预览在您单击链接时看不到它,则下面包含文本部分 文字部分 相关部分: 将光线或直线段与kd树相交的基本原理很简单。将该线与节点的分割平面相交,并计算相交的t值。如果t在直线的区间内,即0 <= t <= tmax,则直线横跨平面,并且树的两个子级都递归下降。如果不是,则仅递归访问包含片段原点的一侧。 所以这就是我所拥有的:(如果看不到字母,请在新标签页中打开图像) 逻辑树 在这里,橙色射线穿过3d场景。x代表与平面的交点。从左侧,射线击中: 场景的封闭立方体的正面, (1)分裂平面 (2.2)分割平面 场景的封闭立方体的右侧 但是,天真地遵循了上面的Ericson的基本描述,这就是会发生的事情: 针对分裂平面(1)进行测试。射线束照射到分裂平面(1),因此下一个测试中将包含分裂平面(1)的左右子级。 针对分裂平面(2.1)进行测试。雷实际上击中了那架飞机(向右偏),所以两个孩子都被包括在下一级别的测试中。(这是违反直觉的-在后续测试中不应仅包括底部节点) 有人可以描述橙色光线正确穿过场景时会发生什么吗?

1
SSAO实施未获得理想的结果
在实现了延迟渲染之后,我通过本教程尝试了SSAO实现。不幸的是,我没有得到任何看起来像SSAO的东西,您可以在下面看到我的结果。 您会看到有一些奇怪的图案形成,并且在需要的地方(即在物体之间和地面上)没有遮挡阴影。我实现的着色器如下: #VS #version 330 core uniform mat4 invProjMatrix; layout(location = 0) in vec3 in_Position; layout(location = 2) in vec2 in_TexCoord; noperspective out vec2 pass_TexCoord; smooth out vec3 viewRay; void main(void){ pass_TexCoord = in_TexCoord; viewRay = (invProjMatrix * vec4(in_Position, 1.0)).xyz; gl_Position = vec4(in_Position, 1.0); } #FS #version 330 core uniform …


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.