OODBMS 在游戏开发中的当前可行性如何?

What is the current viability of an OODBMS in game development?

所以,我已经研究了很长时间了,但似乎我得到的所有结果都已经过时了。我想知道面向对象数据库管理系统 (OODBMS) 的 current 状态与相当大的游戏(例如 MMORPG)相关,尤其是在将它们与关系数据库进行比较时管理系统 (RDBMS)。

显然,数据模型将取决于所讨论的数据(即玩家与世界状态,例如货币等)。

那么你有什么想法? OODBMS 与 RDBMS 相比目前的优势是什么? RDBMS 是否克服了十年前显而易见的一些困难,例如可伸缩性、性能和成本?

让我们从关系数据库与对象数据库的一般性讨论开始,然后我们可以深入研究使用对象数据库进行游戏开发的细节。

免责声明:我在 Objectivity, Inc. 工作,我们为客户构建和销售可大规模扩展的 object/graph 数据库。

首先,正如您所观察到的,无论是在一般情况下还是在游戏开发中,对象数据库都没有像关系数据库那样在市场上得到广泛采用。出于多种原因,有些是技术原因,有些是非技术原因,但您可以将其归结为“足够好”and/or“足够便宜”的解释。关系数据库对于人们日常需要解决的绝大多数问题来说已经“足够好了”,并且有许多免费的开源关系数据库可用。

在 Objectivity,我们喜欢说我们有两种客户:聪明的和绝望的。我们杰出的客户明白他们的数据太复杂而无法放入关系数据库中。可能是他们的数据模型包含难以在关系数据库产品中表达的类型继承,或者对象关系映射层的性能下降是不可接受的。使用足够大的锤子,您总能将方钉敲入圆孔,但归根结底,如果性能很重要,我们杰出的客户明白他们需要选择一种符合其数据模型和性能要求的技术.

我们绝望的客户通常是第 2 代开发人员,他们在第一个团队厌倦了尝试将方形钉子敲入圆孔后出现来修复项目。这些人正在寻找能够提供高速数据持久性、导航查询和潜在分布式数据库的解决方案,以解决关键任务问题。

绝大多数客户使用我们的对象数据库有四个原因:

  1. 数据库使他们能够轻松地对复杂数据建模。
  2. 数据库允许它们 link 对象在一起,然后导航这些连接比关系数据库快几个数量级。
  3. 该数据库是可分发的且可大规模扩展的。
  4. 数据库的摄取和查询速度都快得令人难以置信。

今天我们看到了图形数据库的戏剧性出现。我认为这是由于数据库中数据项之间的关系越来越重要。关系数据库之所以被称为关系数据库,并不是因为它们能够有效地处理关系,而是因为它们旨在支持关系代数。对象和图形数据库专门设计用于支持对象之间的关系,并且在适当设计的 object/graph 数据库中导航数十或数百个节点和边缘(关系)时通常要快得多。

现在让我们来讨论对象数据库在游戏开发中的适用性...

对象数据库绝对没有理由不适合游戏开发。 Objectivity 最初是工业 CAD/CAM/CAE 软件架构中的数据库。这是 CAD、CAM 和 CAE 这三个领域首次使用同一个数据库无缝连接在一起。客观性已经并且仍在用于 运行 3-D CAD 模型的复杂模拟。在对象数据库中创建多维游戏世界比在关系数据库中尝试完成同样的事情要自然得多。所以是的,可以使用图形数据库构建 MMORPG。您可以从在数据库中创建游戏世界开始。然后,您将所有玩家及其互动作为从游戏引擎到数据库的事件更新进行管理。我们的产品具有内存缓存功能,您可以只在内存中保留您当前正在处理的数据库的那些部分。在 MMORPG 中,您可以拥有许多不同的服务器,它们都托管着游戏世界的不同部分,并且它们都可以 运行 畅通无阻地针对数据库的不同部分。这就是我们的一些工业客户现在所做的。