游戏开发

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

4
造成压力和危险的幻觉
我目前正在尝试冒险游戏的设置,在这种情况下,游戏有时会非常平静,玩家必须解决难题,并且有时会遇到敌人或环境陷阱。 我不希望突然发生危险事件,这会吓到玩家,因此,我想在游戏开始之前建立玩家的压力,其中会包含多个“杀死玩家的障碍”(也许他们是敌人,或者地面崩溃了..)。 我的音响师制作了一些非常好的音乐和声音效果,以逐渐增强张力,但是此阶段缺少游戏元素。就像玩家通过一个无聊的平原区域从拼图区奔向危险区一样。 除了声音,还有哪些通用方法可以增强玩家的紧张感?我可以借助特殊的视觉效果进行辅助,还是必须改善故事情节或可能发明一些危险区域前的简易障碍物?

1
您如何将一个立方体变成一个球体?
我正在尝试根据article制作一个四边形球,它显示如下结果: 我可以正确生成一个多维数据集: 但是,当我根据此公式转换所有点时(来自上面链接的页面): x = x * sqrtf(1.0 - (y*y/2.0) - (z*z/2.0) + (y*y*z*z/3.0)); y = y * sqrtf(1.0 - (z*z/2.0) - (x*x/2.0) + (z*z*x*x/3.0)); z = z * sqrtf(1.0 - (x*x/2.0) - (y*y/2.0) + (x*x*y*y/3.0)); 我的球面看起来像这样: 如您所见,立方体的边缘仍然伸出太远。如文章所述,多维数据集在所有轴上的范围都从-1到+1。 任何想法有什么问题吗?
31 3d  geometry  sphere 

8
游戏如何一次处理所有角色?
这个问题只是为了获得有关游戏如何一次处理多个角色的知识。我是游戏新手,所以请您原谅。 例 我正在创建一个塔防游戏,该游戏中有15个塔槽,可在其中建造塔,每个塔均以一定速率发射弹丸。假设每个塔每秒钟创造出2枚弹丸,并且有敌人在战场上行进,比如说70(每个都有10种属性,例如HP,法力等,随着它们在战场上移动而变化战场)。 摘要 塔数 = 每秒每座塔创建的 15个弹丸 = 2 每秒创建的弹丸总数 = 战场计数中的 30个单位 = 70 现在,游戏是否通过在100个不同的线程(对于PC来说太多了)或1个移动所有线程,降低其值的线程上处理它们,来处理这30个弹丸和70个单位?(这有点慢, 我认为)? 我对此一无所知,所以有人可以指导我如何解决吗?

4
程序员如何学习绘制2D资产?[关闭]
对于想要创建2D图形游戏资产的人来说,有什么好的教程吗?面向绝对初学者的绘画班,最好是与游戏尽可能相关的教学技能-横向/自上而下绘制角色,等距绘制,绘制纹理等。
31 2d  graphics  art 

9
从头开始-如果我重新发明方向盘,这是一个错误吗?
通常,每当我想开始游戏时,我都会认为它具有良好的渲染基础架构和从头开始的更好的游戏循环。我通常不想使用现有的引擎。其背后的原因是我想自己实现它以学习知识。 但是许多博客和开发人员表示,重新发明轮子不是一个好选择。 我想念什么吗?

7
是否有用于汽车发动机声音模拟的开源项目?[关闭]
我一直在思考如何为汽车创造逼真的声音。主要声音是引擎,然后是各种风,道路和悬架声音。 是否有用于引擎声音模拟的开源项目?简单地调高样本听起来并不太好。理想的选择是允许我选择发动机的类型(即inline-4 vs v-8),添加诸如涡轮/增压器啸叫声之类的附加功能,并最终设置负载和rpm。 编辑:类似http://www.sonory.org/examples.html

5
如何在实体系统中实现功能?
询问实体系统(两个问题后1,2),并阅读一些文章在他们身上,我想我理解他们比以前好多了。我仍然有一些不确定性,主要是关于构建粒子发射器,输入系统和相机。我显然在理解实体系统方面仍然存在一些问题,它们可能适用于其他所有对象,但是我选择这三个对象是因为它们是非常不同的概念,应该涵盖相当广泛的领域,并有助于我理解实体系统以及如何理解实体系统。我自己会在遇到这些问题时处理这些问题。 我正在用JavaScript构建引擎,并且已经实现了大多数核心功能,其中包括:输入处理,灵活的动画系统,粒子发射器,数学类和函数,场景处理,相机和渲染以及一大堆引擎通常支持的其他功能。我阅读了Byte56的回答,这使我对将引擎制作为实体系统感兴趣。它仍将是具有基本场景概念的HTML5游戏引擎,但它应支持从组件动态创建实体。 我现在遇到的问题是将我的旧引擎概念适合这种新的编程范例。这些是以前的问题中的一些定义,这些定义已更新: 一个实体是一个标识符。它没有任何数据,它不是对象,它是一个简单的ID,代表所有实体的场景列表中的索引(我实际上计划将其实现为组件矩阵)。 甲组件是一个数据保持器,但是具有可以对数据进行操作的方法。最好的示例是Vector2D或“位置”组件。它具有data:x和y,还有一些使对数据进行操作更容易的方法:add(),normalize()等。 一个系统的东西,可以对一组满足某些要求的实体的操作; 通常,实体需要具有一组特定的组件才能进行操作。系统是“逻辑”部分,是“算法”部分,组件提供的所有功能纯粹是为了简化数据管理。 相机 相机具有Vector2Dposition属性,rotation属性以及一些将其围绕点定中心的方法。每帧都将其与场景一起馈入渲染器,并且所有对象均根据其位置进行平移。然后渲染场景。 我如何在实体系统中表示这种对象?摄像机是实体,组件还是组合(按照我的回答)? 粒子发射器 我的粒子发射器遇到的问题还是,应该是什么。我非常确定粒子本身不应该是实体,因为我想支持超过10,000个粒子,而且我相信创建这么多实体将对我的性能造成沉重打击。 我如何在实体系统中表示这种对象? 输入管理员 我要谈的最后一个是如何处理输入。在我当前的引擎版本中,有一个名为的类Input。它是一个处理程序,订阅浏览器的事件,例如按键和鼠标位置更改,并且还维护内部状态。然后,播放器类具有一个react()方法,该方法接受输入对象作为参数。这样做的好处是可以将输入对象序列化为.JSON,然后在网络上共享,从而实现流畅的多人模拟。 这如何转化为实体系统?

3
库和引擎有什么区别?
我正在开发一个图书馆,以帮助使用Scala开发2D游戏。到目前为止,它是有用的类,文件加载,碰撞检测,图像,精灵等的集合。 那么什么时候停止成为类库而开始成为引擎呢?有用的框架和游戏引擎之间的区别到底在哪里?

9
什么是“ 2.5D”环境?
我不明白“ 2.5D”一词的含义。我对2.5D和3D环境之间的差异感到特别困惑,即使我已经阅读了有关两者的不同定义和文章。我了解2.5D就像3D一样的零件,但我不了解2.5D不同于其他零件的零件。 那么,将游戏设为2.5D意味着什么?例如,这里显示的游戏是2.5D吗?
31 2.5d  terminology 

4
游戏开发中类设计的正确的面向对象方法是什么?
我正在使用XNA为Windows 7 Phone开发基于2D Sprite的游戏。提供的培训和教程非常有帮助,但是我面临的问题是,他们每个人对类设计的处理方式都不相同,并且代码的结构也不太好。结果,我很难很好地理解我应该对特定班级承担的责任。 例如,我可以有一个基本的Sprite类BaseSprite,它知道如何绘制自身,检查碰撞等。然后,我可以拥有一个AnimatedSprite类,该类将知道如何导航其Sprite表,一个ExplodingSprite类,等等。Windows 7 Phone Jumpstart会话2资料中的Space Invaders示例演示了此技术。 或者,我可以将大部分渲染和运行游戏职责放在一个GameScreen类中;就其职责而言,该类及其派生类的行为更像表单或网页。Sprite类是更简单的容器,逻辑更少。 这是Windows 7 Phone Training Kit的Alien Sprite游戏和其他游戏状态管理器示例中使用的技术。 游戏开发中类设计的正确的面向对象方法是什么?
31 xna 

5
联网2D游戏的延迟补偿
我想制作一个2D游戏,基本上是物理驱动的沙箱/活动游戏。我确实有些不明白。根据研究,似乎服务器更新仅应大约每100毫秒一次。我可以看到这对玩家是如何工作的,因为他们可以同时模拟物理并通过插值进行滞后补偿。 我不明白的是,这对于其他玩家的更新如何起作用。如果客户仅每100毫秒就收到玩家位置的通知,我就看不到这是怎么回事,因为在100毫秒内会发生很多事情。玩家可能在那个时候两次改变了方向。我想知道是否有人会对这个问题有所了解。 基本上,这对于射击之类的东西如何起作用? 谢谢

2
了解Perlin噪声
在与Diamond Square合作后,我正在玩Perlin Noise。我遵循了Hugo Elias的实现,该实现基本上是用x,y作为输入来生成一系列函数以抛出每个坐标值。 我的PHP代码在这里: 我有两个问题: 如何使用该算法在数组中生成高度图?我并没有完全理解它,只是将伪代码移植到PHP,但是在读取算法“神奇地”为给定的每个x,y点(显然,不必读取其)的转换值后,执行了最后一个函数(map_perlined)相邻的值),当用作随机函数时,我得到这个mt_rand(-100,100)/100; 这在使用密码时:(1.0-(($n*($n*$n*15731+789221)+1376312589)&0x7fffffff)/1073741824.0;顺便说一句,可以在PHP中“按原样”实现吗?): 因此,总结三个问题: 我的代码正确吗? 可以按代码中所述将random函数移植到PHP吗?它不会抛出任何错误,但是结果不存在。 我实际上如何使用该算法? 更新 好的,为Gustavson论文中显示的代码添加了一个PHP端口,正如其他编码人员所说,它仅生成一个八度。是否还有其他有用的站点/论文/指南,说明如何结合使用多个八度音阶,幅度,频率等来控制噪声功能?在Gustavson的论文中仅显示了结果,而不是算法的实际实现,也许我遗漏了一些东西? 更新2 @NATHAN 我做了类似的事情: $persistence = 0.5; for ($j = 0; $j < $size; $j++) { for ($i = 0; $i < $size; $i++) { for ($o = 0; $o < 8; $o++) { $frequency = pow(2,$o); …
31 algorithm  php 

4
什么是顶点颜色?
我的问题是标题中写的是什么。这个术语“顶点颜色”出现很多。我很难理解这一点。 例如: 3D空间上的顶点不是简单点吗?如果是这样,一个点怎么能有颜色?还是这种“颜色”意味着其他? 虚幻引擎的材质编辑器中有一个“顶点颜色”节点。 有人可以阐明我的问题吗?当我搜索“什么是顶点颜色”时,找不到任何有用的东西,但是文档对我来说太技术性了。

6
闲置游戏如何处理如此大量的数字?
只是想知道Tap titans和Cookie Clicker之类的游戏如何处理这么大的数字。 我正在尝试实现一个空闲游戏,但是C#支持的最大数字格式是十进制。 我希望最多支持10 ^ 500;需要浮点数 我该如何处理? PS它需要跨平台,即PC,Mac,iOS,Android,并与Unity兼容

2
在OpenGL中建立游戏循环的好方法
我目前正在学校里开始学习OpenGL,而前几天我已经开始制作一个简单的游戏(我自己,不是在学校里)。我正在使用freeglut,并使用C进行构建,因此对于我的游戏循环,我确实一直在使用传递给我的函数来glutIdleFunc一次性更新所有图形和物理特性。对于我不太在乎帧频的简单动画来说,这很好,但是由于游戏主要是基于物理的,因此我真的想(需要)确定更新速度。 因此,我的第一个尝试是让函数传递给glutIdleFunc(myIdle()),以跟踪自上次调用以来经过了多少时间,并每隔毫秒更新一次物理(以及当前的图形)。我曾经timeGetTime()这样做(通过使用<windows.h>)。这让我开始思考,使用空闲功能真的是进行游戏循环的好方法吗? 我的问题是,在OpenGL中实现游戏循环的更好方法是什么?我应该避免使用空闲功能吗?
31 opengl  c  game-loop 

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.