现在,我发现自己通过将2D游戏引擎直接编码到引擎中来实现和测试新功能。同时,我有一个带有脚本支持的展示游戏,应该调用引擎功能。我将固定的平铺运动附加到引擎中的Entity类,而不是专门为游戏编写脚本。这无疑打破了用于多个游戏的通用引擎的想法。
是否有最佳实践来始终专注于正确的部分(即引擎与游戏)的正确实现?
现在,我发现自己通过将2D游戏引擎直接编码到引擎中来实现和测试新功能。同时,我有一个带有脚本支持的展示游戏,应该调用引擎功能。我将固定的平铺运动附加到引擎中的Entity类,而不是专门为游戏编写脚本。这无疑打破了用于多个游戏的通用引擎的想法。
是否有最佳实践来始终专注于正确的部分(即引擎与游戏)的正确实现?
Answers:
好吧,有几种思考方法。一种是列出引擎应具有的特定功能(您在此处提出的要求。)但是另一种方法是开始制作游戏时不必过多担心“引擎”,然后您发现的功能将在多个引擎之间重用。游戏(尤其是每个游戏中使用的功能),则应从特定游戏的源代码迁移到称为“引擎”的共享代码库。
因为最后,为什么要在引擎中而不是游戏中使用给定功能,是因为它在多个游戏之间共享。通常情况下,诸如绘图命令,输入控制器和网络代码之类的东西。2D游戏引擎将具有许多2D图形功能,例如加载图像,具有z顺序的显示层次结构,处理精灵表,补间等。许多游戏需要物理模拟,尽管另一方面却不需要。同时,几乎每个游戏中都使用了更多的“幕后功夫”,包括计时器,事件消息传递,甚至包括特定于游戏开发的数学函数(例如distanceToTarget()
长话短说:
答:引擎应具有大多数游戏共享的功能。
B)通过制作一堆游戏来学习共享哪些功能。
just start making games without worrying too much about the "engine"
,绝对是一个不错的建议。
just start making games without worrying too much about the "engine"