ゲームサーバー
(Game server から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/22 00:41 UTC 版)
ナビゲーションに移動 検索に移動ゲームサーバー(英語: Game server、別名: ホスト)は、マルチプレイヤービデオゲームにおいて、権威のあるイベントの出どころとなるサーバーのことである。サーバーは、接続されたクライアントに対して、プレイヤーに表示されるゲーム世界の正確なヴァージョンを維持できるように、内部状態に関しての十分なデータを送信している。また、各プレイヤーからの入力を受信し、処理している。
種類
専用サーバー
専用サーバーは、管理に必要なものを除いては直接的なインプットやアウトプットを支持せずにゲーム世界をシミュレートするものである。プレイヤーは、ゲームを見たり参加したりするために別のクライアント・プログラムでサーバーに接続しなければならない[1][2]。
専用サーバーの最大の利点は、専門的なデータセンターでのホストに適しているため、それに伴って信頼性とパフォーマンスによる利点を全て得ることができるところにある。また、リモートでホストをすることは同じ機械やローカルネットワークからサーバーに接続するプレイヤーに生じる可能性があるラグを排除することができる利点がある[1]。
しかし、ゲームの専用サーバーの運営には費用がかかる。その費用は、時としてゲーム開発者(又はゲーム機)などが負担することがあれば、クランのグループが負担することがあるが、いずれの場合も一般の利用者は接続するためのサーバーをサードパーティーに依存することとなる。そのため、専用サーバーを使用しているゲームの多くはListenサーバーのサポートも行っている[1]。これらのゲームのプレイヤーはしばしば、一般ユーザーやクランのために、自分のハードウェアでサーバーインスタンスをホストするか、ゲームサーバーをホストするプロバイダーからサーバーを借りてサーバーをホストすることがある。
Listenサーバー
Listenサーバーは、ゲームクライアントと同じプロセスで運営されている。それ以外は専用サーバーと同じように機能するが、通常はホストしているプレイヤーの家庭用インターネット接続を介して、離れたところにいるプレイヤーと通信しなければならないという欠点がある。パフォーマンスは、サーバーを運営している機械が画像出力も行なっているという単純な事実によって低下する。Listenサーバーは、そのサーバーでのプレイヤーに、他のプレイヤーに対して反応時間において大きなアドバンテージを与え、そのプレイヤーがゲームから離脱するとこれは存在しなくなる[1][3]。
Listenサーバーは、しかしながら、基本的に無料で、かつ、特殊なインフラストラクチャーや事前の計画などを必要としないため、ラグなどの問題を気にしないLANパーティーでしばしば利用されるという利点がある。
Peer to Peer
このページで紹介しているクライアントとサーバーのモデルでは、クライアントはサーバーから加工済みのデータを受け取って、表示している。それに対して、「Peer to Peer」モデルでは、サーバーは存在しない代わりに、それぞれの「Peer」は、他のプレイヤーからの入力ストリームを受け取ってから自ら結果を決定する[4]。
Peer to Peerは、一般にアクションゲームにおいては時代遅れと考えられているが、リアルタイムストラテジーでは少人数制のプレイヤーと大量のトークンを使用するため、現在でもしばしば使用されている。1000もの部隊の位置を常に送信するのではなくて、「1000の部隊を選択して、その部隊を指揮するプレイヤーが移動命令を出したところ」という情報をゲーム側が一度だけ送信することで事足りるのだ[4]。
しかし、Peer to Peerは以下のデメリットがある[4]:
- 全てのPeerを同期させることは困難で、Peer同士の間で生じるわずかな時間の差異が時間と共に進行し、ゲームがクラッシュするようなパラドックスに陥る可能性が存在する。
- ゲームの途中で新規のPeerが参加することを支援することは非常に困難である。
- それぞれのPeerは、他の全てのPeerと通信する必要性が生じ、接続できるプレイヤーの数が制限される。
- それぞれのPeerは、次の「ネットワークフレーム」をシミュレートする前に、全ての他のPeerに対してのメッセージを待たなければならず、その結果、全てのプレイヤーはプレイヤー内で最も接続環境の悪いプレイヤーと同じだけの遅延を経験することとなる。
チックレート
ゲームサーバーがシミュレーションを実行する速度は、一般的に「チックレート」と呼ばれている。「Tick」は、それぞれのシミュレーションの手順に関連づけられた番号で、クライアントがサーバーと同期するために使用される[5]。
サーバーのシミュレーションの手順の頻度を予め定義されたチックレートに制限する理由としては3つあり、それは「サーバーとクライアントの帯域幅を節約すること」「サーバーのCPU時間を節約すること」「それぞれのTickの間での時間経過をクライアントが確認できるようにすること」の3つである。インターネットゲームでは、サーバーからのネットワーク更新が異なる時間、または誤った順番で行われることがあるため、最後の理由は特に重要である[5]。
カスタマイズ
サーバー(特にPCゲームのサーバー)は、一般的にそのままのクライアントで接続できるようにカスタマイズすることができる。これらのカスタマイズは、内蔵のゲーム設定を調整したり、クライアントのゲーム参加の時にダウンロードするコンテンツを調整したり[6]、サーバーの動作方法を変更する新しいコードを活用することでできる[7]。
サーバーのカスタマイズは、サーバー管理者とプレイヤーには好評ではあるが、開発者・他プレイヤーが意図した通りにゲームをプレイして欲しいという考えと相反するものとなる場合がある[8][9]。また、サーバーのカスタマイズは悪質な管理者が自身のサーバーが提供するサービスに関して虚偽の内容を発信することを可能にして、プレイヤーを不快にすることがある[10]。
関連項目
- ラグ
- マッチメイキング
脚注
- ^ a b c d Weilbacher, Michael. “Dedicated Servers in Gears of War 3: Scaling to Millions of Players”. GDC 2012. GDC Vault. 2022年2月21日閲覧。
- ^ Bernier, Yahn (2001年). “Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization”. Valve. 2022年2月21日閲覧。
- ^ “Mammoth Dedicated Server Guide | Installation (Computer Programs) | Server (Computing)” (英語). Scribd. 2020年2月16日閲覧。
- ^ a b c Fiedler, Glenn. “What every programmer needs to know about game networking”. 2022年2月21日閲覧。
- ^ a b “Source Multiplayer Networking”. Valve Developer Community. 2022年2月21日閲覧。
- ^ “HTTP Fast Download”. Steam Support. Valve. 2022年2月21日閲覧。
- ^ “Server Plugins”. Valve Developer Community. Valve. 2022年2月21日閲覧。
- ^ Bowling, Robert. “Modern Warfare 2 For PC”. 2022年2月21日閲覧。
- ^ Denton, Jon (2012年7月4日). “Battlefield 3: How Fan-Run Servers Are Ruining DICE's Game”. Eurogamer. 2022年2月22日閲覧。
- ^ Walker, Robin. “And that's what ye git fer toochin that!”. Team Fortress 2 Blog. Valve. 2022年2月21日閲覧。
- Game serverのページへのリンク