Project Darkstar是昨晚在纽约市Google办事处举行的每月JavaSIG会议的主题。对于那些不了解(可能是每个人)的人来说,Project Darkstar是一个大型多人在线游戏的框架,它试图处理所有“困难的东西”。基本的想法是你编写游戏服务器逻辑,使所有操作都分解成微小的任务。您将这些任务传递给Project Darkstar框架,该框架处理将它们分发到集群中的特定节点,任何并发问题,最后持久保存数据。
显然,对于视频游戏而言,这种事情与企业应用程序的问题完全不同。发表演讲的吉姆·沃尔多称,MMO游戏的数据库读/写比率为50/50,而企业应用程序更像是90%读取,10%写入。他还声称,大多数现有的MMO都会将所有内容保存在内存中,并且每6小时只会转储到数据库中。这意味着如果服务器出现故障,您将丢失自上次数据库转储以来的所有工作。
现在,该项目本身听起来很酷,但我不认为该行业会接受它。首先,您必须用Java编写服务器代码。客户端代码可以用任何东西编写(Jim声称ActionScript 3是最受欢迎的,遵循C ++),但服务器的东西必须是Java。对我来说听起来不错,但我的印象是游戏行业的每个人都讨厌Java。
其次,与开发人员更喜欢使用现有框架和库的其他行业不同,游戏行业的人似乎喜欢自己编写所有内容。不仅如此,他们还喜欢为他们制作的每一款新游戏重写所有内容。事情开始发生变化,开发人员正在使用Havok作为物理,虚幻引擎3作为他们的平台等,但在大多数情况下,它看起来仍然是专有的。
那么,Darkstar项目的那些人是不是在浪费时间?像这样的通用框架能否真正适用于具有所需性能的复杂游戏?即使它确实有效,游戏公司是否愿意使用它?
答案 0 :(得分:25)
编辑:这是在甲骨文收购Sun之前编写的,并开始横行以杀死所有不会使其每天损失10亿美元的东西。请参阅OSS Fork的评论。 我仍然坚持认为像这样的东西(MMO中间件)是现实的,你只需要一个不会背后的公司。 < / p>
市场可能会受到少数大型游戏的支配,但这并不意味着没有更多的利基游戏空间。让我们面对现实:如果你想要达到100.000+以上的玩家,你最终会建立自己的技术堆栈,至少对于关键核心来说。这就是中共为EVE Online所做的事情(StacklessIO),这就是暴雪为魔兽世界做的事情(虽然他们确实使用了许多第三方库),这就是Mythic为Warhammer Online所做的事情(尽管它们基于Gamebryo)
然而,如果你的目标是成为一个小型的小众MMO(比如几十个免费游戏/商店MMO游戏),那么获得网络正确的东西是非常困难的,数据一致性更难,可扩展性是最大的b * tch。
但游戏技术不是你唯一的问题 - 你还需要解决计费问题。仅限信用卡?那么在德国销售乐趣,那里的人们想要ELV。这就是您需要可靠的结算提供商的地方,但您仍需要将结算应用程序与您的帐户联系起来,以确保在结算失败时阻止/重新激活帐户。
有些公司已经提供“MMO基础设施服务”(即Arvato's EEIS),但最重要的是:像Darkstar这样的东西是现实的,但假设你可以完全建立一个数十亿的MMO第三方筹码是乐观的,可能是理想主义的。
然而再一次,完全发明所有技术甚至更愚蠢 - 使用你需要的第三方东西(即计费,字体渲染,音频输出......),但是write the stuff that really makes or breaks your business(即网络堆栈) ,用户界面等)你自己。 (注意:杰夫的帖子可能是a bit flawed,但整体方向是正确的恕我直言。)
附录:此外,游戏行业还经常许可和重复使用引擎。最着名的游戏引擎是Unreal Engine,Source Engine和id Tech,即使不是数百款游戏,它也可以提供数十种游戏。但是有一些鲜为人知的(行业之外)引擎。有Gamebryo,像“文明4”和“辐射3”这样的游戏背后的中间件,RenderWare现在只有EA-in-House,但在“战地2”或“模拟人生3”等游戏中使用。开源Ogre3d,用于some商业广告titles。如果你只是在寻找声音,有FMOD这样的东西,或者如果你想进行字体渲染,为什么不给FreeType一个旋转呢?
我所说的是:第三方引擎/中间件确实存在,并且它们已经被成功使用了十多年(我确信id的Wolfenstein引擎被许可给其他公司,那是1992年)即使是价值数百万美元的大公司也是如此。重要的是支持,因为如果开发人员不得不花费他们的游戏开发时间来对引擎进行不必要的调试,那么在出现问题时没有帮助的好引擎几乎毫无价值或者至少非常昂贵。
如果Darkstar的人们能够获得正确的支持和2或3个更高级别的标题,我相信它可以成功地向更小的开发者和独立开发者开放MMO市场。
答案 1 :(得分:3)
对我来说听起来像无用的技术。 MMO世界由一些已经拥有自己的技术的大型游戏公司控制。独立游戏开发者喜欢尝试构建MMO游戏,有时他们会这样做,但这些游戏很少有吸引力。进入MMO世界的大公司可能会授权“经过验证的”技术,或扩展自己的技术。
游戏公司在游戏中重复使用大量代码。大多数/许多游戏公司在内部开发了自己的技术,并在他们制作的每一款游戏中使用它。偶尔,他们会做一些事情,比如用第三方物理引擎替换他们的物理代码。如果他们的内部代码库(游戏引擎,设计工具,内部管道)开始老化太多,或者变得笨拙,他们可能会切换到像Unreal这样的大型游戏引擎之一。即使这样,代码的主要部分仍将继续在游戏中重复使用。
答案 2 :(得分:2)
嗯...如果你指的是视频游戏公司的长尾,也许吧。在一家拥有一系列成功游戏的公司中,通常会有一些重复使用。主要的硬件变化可能会导致大量工作放弃,但这实际上取决于公司。据我所知,视频游戏公司并没有重复使用他们的大部分代码,因为如果他们这样做,就意味着他们的新游戏只是旧游戏的重演。
答案 3 :(得分:1)
设计和编码听起来很有趣,但我认为它最终归结为useless abstractions(从Joel窃取)。
答案 4 :(得分:1)
游戏重用“游戏引擎”,即使是来自第三方的游戏也很常见。这听起来像是朝这个方向迈出的又一步。
答案 5 :(得分:1)
我认为这是件好事。 开发人员不必担心暗星项目所涉及的所有这些事情,并且它非常易于使用。 但这并不仅仅是让它发挥作用而不必学习有关互联网通信的一切,它也与性能有关。项目暗星已经开发了2年多,它不断变得更好,更快,更强大。
我认为在针对特定游戏时编写这些内容会很困难并且可能不值得花时间,而可以使用这样的技术。并且您还可以在运行时获得很好的信息,告诉您在应用程序中哪里有导致速度减慢或死锁的原因,以便您可以改进它。
答案 6 :(得分:-1)
我不参与游戏行业,但对我而言,这对于视频游戏也会像Quake和Half-Life引擎那样做。这就是他们将促进让年轻开发者对该行业感兴趣并促进独立游戏的发展。
据我所知,视频游戏公司并没有重复使用他们的大多数代码,因为如果他们这样做,就意味着他们的新游戏只是旧游戏的重演。每个人都想要一个很酷的新物理引擎,更好的图形,玩游戏的新方法。大多数视频游戏引擎和框架是针对特定场景制作的,因此对其他情况不是很容易弯曲。
也许Darkstar会把它弄好,但我有点怀疑它,因为一般化只能起作用。