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项目的那些人是不是在浪费时间?像这样的通用框架能否真正适用于具有所需性能的复杂游戏?即使它确实有效,游戏公司是否愿意使用它?
编辑:这是在甲骨文收购Sun之前编写的,并开始横行以杀死所有不会使它们每天损失10亿美元的东西.请参阅OSS Fork的注释. 我仍然认为像这样的东西(MMO中间件)是现实的,你只需要一个不会躲在它后面的公司.
市场可能由少数大型游戏占据主导地位,但这并不意味着没有更多的利基游戏空间.让我们面对现实:如果你想要达到100.000+以上的玩家,你最终会建立自己的技术堆栈,至少对于关键核心来说.这就是中共为EVE Online(StacklessIO)做的事情,这就是暴雪为魔兽世界所做的事情(虽然他们确实使用了许多第三方库),这就是Mythic为Warhammer Online所做的事情(尽管它们基于Gamebryo).
然而,如果你的目标是成为一个小型的小众MMO(如数十个免费游戏/物品商店MMO),那么获得网络正确的东西是非常困难的,数据一致性更难,可扩展性是最大的b*TCH.
但游戏技术不是你唯一的问题 - 你还需要解决计费问题.仅限信用卡?那么在德国销售乐趣,那里的人们想要ELV.这就是您需要可靠的结算提供商的地方,但您仍需要将结算应用程序与您的帐户联系起来,以确保在结算失败时阻止/重新激活帐户.
有些公司已经提供"MMO基础设施服务"(即Arvato的EEIS),但最重要的是:像Darkstar这样的东西是现实的,但假设你可以完全在第三方堆栈上建立一个数十亿的MMO是乐观的,可能是理想主义的.
但话又说回来,完全发明所有技术甚至更愚蠢 - 使用你需要的第三方东西(即计费,字体渲染,音频输出......),但写出真正使你的业务成败的东西(即网络堆栈,用户界面等)您自己.(注意:杰夫的帖子可能有点瑕疵,但整体方向是正确的恕我直言.)
附录:此外,游戏行业确实许可和重复使用引擎.最着名的游戏引擎是虚幻引擎,源引擎和id技术,它可以为数十种(如果不是数百种)游戏提供动力.但是有一些鲜为人知的(行业之外)引擎.有Gamebryo,像Civilization 4和Fallout 3这样的游戏背后的中间件,RenderWare现在只有EA-in-House,但是用在像Battlefield 2或The Sims 3这样的游戏中.有开源的Ogre3d,它被使用了在一些商业头衔.如果您只是在寻找Sound,那就有像FMOD这样的东西或者如果你想进行字体渲染,为什么不给FreeType一个旋转?
我所说的是:第三方引擎/中间件确实存在,并且它们已经被成功使用了十多年(我确信id的Wolfenstein引擎被许可给其他公司,那是1992年),即使是价值数百万美元的大公司.重要的是支持,因为如果开发人员不得不花费他们的游戏开发时间来对引擎进行不必要的调试,那么在出现问题时没有帮助的好引擎几乎毫无价值或者至少非常昂贵.
如果Darkstar的人们能够获得正确的支持和2或3个更高级别的标题,我相信它可以成功地向更小的开发者和独立开发者开放MMO市场.