昨晚在纽约谷歌办公室举行的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 作为他们的平台等的地方,情况开始发生变化,但在大多数情况下,一切看起来仍然是专有的。
那么,暗星计划的人只是在浪费时间吗?像这样的通用框架真的可以用于具有所需性能的复杂游戏吗?即使它确实有效,游戏公司是否愿意使用它?