我已经看过很多游戏编程框架,库和引擎,但似乎有些不同我无法理解。似乎框架比引擎更难处理。
根据我的理解(或者我认为我理解),框架是使用编程库构建的,游戏引擎可以使用框架构建。说实话,我对整个交易感到困惑。
这些涉及到某种层次结构吗?我在Java中看到了一个名为LibGDX的游戏引擎,它建立在LWJGL 和 JOGL之上,可用于制作Android游戏,因为它也使用谷歌的Android框架,这怎么可能呢? ?
我还使用了C#XNA框架,它可用于制作完整的游戏,并且有基于此的引擎,为什么你需要在XNA框架之上建立引擎来自框架本身的游戏?
另外,我对Unity不太了解,但似乎可以使用三种不同的语言作为游戏引擎。
答案 0 :(得分:4)
根据我的理解,从最基本的开始。
库是扩展到程序中的东西,一个非常常见的例子是.dll文件(动态链接库),它将功能扩展到它所包含的应用程序中。我倾向于认为库类似于许多类的方法,因为他们将现有的功能扩展到本身没有该功能的东西(我对图书馆缺乏经验,所以如果我错了请纠正我)。那么图书馆还有更多,所以我会指向维基百科:
http://en.wikipedia.org/wiki/Programming_library
框架很容易解释,它基本上是 库的集合。当您在XNA中引用对象时(假设您要创建一个StringBuilder),那么您使用的框架将引用System.Text(EDIT:它是mscorelib的一部分)来访问StringBuilder类。所以在这个例子中(正如Aleks指出的那样)它是StringBuilder(类)Text(名称空间)System(另一个名称空间),它是mscorelib(或根据MSDN的.NET库)的一部分。
游戏引擎有点类似于框架,但它们更加专注和精致。总的来说,我认为游戏引擎包括资源,编辑器,内置功能等等,你不一定只能在XNA中找到它们。我认为使用游戏引擎的最大吸引力之一(包括我的理解)是包含的资源。您不需要创建自己的纹理,它们可能有一些模型,声音,动画。它是一套更完整的工具,用于创建视频游戏,而不必从头开始创建所有这些东西。我将再次向您推荐维基百科:
答案 1 :(得分:0)
图书馆只是您用来构建最终产品的一部分。它通常负责一个特殊的事情,如数学,物理,渲染等。
框架有点大或者只是图书馆的同义词。框架可以是构建像数学,物理,渲染一样的游戏所必需的所有基础。例如,XNA具有音频,数学,图形,输入等基础知识。使用框架你有基础,但在低级别通常你需要编写大量代码来制作带框架的游戏。在许多情况下,你想在框架之上编写一个完整的层(它可以是一个完整的引擎),以便用它来制作游戏。
引擎是更高层。对于许多游戏引擎,您不必编写一行代码来制作游戏(它可能不是非常具有创新性的游戏,但它将是一款游戏)。引擎通常带有游戏编辑器和其他工具,这些工具不属于最终游戏,通常是数据驱动的。您可以运行游戏编辑器并制作关卡或修改获胜逻辑,从而制作一个全新的游戏。