Darkstar计划现实吗?
Darkstar项目是昨晚在纽约Google办事处举行的JavaSIG每月例会的主题。对于那些不了解的人(可能每个人都不知道),Project Darkstar是大型多人在线游戏的框架,它试图解决所有"困难"的问题。基本思想是,我们应以将所有操作分解为微小任务的方式编写游戏服务器逻辑。我们将这些任务传递给Project Darkstar框架,该框架处理将它们分配给群集中的特定节点,所有并发问题,最后保留数据。
显然,做这种事情对于视频游戏来说与企业应用程序有很大不同。演讲者吉姆·沃尔多(Jim Waldo)声称MMO游戏的数据库读/写比率为50/50,而企业应用程序更像是90%读,10%写。他还声称,大多数现有的MMO都将所有内容都专门保留在内存中,并且仅每6个小时转储到DB中一次。这意味着,如果服务器宕机,我们将失去自上次数据库转储以来的所有工作。
现在,该项目本身听起来很酷,但我认为业界不会接受。首先,我们必须使用Java编写服务器代码。客户端代码可以用任何东西编写(Jim声称ActionScript 3是最受欢迎的,其次是C ++),但是服务器必须是Java。对我来说听起来不错,但我确实给人印象,游戏行业的每个人都讨厌Java。
其次,不同于其他开发人员更喜欢使用现有框架和库的行业,游戏行业的人们似乎喜欢自己编写所有内容。不仅如此,他们还喜欢为自己制作的每个新游戏重写所有内容。在开发人员将Havok用于物理,将虚幻引擎3作为其平台等时,情况开始发生变化,但是在大多数情况下,看起来一切仍然是专有的。
那么,《暗星计划》中的家伙只是在浪费时间吗?这样的通用框架是否可以真正用于具有所需性能的复杂游戏?即使它可行,游戏公司是否愿意使用它?
解决方案
回答
我不在游戏行业工作,但在我看来,这对视频游戏的作用与Quake和Half-Life引擎相同。也就是说,它们将促进让年轻的开发人员对该行业产生兴趣,并促进独立游戏的开发。
据我所知,视频游戏公司不会重复使用大多数代码,因为如果这样做,则意味着他们的新游戏只是对旧游戏的重演。每个人都想要一个很棒的新物理引擎,更好的图形,新的玩游戏方式。大多数视频游戏引擎和框架都是针对特定情况制作的,因此不太容易受其他情况的影响。
也许Darkstar会做对的,但是我有点怀疑,因为泛化仅适用于如此之多。
回答
From what I can tell, video game companies do not reuse most of their code, because if they do it implies that their new game is just a rehash of an old one.
嗯...如果我们指的是视频游戏公司的长尾巴,也许。在拥有一系列成功游戏的公司中,通常会有一些重用。重大的硬件更改可能会导致大量工作中断,但这实际上取决于公司。
回答
对我来说听起来像无用的技术。 MMO世界由一些已经拥有自己技术的大型游戏公司控制。独立游戏开发商喜欢尝试建立MMO,有时也喜欢这样做,但是这些游戏很少能吸引人。进入MMO世界的大型公司可能会许可"经过验证的"技术,或者扩展自己的技术。
游戏公司从游戏到游戏重用大量代码。大多数/许多游戏公司都在内部开发了自己的技术,并在生产的每款游戏中使用了该技术。有时,他们会做一些事情,例如用第三方物理引擎替换其物理代码。如果他们的内部代码库(游戏引擎,设计工具,内部管道)开始老化太多或者变得笨拙,则他们可能会切换到像Unreal这样的大型游戏引擎之一。即使到那时,各游戏之间仍将继续重复使用大部分主要代码。
回答
设计和编码听起来很有趣,但我认为最终归结为无用的抽象(从Joel那里窃取)。
回答
游戏重用"游戏引擎",甚至来自第三方的游戏引擎,都是很常见的。这听起来像是朝着这个方向迈出的又一步。
回答
编辑:这是在甲骨文公司收购Sun并开始横冲直撞杀死每天不能赚到10亿美元的一切之前写的。请参阅OSS前叉的注释。我仍然认为这样的东西(MMO中间件)是现实的,我们只需要一个不会落后的公司即可。
市场可能是由少数大型游戏主导的,但这并不意味着没有更多空间可以容纳更多小众游戏。让我们面对现实:如果我们想吸引超过100.000名玩家,那么我们最终将建立自己的技术堆栈,至少对于关键核心而言。这就是CCP为EVE Online(StacklessIO)所做的,这就是暴雪为《魔兽世界》所做的(尽管它们确实使用了许多第三方库),这就是Mythic为《战锤在线》所做的(尽管它们基于Gamebryo)。
但是,如果目标是成为一个小型利基MMO(例如数十个Free-to / Play / Itemshop MMO),那么正确地处理Network东西将变得异常困难,数据一致性甚至更加困难,并且可伸缩性是最大的挑战* tch。
但是,游戏技术并不是我们唯一需要解决帐单问题的问题。仅信用卡?那就在德国玩得开心,那里的人们想要ELV。那是我们需要可靠的计费提供商的地方,但是我们仍然需要将计费应用程序与帐户关联,以确保在计费失败时阻止/重新激活帐户。
已经有一些公司提供" MMO基础设施服务"(即Arvato的EEIS),但最重要的是:像Project Darkstar这样的东西是现实的,但是假设我们可以完全在第三方堆栈上构建数十亿MMO是乐观的,可能是理想主义者。
但是话又说回来,完全发明所有技术会更愚蠢地使用我们需要的第三方内容(例如,帐单,字体渲染,音频输出...),而写出真正能够影响或者破坏业务的内容(例如,网络)堆栈,用户界面等)。 (注意:杰夫的发贴可能有点瑕疵,但总体方向是正确的恕我直言。)
附录:此外,游戏行业确实大量许可和重复使用引擎。最杰出的游戏引擎是虚幻引擎,源引擎和id Tech,它们为数十种(甚至数百种)游戏提供了动力。但是有一些鲜为人知的(行业之外)引擎。有Gamebryo,《文明4》和《辐射3》等游戏背后的中间件,还有RenderWare,现在仅是内部EA,但用于《战地风云2》或者《模拟人生3》等游戏。在一些商业标题中。如果我们只是在寻找声音,那会是FMOD之类的东西,或者我们想进行字体渲染,为什么不给FreeType旋转呢?
我的意思是:确实存在第三方引擎/中间件,并且十多年来(成功地将id的Wolfenstein Engine许可给了其他公司,并且是1992年),它们已经被成功使用。拥有数百万美元头衔的大公司。重要的是提供支持,因为如果开发人员不得不在不必要的引擎调试中花费他们的游戏开发时间,那么一个没有问题的,没有帮助的好的引擎几乎毫无价值,或者至少非常昂贵。
如果Darkstar员工设法获得支持方面的支持,并获得2或者3个更高知名度的游戏,我相信它将成功地向更多小型开发商和独立开发者开放MMO市场。
回答
我认为这是一件很棒的事情。
开发人员不必担心darkstar项目会处理的所有这些事情,并且非常易于使用。
但这不只是使它工作而不必学习互联网通信的所有知识,还涉及性能。 Darkstar项目已经开发了2年多,并且一直在不断完善,更快和更强大。
我认为,针对特定的游戏,而可以使用类似的技术代替时,编写这些东西将很困难,而且可能不值得花时间。而且,我们还将在运行时期间获得很好的信息,告诉我们在应用程序中的哪里有速度下降或者死锁的原因,因此我们可以改善它。