BLOG.NOIRE

THINK ABOUT SOMETHING.

オープンワールドのジレンマ

ゲーム制作の知識は全くないし、誤解だらけかもしれないけど、ドラゴンズドグマのようなオープンワールドでマルチプレイが中々実装されないのは、そもそも論的な問題があるような気はする。


それ以前にコンセプトの問題なのかもしれないけど、例えばドラゴンズドグマでマルチプレイを実装した場合、一人が東、一人が西、一人が南、一人が北と膨大なマップを別行動できる訳だけど、これは現状は別としてオープンワールドの究極である、全行動が全範囲に干渉する構造に対応し切れない筈。


例えが大袈裟だけど、僕が部屋で溜め息をすることと、競馬でどの馬が勝つかということについて、因果関係がないと考えるのは軽率だ。溜め息をするだけでも歯車的に世界の全ての要素は連動する、つまり変動するし、そこから外れた無干渉の領域なんて一切なく、それは自分の部屋でも同じこと。


まあゲームの場合処理的な問題で干渉の境界を敢えて設けちゃうんだろうけど(例えば数百メートル以上離れたデータは一切ロードされないなど)、その干渉の境界もプレイヤーが移動する以上流動的になるし、プレイヤーの数だけ干渉エリアは拡散される訳だ。言わば「歩く干渉エリア」だ。


例えばシングルプレイでプレイヤーが最北端に居る時、最南端のデータは一切ロードされないだろうけど、マルチプレイの場合プレイヤーの数だけ干渉エリアがある=基準プレイヤーが居ない訳だから、それが事実上できなくなるのだと思う。


これは外れてる気がするが、例えば干渉エリア(データの稼働半径)が半径1kmだとしよう。そして800mぐらいまで近付くと薄らとモンスターのグラフィックがロードされるとして、この200mの差分というのはデータの誤魔化しに使われる領域じゃないかと思う。


例えばドラゴンの縄張りから1km離れた所に居たとする。その内側に入った時点で暗黙的にドラゴンのデータはロードされ、800mまで近付いた時点でドラゴンのグラフィックが遠目に可視化される。その瞬間ドラゴンが火を噴く動作を見せたので、プレイヤーは元の1km地点まで逃げたとする。


するとドラゴンは稼働停止し、便宜的にゲーム上に存在しなくなる。でももしグラフィックの可視化距離と、データの稼働半径が同じ800mである場合、801mまで逃げて(稼働オフ)再び800m圏内に入ると(稼働オン)、ついさっきこちらに火を噴いていたドラゴンが後ろを向いてる可能性もある。


だから200mぐらいは最低でも誤魔化しエリアを設けなきゃならない。要するに200m逃げて200m戻った場合はドラゴンが後ろを向いていても矛盾ではないという訳だ。従って半径1kmのデータキャッシュがプレイヤーの数だけ必要になり、最大で直径4km分の生態系を常時読み込む必要がある。


これがどれぐらいのデータ量になるのかは分からないし、シングルプレイの負荷が純粋に四倍になるということでもないだろうけど、FPSやTPSと違って最適化や誤魔化しの技術もまだ確立されてないだろうし、曖昧ながら「難しいんだろうな」という気はする。


あるいはドラゴンと雑魚にそれぞれダメージを与えて一度戦線離脱し、復帰した時に全員全快してるとか、死んだ雑魚が生き返ってるとかいうのもおかしな話だ。それらの整合性を広大なマップ全体で取らないといけない訳だから、都合のいいデータ処理は中々できないのかもしれない。


そうやって四人全員があちこちで戦闘データを残して移動し、あちこちでデータキャッシュされるともう「超リッチなMMO」でしかなくなる。少人数限定のね。MMOのサーバーが数千数万なんか聞いたことがないし、数万は大袈裟でも数千組のマルチプレイ需要はあるだろうから、膨大なデータ量になる筈。


でもRDRにはマルチプレイがあったみたいなんだよな。あれはマップに対するイベント量がスッカスカ(知らんけど)だから成立したのかな、と思うけど、ドラゴンズドグマの場合「生態系」だから難しいのかもしれない。でもいつかはオープンフィールドでマルチプレイの狩り、やりたいね〜。