【Watch記事検索】
最新ニュース
【11月30日】
【11月29日】
【11月28日】
【11月27日】
【11月26日】

Game Developers Conference 2008現地レポート

「Mercenaries 2」はFPSのマルチプレイに革命を起こす!
大規模物理ワールドをオンライン化する決定的な試みが明かされる

最新タイトル「Mercenaries 2」への関心を反映して、会場には多くの人々が訪れていた
2月18~22日 開催(現地時間)

会場:サンフランシスコ Moscone Convention Center

 「Mercenaries 2: World In Frames」は、プレイステーション 3、Xbox 360、およびWindows PC向けにマルチプラットフォームで開発されている最新FPSタイトルだ。

 同作は南米ベネズエラを舞台にしており、都市やジャングルを広大なオープンフィールドとして詳細に再現。膨大なオブジェクトが物理処理されており、目につくものを何でも破壊できるという、次世代ゲームと呼ぶにふさわしいスペックを持っている。2007年のE3以降、たくさんの映像が公開されているので、迫力あるゲームシーンをご覧になった読者の方も多いことだろう。

 技術セッション「Mercenaries 2: Networked Physics In a Large Streaming World」では、同作の特徴である物理処理されたゲーム世界を、マルチプレイに適用するネットワークコード技術が公開された。次世代的なゲームには次世代的なネットワークコードが必要だとする、開発元Pandemic StudioのGlen Fielder氏の試みをご紹介しよう。


■ この10年、ネットコードは本質的な進化を免れてきた。「Mercenaries 2」に見る、ゲームプレイを次世代に引き上げるための試み

Glen Fielder氏は、ゲームのネットワークは10年前からほとんど進歩しておらず、次世代のゲームプレイのために決定的な進歩が必要だと主張する
 FPSゲームのネットワーク化というのは、古くは「DOOM」から試みられ、「Half-Life」で一定の完成をみた技術ジャンルだ。しかし、それ以降は大幅な発展がなされておらず、現在の最新タイトルも、基本となるゲームのネットワークコード(ネットコード)は10年前とほとんど同じ水準のものがつかわれているのが現実だ。グラフィックスは次世代になっても、ネットコードは次世代になりきれていなかったのである。

 それには理由がある。ネットコードというものが、決定的にエンドユーザーの回線速度を前提とする技術であると同時にゲームプレイのインフラとして機能するため、グラフィックスのようにスケーラブルな設計がほぼ不可能だからだ。回線の速さによってゲーム内容が大幅に変わるシステムで、まともな対戦は不可能である。

 ネットワークインフラについてみてみると、日本では今でこそブロードバンドが一般的となったが、欧米、特にヨーロッパではアナログモデムを使う層も根強くのこり、それがマスをターゲットとするゲームの最低動作保証基準を構成してきた。ゆえに、ネットコードは10年程前に技術的完成を見ると、それ以降はドラスティックに進化する余地がなかったわけである。

 この傾向は現在でも続いている。たとえば最新のFPSタイトルである「Team Fortress 2」は、ゲームプレイにおいては10年前の「Quake」時代から本質的な部分で変わっておらず、ネットワークコードの要求もそれに準じている。新世代のグラフィックスで話題になった「CRYSIS」では、シングルプレイゲームでは物理オブジェクトがふんだんに登場するものの、マルチプレイで物理処理されるのは操縦可能な車両程度に制限されている。シングルとマルチでまるで違うゲームになっている理由はそこにある。

会場内で上映された「Mercenaries 2」のプレイ画面。建物が次々に破壊され、物理パーツが大量に散乱していた
 ネットワークコードはゲームプレイのいわば基礎的なインフラであり、その出来、不出来が、ゲーム体験へ計り知れない影響力を持っている。マルチプレイのゲームプレイを真の次世代水準に引き上げるためには、ブロードバンドを前提とした次世代のネットワークコードデザインが必要となるわけだ。時代的に見て、現在はちょうどその過渡期にある。

 つまり、Xbox 360やPlayStation 3といったマス向けのゲームプラットフォームがDSL以上のブロードバンド環境を前提とするようになったおかげで、マス向けゲームのネットワークコードデザインにパラダイムシフトの契機が訪れているわけだ。

「Mercenaries 2」の基本スペック。8x8kmのフィールドに物理オブジェクトが敷き詰められている上、2人でのネットワーク協力プレイが可能
 講演者のGlen Fielder氏によれば、そういった次世代のネットワークコードを制作する試みが「Mercenaries 2」のマルチプレイ機能で行なわれているという。そこでまず、Fielder氏は同作の持つ基本的なスペックについて解説した。

 ポイントとなるのは、このゲームが8x8kmという広大なゲームフィールドを持ち、その中にギッシリと敷き詰められたゲームオブジェクトがHavok物理エンジンで処理され、「すべてのオブジェクトが破壊可能」になっているという、いわば「物理アイランド」であることだ。

 さらに、「Mercenaries 2」では、シングルプレイキャンペーンのゲーム中いつでも2人のプレーヤーがネットワークを介して協力プレイを行なうことが可能であるとされた。実はこれは大変なことだ。このゲームの楽しさは物理アイランドという環境に依拠しているため、マルチプレイにおいても物理システムを生かす必要があるが、これを完全に達成したゲームはまだない。

 というのも、物理処理の豊富なゲームではマルチプレイの実現が困難で、シングルプレイの内容とまるで異なることが通例であるし、ましてこのゲームでは途中参加も可能なのである。つまり「Mercenaries 2」は、FPSとして決定的な物理処理のオンライン化を試みているのだ。

「Mercenaries 2」の世界ではあらゆるものが破壊可能だという。木々は燃え、なぎ倒され、ビルは粉々になり、市街地は激戦の跡に廃墟となる。これをネットワークでプレイできるようにするのは、かなり難しそうだ



■ 「動的な世界」をストリーミングする、次世代ゲームのためのネットコード設計

「静的な世界」VS「動的な世界」。ネットワーキングにおいては単に物量的な問題ではなく、本質的に異なるテクニックが必要だという
 Fielder氏によれば、「Mercenaries 2」におけるネットワーキングの難しさは、まさに「動的な世界」にある。プレーヤーや弾といったわずかなゲームトークンの情報を同期すればよかった従来のゲームに比べ、「動的な世界」では物理処理された膨大なオブジェクトがプレーヤーとインタラクションし、それがゲームプレイを構成するため、ネットワークラグを感じさせないための動き予測のアルゴリズムが「複雑すぎて使えない」のだという。

従来の「静的な世界」ゲームにおけるネットコードは、本質的には「Quake」時代の技術である
 クライアント側で行なう動き予測は、快適なゲームプレイを実現するために必須とされてきた技術だ。従来のゲームでは、現時点までのプレーヤーの入力を蓄積しておき、サーバーとの通信ラグを見掛け上打ち消すために使っていた。つまり、毎フレームの表示準備段階で、「サーバーで処理され確定したフレームの状態から、クライアント上の現在のフレームまでのユーザー入力を使って、クライアント上の現時点のキャラクタ状態を導き出す」という方法である。

 このやりかたは予測というより実質的には先行表示といえるが、「静的な世界」に属するゲームは、これによってクイックな操作性を実現していたわけだ。サーバー上のイベントでキャラクタの位置に変化が生じたなどの場合(爆風で吹き飛ばされたなど)は、誤差が生じた地点に戻ってから再度このプロセスをやりなおす。クライアントが扱う対象が自分自身のキャラクタのみであるゆえに、低い計算コストで実現可能だ。Fielder氏はこのやりかたを「Rewind and replay」と表現していた。

「静的な世界」におけるネットコードの基本コンセプトを示すスライド。基本的には完全なクライアント/サーバーモデルで、クライアント側の入力を使って、クライアント上のキャラクタを先行表示するというやりかたでラグを隠蔽していた


「動的な世界」におけるネットワーキングのコンセプト。「所有権」の概念が特徴的だ
 しかし、莫大な数のオブジェクトがプレーヤーとインタラクトする物理アイランドでは、処理すべき対象があまりにも多くなるため、計算量の問題からこの方法が現実的でなくなる。したがって、「Mercenaries 2」では、予測アルゴリズムを根本的に変更したのだという。

 その骨子は、「プレーヤーとインタラクトしている物理オブジェクトを、そのクライアントが所有し、処理する」というものだ。プレーヤーがゲーム世界内のオブジェクトに触れたり、撃ったりして、物理オブジェクトが反応すると、そのオブジェクトは即座にサーバーの管理からクライアントの管理に移行する。そのオブジェクトが物理処理で動いている間、クライアントが物理計算を担当し、その結果導き出された状態をサーバーに送信して同期をおこなう。

 物理処理される多数のオブジェクトにこれを行なうため、当然のことパケットサイズ、通信量は激増する。特に従来のゲームは、クライアントからサーバーへの通信は入力されたコマンドが中心であってごく小さいものだったので、上り帯域への影響は甚大である。それゆえにこの手法はDSL世代の帯域が前提となる技術であるわけだ。

デモンストレーションでは立方体を使って所有権の移動の概念を紹介した
 Fielder氏はこのアルゴリズムの有効性を証明するため、動画を使ってデモンストレーションを行なった。この動画では、空間内にたくさんの立方体が配置されており、白、赤、青に色分けされている。赤と青の立方体は二人のプレーヤーを模しており、これを操作することで物理現象を引き起こすというものだ。Mitchell氏が赤い立方体を操作し、周りの立方体にぶつけてみると、作用をうけた白い立方体が赤く変色し、所有権が赤プレーヤーに移譲されたことを示した。そのオブジェクトが動き終えて停止状態で安定すると元の白色に戻り、サーバーの管轄に戻ったことがわかる。

 所有権の移譲は、次のような法則で駆動するようだ。まず、最初の所有者はサーバーである。サーバーは、白いオブジェクトと青いオブジェクトを赤にすることができる。つまり、サーバーは所有権を一元的に決める権力をもっている。クライアントのほうは、白いオブジェクトのみ自分の所有にする決定権を持っている。オブジェクトは運動を停止すると白色に、つまりサーバーの所有に戻る。プレーヤー自身は常に該当クライアントの所有である。

実装にあたって、フレーム時間の単位を固定するという英断を下している
 上記アルゴリズムの実装にあたっては、物理処理を安定させることが最優先事項となるようだ。それにあたってFielder氏は第一のポイントとして「フレーム間の差分時間を固定した」と述べた。つまり、1フレームの処理に10ミリ秒かけようが、30ミリ秒かけようが、内部的には16ミリ秒刻みで各フレームを進めていくということだ。これにより、互いに処理能力やタイミングが異なるサーバーと各クライアントで、時間差分のゆらぎに由来する物理処理計算結果の誤差が最小限に抑えられ、現象の結果の同期が確実になる。

 もうひとつのポイントは、各オブジェクトの物理的状態を「きつくスナップ」したという点だ。どういうことかというと、物理オブジェクトの位置や角度に、いわばペイントソフトのグリッドスナップ機能のような概念を導入して、地面に落ちたコインが完全に停止するまで細かく微動するような状況を排除した。これにより物理オブジェクトが停止状態に安定しやすくなり、通信量が減る。画面上で動きが滑らかに見えるのは、動きのスムージングをしているからにすぎない。つまり見た目上の位置・角度と実際のそれは僅かにズレていることになるが、ゲームプレイ上への影響は軽微なようである。

所有権が移り変わる様子。赤い箱(赤プレーヤー)が白い箱(サーバー所有)にぶつかると、それによって運動をはじめた箱が赤プレーヤーの所有になる。運動が終わり停止状態で安定すると、ふたたび白くなり、サーバーの所有にもどる



■ 物理アイランド的、広大な世界をストリーミングするための工夫

巨大な空間を扱うゲームだけに、ゲームデータをストリーミング的に扱う技術が前提となる。それはネットコードにも応用される
 既に紹介したように、「Mercenaries 2」は8x8kmという広大なゲームフィールドを持っている。このようなゲームでは、いちどに処理するオブジェクト量を最小化するため、処理範囲を面積的な意味で限定する仕組みが必要とされる。プレーヤーの近くにあるオブジェクトは精密に、遠くにあるオブジェクトは大雑把に、という状況を作り出すための技術である。

 こういった仕組みは通常、グラフィックス上の要求によって実装されるが、「Mercenaries 2」ではネットコードにも大いに活用され、通信や物理処理が必要なオブジェクトをスコープすることで効率化に貢献しているそうだ。

 しかし、「それだけやってもまだ通信パケットに収まらない」とFielder氏はいう。「Mercenaries 2」ほどにオブジェクトの量が多いと、プレーヤーが一度にインタラクトする量もかなりの数に上るためだ。物理オブジェクトの状態を表す変数を最小限の解像度にし、限界まで詰め込んでも、まだ間に合わないらしい。

データ送信の優先順位は所有権に基づいて決める。これはゲームプレイを優先する結果だ
 そこで、「送りきれないデータは、送らない」というのが最終手段となる。Fielder氏は、一部のデータを送らないことによる悪影響を最低限に抑えるために、各物理オブジェクトに通信優先度を設定したという。その基準はゲームプレイの要求に最大限沿ったもので、基本は「プレーヤーにとって重要なものを優先する」という考え方だ。

 まずはオブジェクトの所有権に基づいて優先度を決める。サーバーから青クライアントに送るときは、赤オブジェクトを優先する。また、青クライアントからサーバーに送るときは青オブジェクトを優先する。その前提に基づいて、距離や大きさといった基準で細かな順位をつけ、優先順位の高いものは確実に頻繁に送信し、逆に優先順位が低いものは送信頻度を下げるなどしておおざっぱに同期するということらしい。

 このあたりのパケット圧縮に関する工夫は、コンセプトレベルでは従来のネットワークゲームでも試みられてきた手法だ。しかし、その前提となる条件が、オブジェクトの所有権制御という、ゲームプレイ上の地平線を広げるために思い切って導入した技術に基づいている点が新しい。

 Fielder氏は最後に、動的な世界をネットワークするために大切なポイントとして「従来の動き予測の方法でなく、所有権の管理を使う」、「まずは処理対象を絞りこむ」、「そして所有権に基づいた優先順位をつける」とまとめてみせた。「Mercenaries 2」だけでなく、この考え方は他のゲームでも大いに役立つことだろう。


 セッション終了後の質問時間には、「青、赤の各プレーヤーが所有するオブジェクトが互いに衝突するケースではどうなるのか?」といった込み入った質問が多く出された。Fielder氏はそのひとつひとつに対して丁寧に答えていたが、この技法が厳密性において完全でないことも認めていた。この点については、「Quake」のような競技性の高いゲームへの応用に懸念が残る。

 青プレーヤーが所有するオブジェクトが赤プレーヤーに所有するオブジェクトに激しく衝突した場合、青プレーヤーと赤プレーヤー所有物の間にラグ由来の時間差があるため、所有権がサーバーに戻るまでの短い時間ながら、それぞれのプレーヤーはやや異なる現象を見ることになる。この問題は原理的に避けられないようだ。

 また、オブジェクトの処理をクライアントで行ない、それをサーバーにコミットするという手法につきものの、改造クライアントでチートされるのではないか、という質問も出た。これについてFielder氏は、「PCではPunkBuster、Xbox 360ではLIVEのセキュリティ機能など、別の方法で回避することができます」と、この点については現状得られるセキュリティインフラに信頼を置いていた。ゲームの規模が2人プレイということで、不正行為による影響が局所的で済むという面も前向きな材料だったとは思われる。

 「Mercenaries 2」は膨大な物理処理オブジェクトにあふれた世界でマルチプレイを楽しめる点で非常に新しいゲームだ。これはマルチプレイにおけるゲームプレイの革新とよべるものであり、グラフィックスが進化すること以上に重要な変化であるように思う。まずは「Mercenaries 2」の発売を楽しみに待ちたいところだ。

□Game Developers Conference(英語)のホームページ
http://www.gdconf.com/
□Game Developers Conference(日本語)のホームページ
http://japan.gdconf.com/
□関連情報
【2008年】Game Developers Conference 2008 記事リンク集
http://game.watch.impress.co.jp/docs/20080221/gdclink.htm

(2008年2月24日)

[Reported by 佐藤“KAF”耕司]



Q&A、ゲームの攻略などに関する質問はお受けしておりません
また、弊誌に掲載された写真、文章の転載、使用に関しましては一切お断わりいたします

ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp

Copyright (c)2008 Impress Watch Corporation, an Impress Group company. All rights reserved.