2011-10-20 54 views
0

我见过很多游戏编程框架,库和引擎,但似乎有一个区别,我不能指责。看起来框架比引擎更难工作。框架/图书馆和游戏引擎 - 有什么区别

从我的理解(或认为我理解)框架是使用编程库建立的,并且可以使用框架构建游戏引擎。我对整个交易感到困惑,说实话。

是否存在某种涉及这些问题的问题?我在Java中看到一个名为LibGDX的游戏引擎,它建立在LWJGL JOGL之上,可用于制作Android游戏,因为它也使用Google的Android框架,这怎么可能?我也使用了C#XNA框架,它可以用来制作完整的游戏,并且还有引擎构建在其上,为什么当你可以构建的时候,你需要一个引擎放在XNA框架之上从框架本身的游戏?

此外,我不太了解Unity,但它似乎能够使用三种不同的语言作为游戏引擎。

+0

在Gamedev网站上有一些这样的答案:http://gamedev.stackexchange.com/questions/10770/whats-the-difference-between-a-library-and-an-engine/ – thedaian

回答

0

图书馆仅仅是用于构建最终产品的一部分。它通常负责像数学,物理,渲染等特定的事情。

框架有点大或可以只是库的同义词。框架可以是构建像数学,物理,渲染在一起的游戏所必需的所有基础。例如,XNA具有音频,数学,图形,输入等基础知识。通过框架,您可以掌握基础知识,但通常需要编写大量代码才能使用框架进行游戏。在很多情况下,你想在框架的顶部编写一个完整的图层(它可以是一个完整的引擎),以便制作一个游戏。

发动机是更高层。有了许多游戏引擎,你不必编写一行代码来制作游戏(它可能不是很有创意的游戏,但它将成为一款游戏)。引擎通常带有游戏编辑器和其他工具,这些工具不是最终游戏的一部分,并且通常是由数据驱动的。您可以运行游戏编辑器并制作关卡或修改获胜逻辑,从而制作全新的游戏。

4

要从最基本的基础上开始理解。

一个库被扩展到一个程序中,一个真正常见的例子是一个.dll文件(动态链接库),它将功能扩展到它所包含的应用程序中。我倾向于认为库是相似的在许多方面类,因为他们将现有的功能扩展到本来不具备该功能的东西(我对图书馆没有经验,所以请纠正我,如果我错了)。还有更多的库然后就这虽然如此,我会为你维基百科:

http://en.wikipedia.org/wiki/Programming_library

框架是非常简单的解释,它是基本上库的集合。当你在XNA中引用一个对象时(例如你想创建一个StringBuilder),那么你正在使用的框架引用System.Text(编辑:它是mscorelib的一部分)来访问类StringBuilder。因此,在这个例子中(正如Aleks所指出的那样),它是根据MSDN的MScorelib(或.NET库)的一部分进入StringBuilder(class)Text(namespace)System(另一个命名空间)。

游戏引擎有点类似于框架,但它们更专注和精炼。总的来说,我认为游戏引擎包含资源,编辑器,内置功能等内容,您不一定会在XNA中找到这些内容。我认为最大的吸引力之一(从我的理解)到使用游戏引擎是包含的资源。你不需要创建自己的纹理,他们可能有一些模型,声音,动画。这是一套更完整的工具,用于创建视频游戏,而不必从头开始创建所有这些东西。我再次将指向你维基百科更多:

http://en.wikipedia.org/wiki/Game_engine

+1

框架示例isn不准确。 StringBuilder不是XNA的一部分。 System.Text不是一个库。 StringBuilder是一个类,是System.Text命名空间的一部分,是mscorelib(库)的一部分,是.NET Framework的一部分。 – Aleks

+0

@Aleks MSDN不同意你关于StringBuilder不属于XNA的一部分http://msdn.microsoft.com/en-us/library/system.text.stringbuilder(v=VS.100).aspx –

+1

@Derrick在右边链接的顶部:'汇编:mscorlib(在mscorlib.dll中)' – asawyer

相关问题