26

昨晚在纽约谷歌办公室举行的JavaSIG月度会议的主题是Project Darkstar 。对于那些不知道的人(可能是每个人),Project Darkstar 是一个大型多人在线游戏的框架,它试图处理所有“困难的事情”。基本思想是您编写游戏服务器逻辑的方式是将所有操作分解为小任务。您将这些任务传递给 Project Darkstar 框架,该框架处理将它们分发到集群中的特定节点、任何并发问题,并最终持久化数据。

显然,做这种事情对于视频游戏来说是一个与企业应用程序大不相同的问题。演讲的 Jim Waldo 声称,MMO 游戏的 DB 读/写比率为 50/50,而企业应用程序更像是 90% 读取,10% 写入。他还声称,大多数现有的 MMO 将所有内容都单独保存在内存中,并且每 6 小时才转储到数据库中。这意味着如果服务器出现故障,您将丢失自上次数据库转储以来的所有工作。

现在,这个项目本身听起来很酷,但我认为业界不会接受它。首先,您必须用 Java 编写服务器代码。客户端代码可以用任何东西编写(Jim 声称 ActionScript 3 是最流行的,其次是 C++),但服务器代码必须是 Java。听起来不错,但我真的觉得游戏行业的每个人都讨厌 Java。

其次,与其他行业的开发人员更喜欢使用现有的框架和库不同,游戏行业的人似乎喜欢自己编写所有东西。不仅如此,他们还喜欢为他们制作的每款新游戏重写所有内容。在开发人员使用 Havok 进行物理、使用虚幻引擎 3 作为他们的平台等的地方,情况开始发生变化,但在大多数情况下,一切看起来仍然是专有的。

那么,暗星计划的人只是在浪费时间吗?像这样的通用框架真的可以用于具有所需性能的复杂游戏吗?即使它确实有效,游戏公司是否愿意使用它?

4

7 回答 7

26

编辑:这是在甲骨文收购 Sun 之前写的,并开始横冲直撞地杀死所有不能让他们每天赚 10 亿美元的东西。请参阅 OSS Fork 的评论。 我仍然坚持我的观点,像这样的东西(MMO 中间件)是现实的,你只需要一个不支持它的公司。

市场可能由少数大型游戏主导,但这并不意味着没有更多的小众游戏空间。让我们面对现实吧:如果您想吸引 100,000 多名玩家,那么您最终将构建自己的技术堆栈,至少对于关键核心而言。这就是 CCP 为 EVE Online ( StacklessIO ) 所做的,这就是暴雪为魔兽世界所做的(尽管他们确实使用了许多第三方库),这就是 Mythic 为 Warhammer Online 所做的(尽管它们基于 Gamebryo)。

然而,如果你的目标是成为一个小型的、利基的 MMO(比如几十个免费游戏/道具商店 MMO),那么让网络的东西正确是非常困难的,数据一致性更加困难,而可扩展性是最大的 b*切。

但游戏技术并不是您唯一的问题——您还需要解决计费问题。只有信用卡?那就在德国卖得开心吧,那里的人想要 ELV。这就是您需要可靠的计费提供商的地方,但您仍然需要在计费应用程序中与您的帐户进行电汇,以确保在计费失败时帐户被阻止/重新激活。

有一些公司已经在提供“MMO 基础设施服务”(即Arvato 的 EEIS),但底线是:像 Project Darkstar 这样的东西是现实的,但假设你可以完全在第三方堆栈上构建数十亿的 MMO 是乐观的,可能是理想主义的。

但是话又说回来,完全发明所有技术更加愚蠢 - 使用您需要的第三方东西(即计费,字体渲染,音频输出......),但编写真正成就或破坏您的业务的东西(即网络堆栈、用户界面等)。(注意:杰夫的帖子可能有点缺陷,但总体方向是正确的恕我直言。)

附录:此外,游戏行业确实许可和重用引擎很多。最突出的游戏引擎是Unreal EngineSource Engineid Tech,它们为数十款甚至数百款游戏提供动力。但也有一些鲜为人知的(行业之外的)引擎。有Gamebryo,是《文明 4》和《辐射 3》等游戏背后的中间件,还有RenderWare,它现在只是 EA 内部,但在《战地 2》或《模拟人生 3》等游戏中使用。还有开源Ogre3d,它被使用在一些商业标题中。如果你只是在寻找声音,有FMOD之类的东西或者如果你想做字体渲染,为什么不试试 FreeType呢?

我要说的是:第三方引擎/中间件确实存在,并且十多年来它们一直被成功使用(我确信 id 的 Wolfenstein 引擎已授权给其他公司,那是 1992 年),即使是拥有数百万美元头衔的大公司。重要的是支持,因为如果开发人员不得不花费他们的游戏开发时间对引擎进行不必要的调试,那么在出现问题时没有帮助的好引擎几乎毫无价值,或者至少非常昂贵。

如果 Darkstar 的人设法让支持方获得正确的支持并推出 2 或 3 个更高知名度的游戏,我相信它可以成功地将 MMO 市场开放给更多较小的开发商和独立游戏。

于 2009-01-27T21:20:26.120 回答
3

对我来说听起来像是无用的技术。MMO 世界由几家已经拥有自己技术的大型游戏公司控制。独立游戏开发者喜欢尝试构建 MMO,有时他们会这样做,但这些游戏很少受到关注。闯入 MMO 世界的大公司可能会授权“经过验证的”技术,或扩展他们自己的技术。

游戏公司在游戏之间重复使用大量代码。大多数/许多游戏公司都在内部开发了自己的技术,并将其用于他们制作的每款游戏。有时,他们会做一些事情,比如用 3rd 方物理引擎替换他们的物理代码。如果他们的内部代码库(游戏引擎、设计工具、内部管道)开始老化太多或变得笨拙,他们可能会切换到像 Unreal 这样的大型游戏引擎之一。即便如此,主要代码块仍将继续在游戏之间重复使用。

于 2008-09-29T23:45:01.073 回答
2

据我所知,视频游戏公司不会重用他们的大部分代码,因为如果他们这样做,就意味着他们的新游戏只是旧游戏的翻版。

嗯……如果你指的是视频游戏公司的长尾,也许吧。在拥有一系列成功游戏的公司中,通常会有一些重用。重大的硬件变化可能会导致大量工作被放弃,但这真的取决于公司。

于 2008-08-21T21:46:10.237 回答
1

设计和编码听起来很有趣,但我认为最终归结为无用的抽象(从 Joel 那里窃取)。

于 2008-10-01T21:28:26.050 回答
1

游戏重用“游戏引擎”是很常见的,即使是来自第三方的引擎。这听起来像是朝那个方向迈出的又一步。

于 2008-10-01T23:32:03.523 回答
1

我认为这是一件很棒的事情。开发人员不必担心项目 darkstar 负责的所有这些事情,而且它非常易于使用。但这不仅仅是让它工作而不必学习有关互联网通信的所有内容,它还与性能有关。Darkstar 项目已经开发了 2 年多,并且不断变得更好、更快、更强大。

我认为在针对特定游戏时编写这些东西会很困难,而且可能不值得花时间,因为可以使用这样的技术来代替。您还可以在运行时获得很好的信息,告诉您应用程序中的哪个位置导致减速或死锁,因此您可以改进它。

于 2009-07-18T19:31:45.993 回答
-1

我不在游戏行业工作,但在我看来,这对视频游戏的作用与雷神之锤和半条命引擎所做的一样。那就是他们将促进年轻开发者对该行业感兴趣并促进独立游戏的发展。

据我所知,视频游戏公司不会重用他们的大部分代码,因为如果他们这样做,就意味着他们的新游戏只是旧游戏的翻版。每个人都想要一个很酷的新物理引擎、更好的图形、新的游戏方式。大多数视频游戏引擎和框架都是为特定场景而设计的,因此不能很好地适应其他情况。

也许 Darkstar 会做对,但我有点怀疑,因为泛化只适用于这么多。

于 2008-08-21T21:36:00.153 回答