游戏开发

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

1
Phaser中Arcade,P2和Ninja物理之间的区别
我是一个初学者,正在尝试使用Phaser学习游戏开发。目前,Phaser正在提供三个物理系统,分别是Arcade,P2和Ninja。但是我不知道它们之间的区别,我也想知道在哪种情况下我们应该使用特定的物理系统? 请给我一些有关这些物理系统的见解。
33 phaser 

6
将游戏数据保存在%UserProfile%\ Documents中而不是%AppData%中是否有实际原因?
我的文档文件夹中充斥着各种游戏的子文件夹,包括一些最近的A​​AA游戏的子文件夹。作为没有游戏行业经验的专业应用程序开发人员,这完全是错误的,这些文件属于%APPDATA%或%LOCALAPDATA%。 我的问题是,是否有意识地决定将这些文件放入%UserProfile%\ Documents中以获得某些特定的好处,或者这仅仅是Windows XP时代遗留下来的遗留行为?还是有更好的原因,例如Steam要求或推荐这样做,或者流行的引擎默认这样做? 相关:在哪个目录中编写游戏保存文件/数据?(以避免无意义的讨论)
33 windows  savegame 



8
补充阴影对游戏有意义吗?
根据颜色理论,如果阴影不使用纯黑色或灰色,而是使用与投射阴影的对象的颜色互补的颜色,则阴影效果更好。 也就是说,如果您有一个红色的苹果,则应使用深绿色的阴影;黄色香蕉,深紫色阴影。 但是在许多游戏中,您无法始终预测阴影将出现在哪种背景或环境中,并且可能无法拥有动态阴影颜色的奢侈。在这种情况下,使用互补阴影还是有意义的,还是可以接受中性的黑色或灰色?

8
MMORPG中的库存限制是否有意义?
我目前正在开发一个简单的2D MMORPG。我当前的重点是库存系统。 我目前在想,是否应该限制玩家角色的携带能力。以最大重量,有限数量的存货位或两者的组合形式。我玩过的几乎每个MMORPG都限制了库存空间。但是除了合理性之外,从游戏玩法的角度来看,这真的必要吗?当我让玩家随身携带尽可能多的东西时,也许实际上会改善游戏体验。 tl; dr:限制玩家角色的承载能力背后的游戏开发原理是什么? 编辑: 感谢到目前为止的所有答案。他们都很有见识。输入您的意见后,我决定进行有限的库存清点,以防止人们携带过多的治疗用品和过多的专用设备进入地下城。为了避免战利品超载和每次都必须返回城镇的问题,我计划让玩家能够将物品从其库存直接发送到他们的仓库(但不能在野外取回)。我暂时接受了Kylotan的答案,但是当您感到某些有趣的方面尚未涵盖时,不要让这阻止您发布其他答案。
33 game-design  mmo 

5
当每个等级按比例需要更多XP时,如何从总XP中计算当前等级?
在我的游戏中,达到下一个等级所需的XP是当前等级×等级阈值。鉴于此,我怎样才能从获得的总经验值中获得当前的水平? 例如: Level Threshold = 50 Current Level = 1 从1级开始,我需要(1×50)= 50 XP才能达到2级,依此类推。 Level 1: 50 XP needed to reach level 2 Level 2: 100 more XP needed to reach level 3 Level 3: 150 more XP needed to reach level 4 换句话说,进度表如下: Level 1: 0 XP to 49 XP …

2
在浏览器中,最好使用一个巨大的Spritesheet还是使用许多(10000)个不同的PNG?
我正在jQuery中创建一个游戏,在其中使用了大约10000个32x32瓦片。到目前为止,我一直单独使用它们(没有精灵表)。一张普通的地图使用大约2000个图块(有时会重复使用PNG,但是所有单独的div),其性能范围从稳定(Chrome)到有点落后(Firefox)。每个div均使用CSS进行绝对定位。无需在每次更新时更新,只需加载新地图即可。 对于像CSS一样使用CSS背景定位的div使用spritesheet方法,性能会更好吗? 先感谢您!

2
如何将此实体系统联网?
我已经为FPS设计了一个实体系统。它基本上是这样的: 我们有一个“世界”对象,称为GameWorld。它包含一个GameObject数组以及一个ComponentManager数组。 GameObject拥有一个Component数组。它还提供了一个非常简单的事件机制。组件本身可以向实体发送事件,该事件将广播到所有组件。 Component基本上是赋予GameObject某些属性的东西,并且由于GameObject实际上只是它们的容器,因此与游戏对象有关的所有事情都发生在Components中。示例包括ViewComponent,PhysicsComponent和LogicComponent。如果需要它们之间的通信,可以通过使用事件来完成。 ComponentManager只是一个类似于Component的接口,对于每个Component类,通常应该有一个ComponentManager类。这些组件管理器负责创建组件,并使用从XML文件之类读取的属性来初始化它们。 ComponentManager还负责组件的大量更新,例如P​​hysicsComponent,我将在其中使用外部库(该库一次执行世界上的所有操作)。 为了实现可配置性,我将为实体使用一个工厂,该实体将读取XML文件或脚本,创建文件中指定的组件(这还将在正确的组件管理器中添加对它的引用以进行批量更新),以及然后将它们注入GameObject对象。 现在出现了我的问题:我将尝试将其用于多人游戏。我不知道该如何处理。 首先:客户从一开始就应该拥有哪些实体?我首先要说明单人引擎如何确定要创建的实体。 在关卡编辑器中,您可以创建“画笔”和“实体”。刷子用于墙壁,地板和天花板等事物,基本上是简单的形状。实体是我告诉过您的GameObject。在关卡编辑器中创建实体时,可以为其每个组件指定属性。这些属性直接传递给实体脚本中的类似构造函数的对象。 保存要加载的引擎的级别时,它会分解为实体及其关联属性的列表。画笔将转换为“ worldspawn”实体。 当您加载该级别时,它只是实例化所有实体。听起来很简单,是吗? 现在,对于实体的联网,我遇到了许多问题。首先,从一开始就应该在客户端上存在哪些实体?假设服务器和客户端都具有关卡文件,则客户端可能会实例化该关卡中的所有实体,即使它们只是出于服务器上的游戏规则而存在。 另一种可能性是,客户端在服务器发送有关实体的信息后立即实例化该实体,这意味着客户端将仅具有其所需的实体。 另一个问题是如何发送信息。我认为服务器可以使用增量压缩,这意味着它仅在发生变化时才发送新信息,而不是在每帧都向客户端发送快照。尽管这意味着服务器必须跟踪每个客户端当前所知道的信息。 最后,应该如何将网络注入引擎?我在考虑一个组件NetworkComponent,它被注入到每个应该联网的实体中。但应该如何在网络组件知道什么变量网络,以及如何访问这些,最后如何在客户端上相应的网络组件应该知道如何改变网络变量? 我在处理此问题时遇到了很大的麻烦。如果您能帮助我,我将不胜感激。我也欢迎有关如何改进组件系统设计的提示,因此不要害怕提出建议。

5
如何测试我的游戏的癫痫安全性?
我一直在开发一款在色彩和亮度对比方面相当眨眼的游戏。这是一个iPhone游戏,所以屏幕会很小,但是我听说Wipeout XL未能通过癫痫测试。 如何确保游戏不会引起用户癫痫发作? 我是一名独立开发人员,因此低预算的解决方案将是理想的选择。

3
您如何创作HDR内容?
您如何使艺术家轻松创作HDR渲染器的内容?从LDR到HDR,您应该提供哪些工具以及需要更改的工作流程? 请注意,我并不是在问实现HDR渲染器的技术方面,而是在HDR中创建材质和照明的最佳实践。我已经在Google上搜索了一下,但是在网络上似乎没有太多关于此主题的信息。谁能在这方面给我指出一些好的资源,或者分享他们自己的经验? 一些具体点: 照明-照明艺术家如何选择HDR灯光颜色?他们有一个标准的LDR颜色选择器,然后有一个乘法器吗?乘数是在gamma还是线性空间中?也许不是乘数而是对数亮度?还是物理亮度级别(例如流明数)?他们将如何知道对于给定的光,什么乘数/亮度/亮度是“正确的”? 材料-纹理艺术家如何制作发光的颜色图,例如霓虹灯,电视屏幕,天窗等?您可以将一个图像绘制为常规LDR(每通道8位)图像并应用乘数(或对数亮度等)吗?在某些情况下有必要实际绘制HDR图像吗?如果是这样,您如何在Photoshop(或其他软件)中进行此操作?
33 graphics  art  hdr 

6
如何设计好的连续(无缝)瓷砖?
我有麻烦的设计瓷砖,这样组装时,他们并不像瓷砖,但看起来像一个同质的东西。例如,请参见下图: 即使草的主要部分只有一个瓷砖,您也不会“看到”网格。如果仔细看一下,您知道它在哪里,但这并不明显。而当我设计图块时,您只能看到“哦,老天,同一图块的64倍”,如下图所示: (对不起,我从另一个GDSE问题中得出了这一点;对游戏并不批评,但这证明了我的意思。实际上,无论如何我都拥有更好的拼贴设计。) 我认为主要问题是我将它们设计为独立的,如果彼此靠近,则两个图块之间没有连接。我认为让磁贴更“连续”会产生更平滑的效果,但无法做到,对我来说似乎太复杂了。 我认为它可能比我一旦知道了如何做就简单,但找不到关于该特定点的教程。有已知的设计连续/均质砖的方法吗?(我的术语可能是完全错误的,请毫不犹豫地纠正我。)

4
客户端预测如何工作?
我已经阅读了Valve + Gafferon和Google的数百页内容,但是出于任何原因,我都无法理解客户预测。 据我了解,基本问题是: 客户端A在以下位置发送输入 T0 服务器在以下位置接收输入 T1 所有客户都在以下位置收到更改 T2 在T2然而,使用客户预测,客户端A现在是在合适的位置来T4。 在预测服务器将接受移动请求时,如何确保客户端A不在服务器之前?显然,它们一直都在前进,这导致返回到服务器上次看到它们的位置。经过我尝试的所有更正,当您停止时这仍然很明显,因为服务器在您身后停止了

5
我的声音应该是什么质量?
声音及其质量就像宗教一样。永不终止的故事。 人们会说,MP3 320kbps是无损的,而专家会说,任何MP3都是废话,但最终,没有人会听到结果的变化……除非他们从事音乐行业超过20年。 假设320kbps MP3是“沉重的”,什么是视频游戏的最佳格式,什么属性应该足够(赫兹,比特率等)? 也许是一两个例子,一些AAA标题如何与声音配合使用。
33 sound 

9
如何为C ++游戏创建保存文件?
我正在为视频游戏编程课程的决赛编写代码,我想知道如何为我的游戏创建保存文件,以便用户可以玩,然后稍后再回来。任何想法如何做到的,我之前做过的每件事都是单运行程序。

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.