Project Darkstarは、昨夜ニューヨークのGoogleオフィスで開催された毎月のJavaSIGミーティングのトピックでした。知らない人(おそらく全員)にとって、Project Darkstarは、すべての「難しいこと」を処理しようとする大規模なマルチプレイヤーオンラインゲームのフレームワークです。基本的な考え方は、すべての操作が小さなタスクに分割されるようにゲームサーバーロジックを作成することです。これらのタスクをProjectDarkstarフレームワークに渡します。このフレームワークは、クラスター内の特定のノードへのタスクの分散、同時実行の問題、そして最終的にデータの永続化を処理します。
どうやら、この種のことを行うことは、ビデオゲームにとってはエンタープライズアプリケーションの場合とは大きく異なる問題です。講演を行ったJimWaldoは、MMOゲームのDB読み取り/書き込み比率は50/50であるのに対し、エンタープライズアプリは90%が読み取り、10%が書き込みに近いと主張しています。彼はまた、ほとんどの既存のMMOはすべてを排他的にメモリに保持し、その6時間ごとにのみDBにダンプすると主張しています。これは、サーバーがダウンした場合、最後のDBダンプ以降のすべての作業が失われることを意味します。
さて、プロジェクト自体は本当にクールに聞こえますが、業界がそれを受け入れるとは思いません。まず、Javaでサーバーコードを作成する必要があります。クライアントコードは何でも書くことができますが(JimはActionScript 3が最も人気があり、C ++がそれに続くと主張しています)、サーバーのものはJavaでなければなりません。私には良さそうに聞こえますが、ゲーム業界の誰もがJavaを嫌っているという印象を受けます。
第二に、開発者が既存のフレームワークとライブラリを使用することを好む他の業界とは異なり、ゲーム業界の人々はすべてを自分で書くことを好むようです。それだけでなく、彼らは彼らが作り出すすべての新しいゲームのためにすべてを書き直すのが好きです。開発者が物理学にHavokを使用しているところ、プラットフォームとしてUnreal Engine 3を使用しているところなど、状況は変わり始めていますが、ほとんどの場合、すべてがまだ独占的であるように見えます。
それで、Project Darkstarの人たちはただ時間を無駄にしているのでしょうか?このような一般的なフレームワークは、必要なパフォーマンスを備えた複雑なゲームで実際に機能しますか?たとえそれが機能したとしても、ゲーム会社はそれを喜んで使用しますか?