|
会場:デジタルハリウッド大学 秋葉原メインキャンパス
ゲーム開発者に向けたセミナーということもあって非常に専門性の高い内容だが、オンラインゲームビジネスに携わっている人やオンラインゲームのアーキテクチャに興味のあるゲームファンはぜひ一読いただきたい。
■ ゲーム開発者は将来Web開発者になる? オンラインゲーム技術の未来像
間接的にコミュニティエンジンの製品を利用した一般ユーザーの方も多いだろう。同社の事業はエンドユーザーに対して直接アピールする存在ではないものの、主力製品である通信ミドルウェア「VCE」は、スクウェア・エニックスのMMORPGやコーエーの全MMOタイトルなどなど、国内多数のオンラインゲームで採用実績があるのだ。 その中嶋氏は2005年8月に行われたCEDEC2005において、「ワールドシンセサイザー構想」と題するセッションを講演した。世界中に存在するプロセッシングパワーを有機的に結合して究極の環境シミュレーターを構築するという構想は、ゲーム開発者としてはかなりぶっとんだ内容だ。 突飛な発想に目がない面白いもの好きの筆者としては、この構想が少しでも前進しているのかという部分に強い関心を抱いてきた。現在、コミュニティエンジンは「ワールドシンセサイザー構想」で中核の概念となっていたP2Pネットワークパラダイムについて、同社が提供するオンライン環境シミュレーター「gumonji」をサーバー集中型の方式からP2P方式へ転換するという形で注力をはじめている。本セミナーの案内情報でも新ミドルウェアとして「World Synthesizer」という単語が踊っていたので、これは何か新しい展開があるに違いないと注目してやってきた次第だ。 本セッションの冒頭説明にて中嶋氏は、今回より複数回にわけて続く開発セミナーの方向性として、オンラインゲームというものを抽象的に捉え、将来においても普遍的に役立つ知識を提供していきたいというスタンスを表明した。というのも、氏はオンラインゲームの開発技術が将来的にはWebコンテンツの中核的な技術になるという未来像を抱いており、現在のゲーム開発者が将来のWeb開発者としても活躍する時代がくるという予測を立てているからだとのこと。 その背景としては、Web技術の進化によりブラウザ上で3Dアプリケーションの構築が可能になってきていることや、「SecondLife」に代表されるようなゲーム以外の用途におけるリアルタイムネットワークコンテンツの発達、また中嶋氏によれば「ゲームとコミュニティの関係がより重要になり、ゲーム空間とWebサービスの境界があいまいになっている」といった、最近のWebとネットワークゲームをとりまく状況への観測があるようだ。
そういったなかで第1回導入編として今回扱われた講演は、純粋な技術者向けの内容というよりは、ゲーム企画者などオンラインゲーム製作に携わる人々全般に向けた基礎知識と心構え的な、抽象性の高い内容になった。
■ オンラインゲームの基本概念から入る技術指南。導入編となった今回の講義内容を紹介
ゲームそのものに対する理解のしかたもユニークだ。中嶋氏にかかると、コンピューターゲームの世界、ゲームプレイ空間とは「1セットのルール」+「ルールに基づいて管理されているビット列の状態」以外の何物でもないうことになる。これはいかにもエンジニアチックな理解の仕方に見えるけれども、実はこういったゲームの捉え方は、オンラインゲーム開発に携わる者にはとても重要なのだ。 なぜなら、1個のゲームマシンの中で世界が完結しているシングルプレイヤーゲームとは異なり、オンラインゲームは、ゲームシステムがネットワークを介して複数のユーザー間で共有されて始めて成立するものなので、ゲームを走らせるためのデータ列が否応なくネットワーク上をパケットとして流れる。そこでは光の速さの絶対的な制約や、帯域幅の厳しい制限、そしてゲームルールの適正な運用に欠かせないセキュリティ上の問題があり、ゲームを楽しく正しく走らせるためには、それが機能するしくみをビット列にまで分解して考える必要に迫られるからだ。 ・オンラインゲームのセキュリティを確保するための開発者心得 特にゲームの楽しさを保証しなければならない商用オンラインゲームの課題として、セキュリティの確保は大きなウェイトを占める。今回の議論もここが要点になった。中嶋氏は、リアル世界のスポーツを例に挙げて「サッカーではルール違反に対してレフェリーがレッドカードを使って選手を排除する」形でゲームプレイ空間のセキュリティが維持されているとしつつ、オンラインゲームについては「匿名性が高いせいでルール違反が起きやすい」、また「その影響が広範囲に伝播しやすい」というネットワークの特性を指摘。その対策としては、開発者の心得として「全てのプレーヤーに悪意があると仮定する」こと、そしてゲームの種類に合わせたセキュリティレベルを確保するため、適切なネットワーク構造をデザインすることが大事だとした。 中嶋氏の議論では、オンラインゲームのふたつの構成要素、各参加者である「プレーヤー」と、ゲームルールの支配者であり多くの場合はゲームサーバーを意味する「レフェリー」に分類することから思考がはじまる。まず、「プレーヤー」側で不正行為を防ぐ方法としていくつかの方針が紹介されたが、その中で考え方として面白いのは「完全情報ゲームにする」、「ゲームの蓄積をなくす」というふたつの方法だ。 「完全情報ゲーム」とはゲームプレイ空間を構成するルールと状態を参加者全員が完全に把握できるゲームのことで、将棋や囲碁がそれにあたる。この種のゲームではズルをするとすぐにバレてしまうので、不正行為をはたらく余地がない。このためセキュリティ上は理想的なのだが、中嶋氏は「そんなゲームのネタはあまり思いつかないかもしれない」といってバッサリ斬り捨ててしまった。 「蓄積のないゲーム」については、MMORPGに対するMOアクションゲームの特性を想像するとよいだろう。MMORPGでは不正行為による利益がレベルやアイテムなどの形で永続的に蓄積されるが、1ゲームセッションが短時間で終わりデータの蓄積のないゲームではズルをするメリットが薄いため、コストをかけて本気でチートしようとする意識は低くなる。アクションゲーム好きの筆者としては、オンラインゲーム開発者がセキュリティの面からもこの事実に着目し、新たなゲームデザインに生かしてほしいと願っているわけだが、その傾向は最近のカジュアルゲーム隆盛の流れとして出てきているのかもしれない。 もうひとつの方法として中嶋氏が提案するのは、「ユーザーの匿名性を完全になくす」という方法だ。これにはクレジットカード番号の登録などの手段で運営会社がユーザーの素性をつねに明らかにできるようにし、不正行為をおこなうことによる社会的コストを増大させることや、ユーザーをSNS(ソーシャルネットワーキングサービス)に参加させることでコミュニティの透明性を確保する方法が挙げられた。
これらのいずれの手段も不完全である場合や、さらにセキュリティ性を確保したいとき、別の手段として「nProtect」や「Ahnlab HackShield」などクライアントPCを監視するセキュリティソフトの使用が候補になってくるが、これは開発会社に直接のコスト負担が発生する。またセキュリティソフトは新しいハッキングの方法が発明されるや無力化されるという性質があり、いたちごっこの連続だ。いずれにしても、サーバー集中型のゲームではルールを統括するサーバー上でのセキュリティ維持努力を欠かすことはできない。
・マルチスレッドかマルチプロセスか? ゲームサーバーに最適な負荷分散法とは
そこで中嶋氏は、送受信するクエリを減らす方法、サーバーの数を増やして負荷分散する方法の両方について紹介を交えつつ、並列処理による負荷分散においては最近のゲームシーンでトレンドとなっているマルチスレッド処理ではなく、「マルチスレッドにしてもどうせ複数のマシンが必要になるのだから」、シングルスレッドのサーバープログラムをたくさん実行しておこなうマルチプロセス処理が最適であるとの見解を示した。 つまり、マルチスレッド処理を高速に実行する「スーパーマシンは、故障しないための信頼性を確保するための贅肉が多く」処理能力あたりのコストが非常に高くつく反面、シングルスレッド・マルチプロセスで用いるマシンは一般的なPCでもよく、「安くて、消耗品のように使える」という考え方だ。 確かに、永続的なデータを保持するバックエンドDBを除けば、プレーヤーと直接対話するフロントエンドのゲームサーバ単体には複雑な構成は必要ない。故障が発生したとしても一時的にプレイが中断するくらいで、すぐに予備マシンに交換して元通りのゲームを再開することができそうだ。それに、多コアを並列利用しようとするマルチスレッドプログラミングは技術的に複雑でデバッグが難しく、巨大なゲームルールを管理するサーバー上では特にバグの発生が致命的な開発の遅れにつながってくる。ただし、並列I/Oなど入出力処理のレベルでマルチスレッドを用いる方法はパフォーマンスの向上に寄与するとされるので、そういった部分でマルチスレッドを部分的に用いるのはアリかもしれない。 中嶋氏の結論としては、安価なPC多数でクラスタを構成して、シングルスレッド・マルチプロセスで並列処理を実現するのが良い、という形で解説がなされた。これはコミュニティエンジン社が提供しているミドルウェア「VCE」の根底にも流れる設計哲学だ。次世代ゲーム機でマルチコア・マルチスレッド処理が主流になりつつある現状と比較してみると面白い。
・ゲームサーバーのクラスタ化にまつわる方式の数々
さて、ここで筆者がカッコ書きしているのは、ゲームタイトル名を除けば中嶋氏がセッション内で用いた用語法だ。オンラインゲーム開発の世界では事実上標準化した手法や概念に適切な名前が与えられていないケースが多く、開発者同士の会話でも語法に要領を得ず、冗長な説明の応酬に陥りやすい。これは、議論をより高い次元に高めていく上で大きな障害となる。中嶋氏が本セッションで敢えていくつもの用語を定義して見せたのは、そういったゲーム開発現場の現実を知るからだろうと推測する。これについては筆者も応援したい心情があり、ここでは中嶋氏の使用した用語をそのままの形で紹介していきたい。 中嶋氏によれば、並列化の手法として「縦割り」の方法がよく使われているとのこと。場所ごとにサーバマシンを割り当てる方式は、たしかにゲーム世界を拡大するたびにマシンを追加するといった形で拡張がしやすいということもあり、「ファイナルファンタジー XI」や「ラグナロクオンライン」といったMMOPRGでこのアプローチを取っている例が見られる。 もちろんこれらのタイトルを含む大規模な商用オンラインゲームでは、「縦割り」の方法に加え、機能別にサーバーマシンを分割する「横割り」の方式が併用されていることも事実だ。多くの大規模オンラインゲームでは、そうして構成されたひとかたまりのサーバー群を1単位のクラスタとして、さらに大量のユーザーを処理するために上位の大サーバー群を構成する。 その方法としては、1個のゲームワールドを複数のクラスタで処理する「分割式」、各クラスタが1個のゲームワールドを担当しながら複数のパラレルワールドを構成する「パラレル式」、そして「分割式」の大クラスタをさらに複数用意してパラレルワールドを構成する「ハイブリッド式」の3点が紹介された。いずれの方式にも長所、短所があり、ゲーム開発者はそれらの特徴を把握した上で適切な並列処理の方式を選びとるわけだが、いずれにしても、次に触れるボトルネックを課題として視野に入れる必要がある。
・オンラインゲームが宿命的に避けられないボトルネック。その解決策とは 中嶋氏によれば、オンラインゲームにおけるボトルネックは、3つに分けられるという。ひとつは「排他のボトルネック」。複数のゲームワールド全体で共有される有限のゲーム資源があるとき、その供給量が適切に処理されるためにはクラスタを超えてデータ管理をおこなうサーバが必要になる。この手のサーバに頻繁なアクセスが発生するようになると、ここではクラスタ化が不可能なためボトルネックが発生、これ以上プレーヤーを増やせないという限界点が見えてくる。これを避けるためにはゲーム企画者と技術者による設計の段階で、通信のパフォーマンスから逆算して無理のないデザインをおこなうことが大切だとした。 また、MMORPGをプレイするプレーヤーにとって、自分のプレイしているキャラクターの情報が常にサーバーに保存されているというのは当たり前の話だが、ここにもボトルネックが潜んでいる。中嶋氏は「永続化のボトルネック」と名づけているが、つまるところデータベース処理の限界に関する話題だ。同じインターネット上のアプリケーションである掲示板等は「書き込み1に対して読み込みが100くらいのバランス」だが、オンラインゲームでは「キャラクターのステータスやアイテムなど変化するたびにものすごい勢いで書き込む」ので、ボトルネックになってしまう。特にMMORPG系のオンラインゲームではデータベース内のゲーム情報に対する依存度が極めて大きいので、頻繁な入出力がゲーム全体のパフォーマンス低下の原因につながるのだ。中嶋氏は、これに対してはゲームサーバーとデータベースサーバーの中間にデータキャッシュの構造を取り入れることが解決法のひとつとなると解説。具体的な方法としては、キャッシュ処理をAPIの形で実装することや、あるいは中間に置いたキャッシュサーバーにやらせる方法が想像される。 もう一点のボトルネックは、有限のネットワークを利用する以上避けては通れない「サーバー帯域のボトルネック」。商用サーバーに適した高品位な回線はコストが極めて高く、ゲームのランニングコストに直結するため、運営する企業にとっては死活問題だ。このため多くのオンラインゲーム開発者が、使用帯域を絞りに絞る工夫を重ねてきた経緯は当然のこととして、筆者の観測では、このためにオンラインゲームのゲームデザインが著しく制限されてきた面も大きいと考えている。中嶋氏はここで、「ゲーム内容によっては、サーバー側でゲームルールに対する厳しいレフェリングをしなくてもよいのではないか」という最近のゲームデザイン事情の見解を交えながら「光回線の普及などでエンドユーザーの回線が高速したこともふくめて、用途によってはP2Pによる解決が現実味を帯びてきた」と、P2Pネットワークをゲームに応用していく自信をのぞかせた。 今回のセミナーでは、初回ということもあり全体的な概念の紹介、基本的な用語の定義などで終わり、最後に提示された「3つのボトルネック」を解消する具体的内容などについては、次回開催のセミナーにて紹介していくという形をとった。次回は今秋ごろに予定しているとのことなので、オンラインゲーム開発に興味をもったゲーム開発者や企画者の方はためしに参加を検討してみるとよいだろう。 講義の最後に次回の内容への希望などアンケートがとられたが、筆者としては大規模オンラインゲームだけでなく、2~32人程度のリアルタイム性の高いオンラインゲームにおける各種機能の実装テクニックや、マルチプレイマッチングロビーの設計などについても扱ってほしいなと思った次第だ。特にFPS作品などフレーム単位の厳密性が求められるゲームについて、ラグの問題をどう解決していくか、中嶋氏の手法に興味がある。
■ そして「ワールドシンセサイザー」はどうなっているのか? その構想の一端を紹介 ミドルウェア事業を本筋としているコミュニティエンジンだけに、今回より始まった一連のオンラインゲーム開発セミナーは同社の事業戦略に沿った位置づけにあることも確かだ。特に今回の中嶋氏が講義で述べた「オンラインゲーム開発者は将来のWeb開発者になる」という将来像、そして「サーバー帯域のボトルネック」の解決手段としての可能性を示唆したP2Pネットワーク方式の適用、これらは同社のミドルウェア事業展開に大きく関係しているようだ。 本稿の冒頭でコミュニティエンジンの展開するサービス「gumonji」にてP2Pネットワーク方式への転換が行われた事実を紹介したが、その「gumonji」は実のところ同社の基礎的な技術開発も兼ねたプロジェクトだ。同製品はP2P化によるサービス品質の低下に対策するため(ゲーム内の不正行為、下品情報の発生への対策)、WebベースのSNSサービスを融合させるという方針を採っており、セッション中に述べられた「ゲームとWebの境界があいまいになっている」との論に一致している。 今回のセミナー参加者に配布されたパンフレットでもミドルウェア事業にてゲーム用途のHTTPd機能やP2P技術をカバーしようとする同社の方針が明確にされており、UDPプロトコルへの対応や、現在開発中の製品として「P2Pメッシュネットワークミドルウェア VCE-Mesh」などの紹介がなされていた。その中でも筆者が強く興味を惹かれたのが、「World Synthesizer MMO edition」と号する新しいミドルウェアだ。 コミュニティエンジンのP2Pへの流れ、そして今回正式発表された「World Synthesizer MMO edition」は、中嶋氏が提唱した「ワールドシンセサイザー構想」に関係があるのか、セッション終了後、本人に直撃してみた。根本にある考えとしては、同ミドルウェアはまさに「ワールドシンセサイザー構想」の実現に向けた一歩であるとのことだ。「最初はゲームのフレームワークとして、ゲーム業界で実際に使えるものを作りましょうと。あの構想を全部やろうと思ったら5年とか10年とかかかってしまうので(笑)。東京ゲームショウでデモをやりますので、よければ是非見に来てください」とのことだ。 「World Synthesizer MMO edition」は、2008年のリリースを目標にしているということで、具体的な実装についてはまだほとんど情報が公開されていない。このため詳しいところは不明だが、ざっくりとしたモジュール構成としては、基本的な通信ライブラリである「VCE」、その上に搭載されるP2Pソリューション「VCE-Mesh」ときて、アプリケーションレイヤーとして搭載されるのが「World Synthesizer MMO edition」となる。全体としては物理エンジンなども含まれる統合的なアプリケーションフレームワークの様相を呈するようだ。構成部品はデベロッパーが取捨選択して組み込むことが可能とされており、対応予定プラットフォームについてはWindows PCを皮切りにLinux、Solarisといったサーバー向けに加え、プレイステーション 3、Xbox 360、Wii、ニンテンドーDSなども視野に入れているということだ。 配布された資料は販促パンフレットであることもあり玉虫色の表現が目立ったが、コミュニティエンジンがこれらの活動を通じて今後どういったネットワークゲーム開発を実現しようとしているのか、その実際のところを見極めるべく、今後も同社の動きを追跡していきたいと考える次第だ。 Copyright(C) 2000-2007 Community Engine Inc. All rights reserved.
□コミュニティエンジンのホームページ (2007年7月6日) [Reported by 佐藤“KAF”耕司]
また、弊誌に掲載された写真、文章の転載、使用に関しましては一切お断わりいたします ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp Copyright (c) 2007 Impress Watch Corporation, an Impress Group company. All rights reserved. |
|