2D游戏引擎应该包含哪些内容?

31

好的,所以我最终基于XNA写了自己的游戏引擎,现在我想知道还需要什么才能使它成为一个完整的引擎。

以下是引擎中包含的内容:

  • 物理引擎(Farseer Physics)
  • 粒子引擎(Mercury Project)
  • 2D相机
  • 输入处理
  • 屏幕管理(菜单,暂停屏幕等)
  • 精灵(动画,精灵表等)
  • 还有XNA相关的声音。

我是否遗漏了对游戏引擎至关重要的任何内容?


1
没有任何针对 Stack Overflow 的意思,但你在 gamedev.net 论坛上发帖可能会更好。 - ryeguy
良好(且灵活)的碰撞检测。 - Clinton Pierce
1
碰撞检测位于Farseer物理引擎中。 - Khalid Abuhakmeh
5
你想编写游戏还是引擎?(参考:http://scientificninja.com/advice/write-games-not-engines) - thekidder
3
@clintp - 评论区不是回答问题的地方。 - Steven Evers
16个回答

1

好的碰撞检测非常有用,如果你高效实现它,它可以真正地减少每帧所需的时间。除此之外,在我的引擎(用于Pygame)中,我还有一种将主屏幕分成多个子屏幕的方法,我觉得这很有用。


1
根据目标游戏类型,包括带有节点和边注释的导航图(适用于许多游戏,但不适用于使用2D图形引擎制作的代币侧卷游戏)。
  • 一个通过泛洪算法生成它们的组件。
  • 确保包括所有主要的路径查找/规划算法(A*/Dijkstra等)来遍历这些图形。

这样做的缺点是您将不得不为引擎定义“地图”,这可能会限制引擎的用户。

相关事项:

  • 基于位置的触发器(玩家进入看不见的圆圈并发生某些事情-排队过场动画,开始伏击等)。我建议提供一个触发器的基类,并实现一些基本的触发器以展示如何完成(例如武器拾取等)
  • 一些游戏引擎实现网络功能(虽然这在某种程度上属于“xna stuff”)

1
最有用的事情是在所有其他内容之上包括易于使用引擎的工具。也许可以使用引擎来创建这些工具。我相信这样做会发现很多缺陷。

1
简单的像素完美碰撞检测。不使用Farseer物理引擎。具有简单绘图例程,如drawline、drawcircle等。

0
一个瓷砖重复工具。它允许用户添加/创建瓷砖,并操纵边缘以获得平滑的重复图案。

0

嗯。这个列表是一个“内部”列表。要创建出伟大的引擎就需要创建一个伟大的“外部”列表。 以UE3为例——它之所以能够存在,是因为有了伟大的工具。你需要工具来创建世界、创建最佳资源包(它也应该在内部列表中;-))、碰撞对象规范等等。 此外,除了Organiccat答案所提到的,你还需要决定技术水平。你可以选择简单的精灵,也可以想要花哨的效果(这就需要着色器和基础设施)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接