Unity を検索

Multiplay はどのようにゲームサーバーをスケールさせているのか

2021年10月14日 カテゴリ: ゲーム | 9 分 で読めます
screenshot of the product
screenshot of the product

皆さんのマルチプレイヤータイトルがどのくらいのプレイヤーを集めるのかを知るにはどうすればいいのでしょうか。この数字を正確に予測できれば顧客を満足させ、ゲームに接続できる状態を維持するために必要なサーバーの容量を知ることができるため、そのような予測ができる方法があれば非常に魅力的です。しかしそうした予測法は、当てにならないだけならましなほうで、最悪の場合は皆さんの最も重要なリソースである時間を浪費するだけの代物ということすらあります。 

Multiplay は、Unity Multiplayer Services の一部であり、そのチームはゲームサーバーホスティングの第一人者として、全世界で最も人気のある最高のマルチプレイヤータイトルに、プレイヤーが接続し続けられるようにする支援を行っています。このサービスは RespawnMediatonicHi-RezTeam17 など多数の企業が導入しており、『Apex Legends』、『Rogue Company』、『Fall Guys』、『Overcooked!』などのゲームで使われています。『Overcooked! All You Can Eat』では、コストを抑えつつプレイヤーに最高の体験を提供するために、Unity の技術が利用されています。

顧客に決定的なアドバンテージを与えるスケーリング技術の仕組みをご紹介します。

サーバーの課題

ゲームがサーバーの容量の限界を超えてしまうと、顧客がどれだけ増えるのか予測がつかなくなることがあります。人気ストリーマーがプレイし始めたり、新しいシーズンが始まったことで関心を持つ人が新たに増えたりと、ゲームが発見される瞬間が訪れると、新しいプレイヤーの口コミによって飛躍的に成長する可能性が出てきます。 

ユーザーは、ゲームにログインできないとなるとすぐに離脱してしまいます。そして、新しく見つけた素晴らしいゲームとして皆さんのゲームを友人に紹介するのではなく、悪い経験をシェアして、仲間に近づかないようアドバイスすることになります。 

逆に、過剰な準備をして大量のサーバーを用意しようとすると、予算に穴を空けることになり、しかもそうして用意したサーバーが結局必要なくなるかもしれません。あるいは、それでもゲームの大流行に伴う予想外のプレイヤー数の急増をカバーするにはまだ足りないかもしれません。 

ゲームのホスティングを推測で行うのではなく、容量について考える時間を大幅に減らし、コストを削減するサーバー負荷の処理方法があります。オートスケーリング技術を使えば、必要なときに必要なだけサーバーを使用し、必要でないときには割り当てを解除することができます。

オートスケーリングを考える上で重要な点は、以下の通りです。

  • スケールアップ、スケールダウンを行うべきタイミングを知る
  • ゲームサーバーの設置場所を把握する
  • コストとパフォーマンスを両立させる

技術 + 専門知識 = Multiplay のスケーリング

皆さんのゲームが強固で安定した顧客基盤を獲得したとしても、プレイヤー数の推移が一定または直線的なトレンドに乗ることはないでしょう。1 日、1 週間、1 か月といったスパンで変動があります。Multiplay を使えば、データを解析して容量の追加が必要な時期を手作業で把握する必要はありません。Unity のシステムはゲームのために作られており、また Unity のチームはあるタイトルにいかなる時も十分な数のサーバーが割り当てられることを保証する方法を理解しています。

まず、Multiplay のクラウドの仕組みを、システムがどんなマシンを使っているのかという観点から説明します。割り当ては常に起動可能な状態にあるマシンに優先的に行われるため、待ち時間が非常に少なくなります。 

予定していた容量を超えた場合は、クラウドを利用して可用性を高め、アクティブユーザー数が平均を大きく上回っていても、ゲームへの参加を拒否されたり、長い待ち時間が発生したりしないようにしています。クラウドマシンはオンデマンドで作成・破棄できるため、クラウド上で行われているゲームセッションが終了すると、システムは速やかにマシンをシャットダウンし、コストを抑えることができます。プレイヤーの体験を最適化するために、適切な場所に十分なリソースがあるかどうかを確認します。

これにより、必要のない容量に対してコストを支払うことなく、ゲームで最適なパフォーマンスを提供することができます。

バッファサイズを小さくして、超えたらどうなるかを気にする必要がないという点によって、Multiplay は世界最高のマルチプレイヤーゲームを作るスタジオで採用される、強力なツールとなっています。 

では、どのようにしてシステムが、クラウド利用の要否や、クラウドを利用するタイミングを確定するのでしょうか。

バッファアップ

まず最初に、ゲームで常に利用する最小限のサーバー数を選択します。オンラインにいるプレイヤーの大きさをこれ以下にはしたくないというレベルはどこでしょうか。この数字はいつでも調整でき、一度決めたら石のように動かせないというわけではないのでご安心ください。

このブログで書いていることは、スケールアップやスケールダウンが必要になったときのことです。つまり、プレイヤーの数が最小値を超えた時にもゲームが対応できることをどのように保証するのでしょうか。

もう 1 つの数値で、ゲームの可用性バッファを形成するサーバーの数を指定します。これにより、プレイヤーを受け入れるだけの余裕を設けることができます。このバッファは減った数だけシステムが補充してくれるので、常に稼働率が下がらないようにするための閾値を把握することができます。 

また、スケーリング技術は、容量が使われていない部分を自動的に検出し、最小値の設定値とバッファ数の設定値を足し合わせた最適な数値に調整することができます。支払いは使った分に対してだけなので、無駄なコストを抑えつつ、プレイヤーやゲームの勢いを失うリスクを回避できます。

red and green boxes to illustrate buffering in this context

こうしたオプションがあり、バッファの数値を自分で設定できるので、皆さん自身が適切なレベルの備えだと考えるポイントを皆さん自身が決められる柔軟性が得られます。

新しいコンテンツ投下のご予定がありますか?ご連絡いただければ、サーバーに余裕を持たせることができます。季節的なものでそろそろプレイヤー数が減ってきたのでは?ご連絡いただければ、バッファの数を減らすことができます ― こうしたご対応が可能です。

多くの大手企業が Multiplay を採用している理由は、プレイヤー数の見積もりを考えすぎることなく、本当に重要なことを考えるために頭を自由に使えることにあります。 

場所を考慮したサーバー運用

顧客にとって適切な場所にサーバーを設置することは、ゲームに高速で満足なパフォーマンスを持たせる上で非常に重要な要素です。Multiplay は、世界中の 200 以上のデータセンターからなるサーバーのグローバルネットワークを運営しており、皆さんのゲームがどこでプレイされても、プレイしている人たちが可能な限り快適に接続できるようにしています。Unity のシステムはゲームに特化した配慮がなされており、必要なセットアップを迅速かつ簡単に構築することができます。 

サーバーの配置をスケーリングに最適な形にするために、フリートリージョンを作成することができます。フリートリージョンは、一連のフリートがどこに拠点を置いているかを定義するもので、可用性のスケールアップとスケールダウンを迅速に行う必要があるすべてのサービスが、同じ場所にあるサーバー上で確実に実行されるようにします。これにより、新規プレイヤーがゲームに参加するために必要なすべてのシステム(音声通信、パーティー、ゲームサーバー)の可用性を同じ場所で確保することが容易になります。

Colored boxes illustrating the copy
Colored boxes illustrating the copy

Unity のマルチプレイヤーゲームサーバー技術がローンチの成功を支援したゲームに関する詳細をぜひご覧ください。 

マルチプレイヤーゲームを開発していて、クラス最高のオンラインプレイヤー体験を提供したいとお考えなら、ぜひご連絡ください。Multiplay の統合についての詳細をお知らせいたします。

2021年10月14日 カテゴリ: ゲーム | 9 分 で読めます