我见过大量的游戏编程框架、库和引擎,但似乎有一个不同之处,我一点也不能说。似乎框架比引擎更难使用。
据我所理解(或认为我理解),框架是使用编程库构建的,而游戏引擎可以使用框架构建。老实说,我对整件事很困惑。
这其中是否涉及到某种世袭制度?我在Java中看到了一个名为LibGDX的游戏引擎,它建立在LWJGL 和 JOGL之上,可以用来制作安卓游戏,因为它也使用谷歌的安卓框架,这怎么可能呢?
我还使用了C# XNA框架,它可以用来制作完全成熟的游戏,而在此基础上构建了引擎,当您可以从框架本身构建游戏时,为什么需要在XNA框架的顶部安装一个引擎呢?
此外,我不太了解团结,但它似乎可以使用三种不同的语言作为一个游戏引擎。
发布于 2011-10-20 18:35:33
库只是您用来构建最终产品的一部分。它通常负责一件特定的事情,如数学,物理,渲染等。
框架稍微大一点,或者仅仅是库的同义词。框架可以是构建一个游戏所必需的所有基本要素,比如数学、物理、渲染。例如,XNA有音频、数学、图形、输入等基础。有了框架,您就有了基础,但在低层次上,通常需要编写大量代码才能使用框架制作游戏。在许多情况下,您希望在框架的顶部编写一个完整的层(它可以是一个完整的引擎),以便使用它来制作一个游戏。
发动机是更高的层。有了许多游戏引擎,你不需要写一行代码就可以制作一个游戏(它可能不是很有创意的游戏,但它将是一个游戏)。引擎通常带有游戏编辑器和其他工具,这些工具不是您最终游戏的一部分,通常是数据驱动的。您只需运行游戏编辑器,并使一个级别或修改获胜的逻辑,从而作出一个全新的游戏。
发布于 2011-10-20 18:23:57
从我所理解的最基本的开始。
库是一个扩展到程序中的东西,一个非常常见的例子是一个.dll文件(动态链接库),它将功能扩展到它所包含的应用程序中。我倾向于认为库在许多方面与类相似,因为它们正在将现有的功能扩展到一些本机没有这种功能的东西(我对库有点缺乏经验,所以如果我错了,请纠正我)。关于图书馆还有更多的内容,尽管如此,我将向您介绍维基百科:
http://en.wikipedia.org/wiki/Programming_library
一个框架很容易解释,它基本上是----一个库的集合。当您在XNA中引用一个对象(假设您想要创建一个StringBuilder)时,那么您使用引用System.Text (编辑:这是System.Text的一部分)访问类StringBuilder的框架。因此,在这个例子中(正如Aleks所指出的),它是StringBuilder (类)文本(命名空间)系统(另一个名称空间),它是mscorelib (或者根据MSDN)的.NET库的一部分。
游戏引擎有点类似于框架,但它们更专注、更精细。一般来说,我认为游戏引擎包括资源、编辑器、内置的功能等等,您不一定会在XNA中找到这些功能。我认为(从我的理解)使用游戏引擎最大的吸引力之一就是所包含的资源。你不需要创造你自己的纹理,他们可能有一些模型,声音,动画。这是一套更完整的工具,用于创建电子游戏,而不是从头开始创建所有的东西。我将再次向您指出维基百科的更多内容:
http://en.wikipedia.org/wiki/Game_engine
https://stackoverflow.com/questions/7840214
复制相似问题