【ACADEMY】マルチプレイヤーゲームを成功させるための正しい準備手順

GameyeのCEOであるSebastiaan Heijne氏が,マルチプレイヤーサーバーについて議論する際によく聞かれる質問について解説する。

 Gameyeは,デベロッパが世界中でマルチプレイヤーセッションを運営し,スケールを拡大するための方法を提供している。理論的には簡単だが,実際には複雑だ。プレイヤーが一緒に試合に参加するたびに,そのゲームはどこかでホストされる必要があるのだ。

 私はCEOとして,デベロッパからよく同じような質問を受ける。サーバーは必要なのか? マルチプレイヤーはどのように機能するのか? 何を探せばいいのか? そこで今回は,ゲームの発売を計画し,重要な決断を下すために役立つ,実用的なアドバイスを紹介したいと思う。


私のゲームにサーバーは必要なのか?


 マルチプレイヤーゲームを開発する際には,ピアツーピアとクライアントサーバーの2つのアーキテクチャを選択できる。ピアツーピアとは,プレイヤーの1人をホストとして指定し,他のプレイヤーはそのマシンに接続する方法だ。クライアントサーバーは,プレイヤーがゲームを制御する外部のマシン(サーバー)に接続する場合だ。では,どのような場合にピアツーピアで,どのような場合にクライアントサーバーを使うべきなのだろうか。

●公平性が必要な場合はクライアントサーバーを使う
 ゲームプレイを別のマシンで制御している場合,チートやコードへの干渉が難しくなる。FPSを想像してほしい。もしそれがプレイヤーのマシンの1つでホストされていたら,そのプレイヤーは不当な優位性を得る(ラグがほとんどないため)。そして,それが自分のマシン上で実行されている場合,その人はそれをハッキングする方法を見つけるかもしれない。クライアントサーバーでは,それが難しくなる。

Gameye CEO Sebastiaan Heijne氏
【ACADEMY】マルチプレイヤーゲームを成功させるための正しい準備手順
 また,弾道などの難しい物理演算も重要だ。できるだけ公平で一貫性のあるものにしたいものだ。そのためには,クライアントサーバーでセッションを行うほうがはるかに簡単だ。

●信頼性が必要なときはクライアントサーバーを使う
 サーバーを自分で管理すれば,多くのプレイヤーが所有する格安のゲーム機よりもはるかに信頼性が高くなる。サーバーがどのようなハードウェアを搭載しているかが分かるので,より安定したゲームプレイが可能になる。そして,プレイヤーのマシンの電源が落ちることに対処する必要もない。

 多くの人は,ピアツーピアゲームでは,ホストが去った場合,他のプレイヤーの誰かにセッションを移行する必要があることを忘れている。それが常に可能とは限らないし,大きな遅延を引き起こすこともある。

 しかし,ゲームによってはこれで問題ない場合もある。ターン制ストラテジーを,現実の友人である4人のプレイヤーだけでプレイする場合,プレイヤーにホストさせるのはおそらく問題ないだろう。しかし,リアルタイムストラテジーで8人のランダムなプレイヤーでは? 信頼できるサーバーが必要だ。

●一度に多くのプレイヤーがいる場合は,クライアントサーバーを使用する
 プレイヤーが急増する理由はいくつかあると思う。たとえば,対戦型のゲームをやっている場合などだ。あるいは,無料プレイ(F2P)やplay-to-earn (P2E)のゲームを開発中かもしれない。このような種類のゲームでは,クライアントサーバーがより好ましいだろう。

 なぜなら,ピアツーピアのセッションで一緒にプレイできるのは,実際には4〜6人だからだ。それ以上になると,ラグが大きくなってしまうだろう。実際,最近一緒に仕事をしたChivalry 2では,一度に64人のプレイヤーがマッチングしていた。個人のブロードバンド接続では,これだけのデータ量に対応することはできない。

 ホスト役のプレイヤーが他のプレイヤーの近くにいるかどうかも考慮に入れていない。たとえ優れたインターネット接続環境を持っていたとしても,まったく別の国にいる可能性もあり,その場合はレイテンシに大きな影響が出る。

 しかし,2人だけでプレイしている場合はどうだろう? AからBへ行くのにはCを経由しないほうが速いかもしれない。

●これらのことがあまり重要でない場合は,P2Pを使用する
 ピアツーピアは,小規模で協力的なゲームに最適だ。友人4人でRPGをプレイする場合,1人のプレイヤーが有利でも,全員が多少ズルをしようが,あまり問題にはならないのではないだろうか。たとえゴッドモードを使おうが,誰も困らないだろう。

マルチプレイヤーモードの開発を始める前に,それらをどのようにホストするかを考えておく必要がある

 同様に,2人しか一緒にプレイしないのであれば,クライアントサーバーを経由して迂回するよりも,直接接続したほうが実は速いだろう。

●しかし,自分の限界を知ること
 クライアントサーバーは,複雑さを増す。もし,そのルートを選択した場合,2つの異なるコードベースを管理することになることを忘れないでほしい。ゲーム本体とマルチプレイヤーセッションだ。これらは非常に異なっている。そして,小規模なインディーズデベロッパにとって,その価値はないかもしれない。

 マルチプレイヤーモードの開発を始める前に,それらをどのようにホストするかについて考えておく必要がある。もしクライアントサーバーを使うリソースがないのであれば,ゲームに巨大な対戦要素を追加するのはやめてシンプルに,ピアツーピアで何ができるかを考えよう。とはいえ,今ではクライアントサーバーをセットアップするのは以前より簡単になっている。Photonのような会社を使えば,すぐに始めることができる。


クライアントサーバー方式を実際にテストするにはどうすればよいか?


 クライアントサーバーを使うことが決まったら,次に聞かれるのは,それがうまく機能していることをどうやって確認するかということだ。一般的には,ピアツーピアのシステムをテストするよりもずっと複雑だ。

●コミュニティから人を探す
 テストに参加してもらうためには,コミュニティが一番の情報源になる。

●クローズドグループを立ち上げる
 これは,Discord,フォーラム,またはあなたのサイトのプライベートセクションになるかもしれない。どのようにするにしても,コミュニティマネージャーを雇い,最新の情報を提供し,バグレポートを収集するようにしてほしい。

●少人数のグループを選ぶ
 あなたはグループを管理し,彼らが送るレポートについていけるようにしたいと思うだろう。そのため,テストチームとして使用する200人から500人程度の少人数のグループを選ぼう。

●世界中にいる人を選ぶ
 テスターを1か国から集めると,それだけで問題が発生することがある。公平なテストを行うには,ターゲットとする地域からさまざまな人を集める必要がある。

●スキルの公平なサンプルを得る
 これはより難しいことだが,重要であることに変わりはない。マッチメイキングのようなものをテストするとき,スキルの公正な代表を確保する必要がある。覚えておいてほしい。人々はベル曲線上にいる。多くの人は平均的で,極端な人はほとんどいない。分布はそれを反映する必要がある。

●NDAにサインしてもらう
 NDAとは,秘密保持契約のことだ。漏洩を防ぎたいのであれば,すべてのテスターに署名してもらうことが重要だ。

●インセンティブを与える
 必ずしも給与を支払う必要はない。しかし,プレイヤーに協力する理由を与えることは絶対に必要だ。アバターアイテムのスキン,最終的なゲームの無料コピー,あるいは彼らの名前を付けたキャラクターなど。これらはすべて,人々を参加させるための素晴らしい方法だ。

●不測の事態を考える
 α版(あるいはβ版:※一般テスターを使う場合はβ版と呼ぶのが適切)で何をテストするのか? サーバーに関しては,いくつか確認すべきことがある。

  • 1. コストのバランスはどうするか? プレイヤーが急増した場合,予算より多く支払わなければならない可能性が高い。価格と容量のバランスをどうとるか,考える必要がある。プロバイダーと率直に話し合い,価格について前もって合意しておくようにしよう。

  • 2. プレイヤーの急増に対応できるか? 逆に,サーバーは急な増設に対応できるだろうか? あなたのプロバイダーには,その数のプレイヤーを引き受けるだけのキャパシティがあるだろうか? ほとんどの場合,マッチメーカーやプレイヤーのログインがクラッシュするのは,1つのポイントに障害があることが原因だ。そのため,β版ではより多くのプレイヤーグループでセットアップをテストするようにし,ボットの使用も検討してほしい。

  • 3. 異なる場所からのプレイヤーに対応するにはどうしたらいいか? あなたのゲームはどこで人気が出るか分からない。もし,日本で突然流行りだしたらどうするのか? サーバーはそれに対応できるか? プレイヤーに良い体験を提供するのに十分な距離だろうか?

 これらすべてについて,プロバイダーと率直に話し合う必要がある。何が起こるかを尋ね,前もって決めておくことで,サプライズを回避できる。そして,成功だけでなく失敗も想定して計画を立てよう。

 我々は,テストというと,ゲームを壊そうとするものだと考えて,ゲームがうまくいった場合のことを考えるのを忘れてしまいがちだ。我々がChivalry 2を担当したとき,発売時には予想の2倍ものプレイヤーが集まった。このような状況にこそ,準備が必要なのだ。

 そして忘れてはならないのは,容量,ロケーション,レイテンシの問題だ。急増に対応できるか? 世界中からのプレイヤーに対応できるか? ラグについてはどうだろうか?

――――
Sebastiaan Heijne氏はGameye(参考URL)のCEOだ。彼は,子供の頃,雑誌からSpectrumのコードをコピーすることから始めて,最初のベンチャー企業を立ち上げ,3万人のプレイヤーのコミュニティのためにCounter-Strikeのサーバーをセットアップしたのだそうだ。現在では,自宅のラボにあるWorld of Warcraftのブレードサーバー一式が自慢のコレクションとなっている。

GamesIndustry.biz ACADEMY関連翻訳記事一覧

※本記事はGamesIndustry.bizとのライセンス契約のもとで翻訳されています(元記事はこちら