哪些功能属于引擎,哪些功能属于游戏?


19

现在,我发现自己通过将2D游戏引擎直接编码到引擎中来实现和测试新功能。同时,我有一个带有脚本支持的展示游戏,应该调用引擎功能。我将固定的平铺运动附加到引擎中的Entity类,而不是专门为游戏编写脚本。这无疑打破了用于多个游戏的通用引擎的想法。

是否有最佳实践来始终专注于正确的部分(即引擎与游戏)的正确实现?

Answers:


25

好吧,有几种思考方法。一种是列出引擎应具有的特定功能(您在此处提出的要求。)但是另一种方法是开始制作游戏时不必过多担心“引擎”,然后您发现的功能将在多个引擎之间重用。游戏(尤其是每个游戏中使用的功能),则应从特定游戏的源代码迁移到称为“引擎”的共享代码库。

因为最后,为什么要在引擎中而不是游戏中使用给定功能,是因为它在多个游戏之间共享。通常情况下,诸如绘图命令,输入控制器和网络代码之类的东西。2D游戏引擎将具有许多2D图形功能,例如加载图像,具有z顺序的显示层次结构,处理精灵表,补间等。许多游戏需要物理模拟,尽管另一方面却不需要。同时,几乎每个游戏中都使用了更多的“幕后功夫”,包括计时器,事件消息传递,甚至包括特定于游戏开发的数学函数(例如distanceToTarget()


长话短说:

答:引擎应具有大多数游戏共享的功能。

B)通过制作一堆游戏来学习共享哪些功能。


7
+ just start making games without worrying too much about the "engine"
1-– JCM

1
好吧just start making games without worrying too much about the "engine",绝对是一个不错的建议。
Christian Ivicevic

3
我同意上面的两个评论,但是“仅制作游戏而不用担心引擎”这一说法已脱离上下文,并且没有其余内容就毫无意义:“然后您发现的功能将在多个游戏之间重用(特别是在,即每个游戏中使用的功能),您应该从特定游戏的源代码迁移到称为“引擎”的共享代码库。简而言之,制作尽可能多的游戏,以便您了解引擎中应该包含哪些内容,不应该包含哪些内容。吨。

2
这是一个好主意,因为它还使您无法实现游戏中实际上不需要的引擎功能。
Zachary Yates

2
+1为保持三规则的精神。
约书亚德雷克
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.