库和引擎有什么区别?


31

我正在开发一个图书馆,以帮助使用Scala开发2D游戏。到目前为止,它是有用的类,文件加载,碰撞检测,图像,精灵等的集合。

那么什么时候停止成为类库而开始成为引擎呢?有用的框架和游戏引擎之间的区别到底在哪里?


我会说无法区分,因为它们是处于不同抽象级别的概念。“大”引擎仍然是一个框架。
2011年

1
游戏引擎和框架之间几乎没有区别,但是从标题上,库和引擎之间存在巨大且清晰定义的区别。该链接总结如下:gamefromscratch.com/post/2015/06/13/…– Serapth 2015
6

Answers:


21

我认为人们会感到困惑的是,一个通常是由另一个组成的,所以人们真正想知道的是,何时您拥有足够的一个来考虑另一个。

那么什么时候停止成为类库而开始成为引擎呢?

决不。

有用的框架和游戏引擎的区别到底在哪里?

空无一人。

现在让我解释一下答案。游戏引擎由类库组成。它们不会仅仅因为它们在游戏引擎中而停止成为类库。库是解决游戏引擎中特定需求的有用框架。满足完整游戏需求的框架是游戏引擎。

以下是一些游戏引擎示例:

  • 虚幻引擎
  • 现实引擎
  • 源引擎
  • 雷神引擎
  • Unity引擎

还有一些图书馆的例子

  • Novodex(物理)
  • FMOD(音频)
  • Havok(物理)
  • Ogre3D(渲染)
  • BINK(视频库)
  • Direct3D(图形)
  • OpenGL(图形)
  • DirectSound(音频)
  • XInput(输入)

希望这可以帮助


1
渲染引擎和图形库之间的区别如何?:P
扎基德国

1
@Zaky德语-Ogre3D是图形“引擎”,就像FMOD是音频“引擎”一样。但是,这些不是游戏引擎,它们例如不处理用户输入,网络连接等。我认为这是一些混乱的地方。在这种含义下,您可以互换库,模块,组件或引擎。这些不是“游戏引擎”。图形库类似于Direct3D或类似于Direct3D的瘦API以使其更容易使用,但它不会直接进行渲染。OpenGL及其周围的包装也将落入图形库区域。
詹姆斯

14

对于这两个术语(或与此相关的术语“框架”),确实没有具体定义。有数百种不同的方式来解释软件包中各种细微的区别并为其分配分类。

我个人将“库”视为提供相对较小且有针对性的功能集的事物,而“框架”提供更多或更广泛的功能,而“引擎”提供的功能相同(或更多)并且通常具有一组随附的相关工具。

我已经看到足够多的其他人对相同术语的个人解释,使人感到安全,这表明“引擎”提供的功能比“库”通常提供的功能更高或更高级……但是您为自己的软件划清了界限你决定。


框架和其他库之间有具体的区别。这些在前者的Wiki页面中列出。简而言之,框架控制着应用程序的流程,然后将代码插入其中。在其他库中,您可以控制流程并调用其代码。
2011年

1
我不会认为那是确定的。Wikipedia也有一个“游戏引擎”页面,就像“库”和“框架”一样,这些术语的使用频率与Wiki页面上的描述相符,而与wiki页面上的描述相符。经验。它仍然是非常手工的。
乔什

2

这是一个棘手的问题,因为库和引擎之间的界线有时可能很细,很模糊。我不得不说,库变成引擎的关键是针对特定游戏或特定类型的游戏。

例如:虚幻引擎(或Source,或Quake)被设计用于FPS游戏(它可能可以用于其他游戏,但是您会花一些时间来研究引擎)。Ogre3d(甚至Directx,SDL或其他公共库)可用于制作任何类型的游戏,而无需删除代码的主要部分或在它们附近工作。

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.