游戏引擎应该做什么?[关闭]


20

我想提高自己的技能/尝试一些新的东西,我想从3D开始。我已经阅读了《用C ++在3D中开始编程》,但是我对引擎有疑问:

  • 引擎应该做什么?我知道它是3D API(即OpenGL或DirectX)之上的抽象层,但是它到底应该做什么?

对于书的建议,这个问题应该可以帮助您:gamedev.stackexchange.com/questions/455/...
四联

Answers:


27

您说的很对,游戏引擎正在从低级图形API中抽象出来,但是功能完备的游戏引擎的作用更多。

游戏引擎旨在使与游戏开发有关的一切变得容易。它们每个都有自己独特的功能,但通常它们为图形,音频,输入,场景管理,碰撞检测,数学和通用实用程序提供简单的抽象层。有些提供了物理API的包装和插件,有些甚至提供了AI支持(主要限于FSM,寻路和-当前趋势-行为树)。他们中的许多人都支持跨平台功能,并为此感到自豪。

游戏引擎的目的是使用户更轻松地创建游戏,而不必处理从头开始创建游戏的小麻烦,也不必安装一大堆库并为它们编写适合自己的包装器游戏。

有很多引擎,但是要注意图形引擎和游戏引擎之间的区别(例如,Unity是游戏引擎,而Ogre是图形引擎)。

我有关于该主题的两本书,但是它们提供了关于该主题的很好的概述:

  • David H Eberly的3D游戏引擎架构

  • 游戏编码由Mike McShaffry完成

它们并不是很深入,因为您需要每个组件上的几本书来获得创建完整,专业的游戏引擎所需的知识深度,但是我认为它们很好地解释了这些概念。

如果您是游戏开发者,请不要制造引擎。我向您推荐了以下页面:http : //geometrian.com/programming/tutorials/write-games-not-engines/

引擎是一件棘手的事情。如果编写大量游戏,一段时间后您会发现您有很多可重复使用的代码,您可以使用它们来制作自己的个人引擎来帮助您。而且,拥有许多(完整的)游戏比单引擎要令人印象深刻。

希望能有所帮助。

射线


1
+1博客文章。它正好说明了我对此事的看法。
四分

5
是的,没有人应该在制作游戏之前就制作游戏引擎。如果您还不知道代码是否可用,您怎么能知道它是可重用的?
Kylotan

@Kylotan我意识到这已经很晚了,但是我要感谢您的评论,因为我一直在不断向其他人引用它:)
Ray Dey

@RayDey,“编写游戏而不是引擎”的链接已失效,仅供参考。我很期待阅读它:(
DrewJordan '16

5

添加到Ray的答案中:引擎(游戏,图形,音频等)不仅使与底层API的交互更加容易,而且实现了特定于游戏的功能,例如:阴影模型,3D声音。

专门用于游戏引擎:它们管理游戏对象,资源(内存,线程,所有其他引擎)以及模块间通信。它们提供了游戏的结构,可伸缩性和灵活性,这对于任何不重要的项目都是必不可少的。


+1表示结构,可伸缩性和灵活性,我确实忘记添加内存管理
Ray Dey

1

我已经编写了有关什么是游戏引擎的详细教程,特别是在iPhone和Android平台的上下文中。我已经包含了游戏引擎各个部分的示例的详细说明:UI,图形,声音,物理,粒子效果。该教程位于此处:什么是游戏引擎?。希望对您有所帮助。


0

每个游戏引擎对游戏引擎应该做什么的想法都有一点不同。

但是,因为已经有太多的游戏引擎,所以我真的建议您制作一个不是引擎的游戏。

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.