GNO3ベータテスト開始。やはりオンラインゲームはクラウドにすべきと痛感
連休明け早々ガンダムネタで恐縮だが、GNO3のベータテストが27日16時からようやく開始された。
まずは関係者の方々に敬意を表し、無事ベータテストが開始できたことをお喜び申し上げたい。
いくらベータとはいえ&いくら支えてくれる根強いファンがいるからとはいえ、今回のベータ開始時の
ユーザーエクスペリエンスには改善の余地があると思われる。twitter他で状況を探っていたが、
他のベータテスターも同じような感想を持っているようだ。
裏側では多くの方々ががんばっておられると思うので今更シロウトが言うまでもないことかもしれないが、
今後の改善に期待していくつか意見を述べさせていただきたい。無論、単なるベータテスターとしての
アジュール小隊長としてでなく、クラウドコンピューティングならびにWindows Azureの意志を継ぐ
エバンジェリストとして語りたい。※
まず、公開初日Version 0.0.0.1($Revision: 14475 $)の現段階において機能面や仕様、ゲームバランスを
とやかくいうのは危険なのでやめておく。今後改善が行われてゆくと信じたいが、GNO/GNO2経験者の私も
何がどう操作できるのか直感的に分からなかった。ただ、1点気がかりなのが「お気軽感、オートマ感」を
重視しすぎているのではないかという懸念だ。
GNO3をご存じでない方には申し訳ないが、このゲームの肝はコードこそ書かないまでも、ルールベースの
部隊制御ロジックの優劣にあると思っている。兵器とパイロットの能力や地形条件を所与のものとして、
行動順序やターゲット選定、ピンチの時の行動パターンなどを if then else で組み上げ、他のプレーヤーと
切磋琢磨することが基本的な楽しみ方だと、少なくとも私は感じている。
しかし、今回のGNO3初期ベータ版では、この部隊編成があらかじめ「フォーメーション」というメニューの
中にプリセットで組み込まれており、プレーヤーは与えられたフォーメーションの中から選択するという方式に
変更されている(ように見える)。おそらくはこのフォーメーション編成機能が追加されることになると
信じたいのだが、「多忙な中でも1日10分で遊べるオンラインゲーム」を愚直に追い求めてしまうと、
もしかするとプリセットの編成から選択することであえて自由度を下げているのかもしれないと勘ぐってしまう。
GNO/GNO2の経験者だけでなく、新しい層を取り込みたいという意図もあるのだろうが、先行きやや心配だ。
ゲームだけでなく車でも、利便性と走りの楽しさを高い次元で両立することが望ましい。個人的な好みも含め、
基本的にはスポーツ仕様でありながら、利便性を考慮してオートマモードがついている、くらいのバランスが
メカやソフトウェアを自分で操作しているグリップ感を好む層が多そうなGNOに向いているのではなかろうか。
さて、ここから少しクラウド的な視点に移っていきたい。
GNOシリーズに限らずある程度の人数でゲームサーバーを分割するのが、オンラインゲームの定石だ。
ゲームサーバーを水平分割することで、人数の増減に対するスケールアウトを実現するのである。
確かに今まではこれでよかった、というかこれしかやりようがなかったのだが、Hadoopなどの
分散処理機構を含め、様々なスケールアウトに寄与する技術がクラウドコンピューティング台頭の恩恵として
もたらされている2009年ともなれば、ゲームサーバーという境界線で世界を分けた方がゲーム性が増すという
特殊な場合を除いて、わざわざゲームサーバーを負荷分散のためだけという理由で分割するのは
アーキテクチャ設計上いかがなものかと思ってしまう。
中身の実装を見ていないので具体的な言及はできないが、もしアプリケーションロジックとストレージが
スケールアウトできるクラウド的なインフラで解決できるのであれば、そろそろ次の世代の設計思想に
変えていってもよい頃合いだと思われる。
ちなみに、現時点私が非常に困っている問題は、下図のようにセッション情報が残ってしまう挙動である。
ロードバランサーにぶら下がる他のゲームサーバーに接続されて、前回のセッション情報が引き継がれたり
適切に消去されることなく残ってしまっている状況だと思われるが、Windows Azure Community の方で
参考訳を公開していただいているAzureトレーニングキットの中にも、同様に分散化されたサーバーをまたぐ
セッションの引き継ぎをどう処理すべきか、というテーマのハンズオンが掲載されている。
そして、サーバー側ゲームアプリケーションの実装を見ずとも、明らかにクラウド化した方がよい点がある。
今回も多くのベータテスター(と同時に裏方のエンジニア)を悩ませたパッチの配布である。オンラインゲーム
ではゲーム起動時に新しいモジュールをダウンロードすることが多い。不具合修正という意味合いもまったく
ないわけでもなかろうが、基本的にはゲーム性を高めるためのコンテンツ追加が主な目的となる。
開始直後に急増し、徐々にロングテールになってゆくユーザー数推移や、時間帯や曜日ごとのアクセスピークを
考えれば、上で述べたようにゲームインフラ全体をElasticなインフラにしておくのが正しい選択と思われるが、
何らかの制約でそれが難しい場合もあろう。しかし、ファイル転送を主任務とするパッチのダウンロードくらいは
クラウドインフラに移しても大きな問題はないのではなかろうかと思ってしまう。ピークの時間帯があらかじめ
わかっているのならばその時間だけサーバー借りてプロビジョニングしておけば費用も安くすむ。
今回はベータテストということもあってサーバー側もそれほど大がかりな準備をしていなかったと思われるが
パッチサーバーにアクセスできずゲーム開始後半日以上やきもきしていたユーザーがいることを考えると、
少なくとも正式サービス開始後はElasticな対応をとった方がよさそうだ。熱心なベータテスターならつきあうが、
通りがかり層はパッチダウンロードに失敗、あるいは時間がかかりすぎる時点で立ち去ってしまうだろう。
以上、部外者が勝手なことを述べてしまってはいるが、関係者の方がご覧になった際には、今後の改善に
期待してのこととご理解いただければ幸甚である。バンダイナムコゲームス様も、インフラを支えている
NTTデータ様も様々なビジネスで大変お世話になっている弊社の重要なお客様であり、お声がけいただければ
「お仕事」として、いつでもアーキテクチャ改善に向けたご支援に馳せ参じさせていただけることと思う。
直近は今日の午前中のメンテナンス作業に期待したい。
GNO3について分からないことは、ハマーン様に聞いてみよう。「俗物が!」としかってくれるに違いない。