2008-08-21 59 views
24

Project Darkstar是每月JavaSIG昨晚在纽约市Google办公室举行会议的主题。对于那些不认识的人(可能是所有人),Project Darkstar是一个大型多人在线游戏框架,它试图处理所有“困难的东西”。基本的想法是你编写你的游戏服务器逻辑的方式是所有的操作都被分解成小任务。您将这些任务传递给Project Darkstar框架,该框架将它们分发到群集中的特定节点,发生任何并发问题,并最终保留数据。项目Darkstar现实?

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

现在,这个项目本身听起来很酷,但我不认为这个行业会接受它。首先,你必须用Java编写你的服务器代码。客户端代码可以用任何东西编写(Jim声称ActionScript 3是最流行的,后面跟着C++),但是服务器的东西必须是Java。听起来对我来说很好,但我确实感到游戏行业的每个人都讨厌Java。其次,与开发人员更喜欢使用现有框架和库的其他行业不同,游戏行业的人似乎喜欢自己写一切。不仅如此,他们喜欢为他们生产的每款新游戏重写所有内容。事情正在开始改变,开发人员正在使用Havok进行物理,虚幻引擎3作为他们的平台等,但大多数情况下,它看起来像所有东西都是专有的。

那么,Darkstar Project项目的员工是不是浪费了他们的时间?像这样的一般框架是否真的可以用于需要性能的复杂游戏?即使它确实有效,游戏公司是否愿意使用它?

回答

24

编辑:这是在Oracle收购Sun之前编写的,并开始横冲直撞杀死所有不会让他们每天损失10亿美元的东西。请参阅OSS分叉的评论。我仍然坚持我的观点,那些东西(MMO中间件)是现实的,你只需要一个公司不会背后。

市场可能会以少数大型游戏为主,但这并不意味着没有太多的空间可供更多利基游戏使用。让我们面对现实吧:如果你想要达到100,000玩家,那么你最终会建立自己的技术堆栈,至少对于关键核心来说。这就是中共为EVE Online所做的事情(StacklessIO),这就是暴雪为魔兽世界所做的(虽然他们使用了很多第三方库),这就是Mythic在Warhammer Online上所做的(尽管它们是基于Gamebryo的)。然而,如果你的目标是成为一个小型的,小众的MMO(比如数十个Free-to-Play/Itemshop MMO),那么正确地获得网络资源是非常困难的,数据一致性更难,可扩展性更强最大的b * tch。

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

有一些公司已经提供“MMO基础设施服务”(即Arvato's EEIS),但底线是:像黑暗之星这样的东西是现实的,但假设您可以完全在第三方上构建一个数十亿的MMO Stack很乐观,可能很理想。但是,再次,完全发明所有的技术更愚蠢 - 使用你需要的第三方东西(即计费,字体渲染,音频输出...),但是write the stuff that really makes or breaks your business(即网络堆栈,用户界面等等)。 (注:杰夫的帖子可能是a bit flawed,但整体方向是正确的恕我直言。)

附录:另外,游戏行业确实许可和重用引擎很多。最显着的游戏引擎是Unreal Engine,Source Engineid Tech,即使不是数百游戏,它也可以燃烧几十个。但是还有一些鲜为人知的(行业之外的)引擎。有Gamebryo,像文明4和辐射3游戏背后的中间件,有RenderWare,现在只有EA-in-House,但用于像“战地2”或“模拟人生3”这样的游戏。有开放源码Ogre3d,在some商业titles。如果你只是在寻找声音,有东西像FMOD,或者如果你想要做的字体渲染,为什么不给FreeType自旋?我想说的是:第三方引擎/中间件确实存在,并且自从十多年以来它们被成功地使用了(我确信id的Wolfenstein引擎被许可给其他公司,并且那是1992年),甚至包括数百万美元头衔的大公司。最重要的是支持,因为一个好的发动机中的问题的情况下,没有帮助是非常不值钱,或者至少,如果开发者度过他们的游戏开发时间与发动机的不必要的调试非常昂贵。

如果暗星人设法得到支持侧右2或3个知名度较高的片头,我相信它可以在开放的MMO市场多了很多小的开发商和独立开发成功。

+1

感谢您的努力! – 2009-01-30 22:14:55

-1

我不是在游戏行业工作,但在我看来,这对于视频游戏和Quake和Half-Life引擎所做的一样。那就是他们会促使年轻开发者对这个行业感兴趣,并促进独立游戏的发展。

从我所知道的看,电子游戏公司不会重复使用他们的大部分代码,因为如果他们这么做的话,这意味着他们的新游戏只是旧游戏的重新散布。每个人都想要一个很酷的新物理引擎,更好的图形和新的游戏方式。大多数视频游戏引擎和框架都是针对特定场景制作的,因此对其他情况不太适用。

也许Darkstar会明白它的道理,但我有点怀疑它,因为泛化只适用于这么多。

+1

但暗星即将后端代码,而不是客户端代码 - 播放器(一般)不关心后端技术时,他们谈论希望更大,更好。 – 2008-10-01 23:35:18

2

从我所知道的情况来看,电子游戏公司不会重复使用他们的大部分代码,因为如果他们这样做的话,那意味着他们的新游戏只是旧游戏的重新散布。

呃......如果你指的是电子游戏公司的长尾巴,也许。在一个拥有一系列成功游戏的公司中,通常会有一些重复使用。主要的硬件变更可能会导致很多工作开始,但这取决于公司。

3

听起来像没用的技术给我。 MMO世界是由一些已经拥有自己技术的大型游戏公司控制的。独立游戏开发者喜欢尝试构建MMO,有时他们也这样做,但这些游戏很少获得牵引力。闯入MMO世界的大公司可能会许可“已证实”的技术,或者扩展自己的技术。

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

1

设计和编码听起来很有趣,但我认为它最终归结为useless abstractions(从Joel窃取)。

1

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

1

我认为这是一个伟大的事情。 开发人员无需担心darkstar负责的所有项目,而且使用起来非常简单。但它并不仅仅是让它工作,而不是学习有关互联网通信的一切,它也关乎性能。 Darkstar项目已经开发了2年多,并且一直在变得更好,更快,更强劲。

我认为这将是很难,也许不值得针对特定游戏的时候,当这样的技术可以用来代替写这些东西的时间。在运行期间,您还可以获得很好的信息,告诉您应用程序中的哪些位置存在放缓或死锁的原因,以便您可以改进。