ゲームサーバー

ゲームサーバー（英語: Game server、別名: ホスト）は、マルチプレイヤービデオゲーム（英語版）（オンラインゲーム）において、ゲーム内の出来事に関する正式な情報源となるサーバーのことである。サーバーは、ゲーム世界の正確な状況をプレイヤーに表示し続けられるように、接続されたクライアントに対して内部状態に関しての十分なデータを送信している。また、各プレイヤーからの入力を受信し、処理している。 専用サーバーは、管理に必要なものを除いては直接的な入出力をサポートせずにゲーム世界をシミュレートするものである。プレイヤーは、ゲームを表示して参加するために別のクライアント・プログラムでサーバーに接続しなければならない。 専用サーバーの最大の利点は、専門的なデータセンターでのホスティングに適しているため、それに伴う信頼性とパフォーマンスに関するあらゆる利点を得ることができるところにある。また、リモートホスティングには、同じ端末やローカルネットワークからホストしてサーバーに接続しているプレイヤーがいると発生しうるラグを排除することができるという利点がある。 しかし、ゲームの専用サーバーの運用には費用がかかる。その費用は、時としてゲーム開発者（特にゲーム機の開発者）などが負担することがあれば、クランのグループが負担することもあるが、いずれの場合も一般ユーザーは接続するためのサーバーを第三者に依存することとなる。そのため、専用サーバーを使用しているゲームの多くはListenサーバーのサポートも行っている。これらのゲームのプレイヤーは、自分のハードウェアでサーバーのインスタンスをホストするか、ゲームサーバーを扱うホスティング・プロバイダーからサーバーを借りて、一般ユーザーやクランのためにサーバーをホストすることがしばしばある。 Listenサーバーは、ゲームクライアントと同じプロセスで動作する。それ以外は専用サーバーと同じように機能するが、通常はホストしているプレイヤーの家庭用インターネット接続を介して、離れたところにいるプレイヤーと通信しなければならないという欠点がある。パフォーマンスは、サーバーを動作させている機械が出力される画面の生成も行なっているという単純な事実によって低下する。Listenサーバーは、そのサーバーを動作させているプレイヤーに、他のプレイヤーに対して反応時間において大きなアドバンテージを与え、そのプレイヤーがゲームから離脱するとサーバー自体が存在しなくなる。 Listenサーバーは、しかしながら、基本的に無料で、かつ、特殊なインフラストラクチャーや事前の計画などを必要としないため、ラグや帯域の問題を気にしないLANパーティーでしばしば利用されるという利点がある。 このページで紹介しているクライアントサーバモデルでは、クライアントはサーバーから加工済みのデータを受け取って、表示している。それに対して、「Peer to Peer」モデルでは、サーバーは存在しない代わりに、それぞれの「Peer」は、他のプレイヤーからの入力ストリームを受け取ってから自ら結果を決定する。 Peer to Peerは、一般にアクションゲームにおいては時代遅れと考えられているが、リアルタイムストラテジーでは少人数制のプレイヤーと大量のトークンを使用するため、現在でもしばしば使用されている。1000もの部隊の位置を常に送信するのではなくて、「1000の部隊を選択して、その部隊を指揮するプレイヤーが移動命令を出したところ」という情報をゲーム側が一度だけ送信することで事足りるのだ。 しかし、Peer to Peerは以下のデメリットがある: 全てのPeerを同期させるのが困難であり、Peer同士の間で生じるわずかな差異が時間と共に増大し、ゲームがクラッシュしてしまうような決定的な矛盾になってしまうことがある。 ゲームの途中で新規のPeerが参加できるようにするのは、非常に困難である。 それぞれのPeerは、他の全てのPeerと通信する必要性が生じ、接続できるプレイヤーの数が制限される。 それぞれのPeerは、次の「ネットワークフレーム」をシミュレートする前に、すべての他のPeerからの通信を完了する必要があるため、プレイヤー内で最も接続環境の悪いプレイヤーと同じだけの遅延が、全プレイヤーに生じてしまう。 ゲームサーバーがシミュレーションを実行する速度は、一般的に「チックレート」と呼ばれている。「Tick」は、それぞれのシミュレーションの手順に関連づけられた番号で、サーバーと同期するためにクライアントにブロードキャストされる。 サーバーのシミュレーションの手順の頻度を予め定義されたチックレートに制限する理由としては3つあり、それは「サーバーとクライアントの帯域幅を節約すること」「サーバーのCPU時間を節約すること」「それぞれのTickの間での時間経過をクライアントが確認できるようにすること」の3つである。インターネットゲームでは、サーバーからのネットワーク更新が異なる間隔、または誤った順番で行われることがあるため、最後の理由は特に重要である。 一般的にサーバー（特にPCゲームのサーバー）をカスタマイズする場合、クライアントには手を加えなくてもそのままサーバーへ接続できる。これらのカスタマイズは、内蔵のゲーム設定を調整したり、クライアントのゲーム参加の時にダウンロードするコンテンツを調整したり、サーバーの動作方法を変更する新しいコードを活用することでできる。 サーバーのカスタマイズは、サーバー管理者とプレイヤーには好評ではあるが、意図した通りのゲームプレイを希望する開発者や一部のプレイヤーの考えと相反するものとなる場合がある。また、サーバーのカスタマイズは悪質な管理者が自身のサーバーが提供するサービスに関して虚偽の内容を発信することを可能にして、プレイヤーを不快にすることがある。 ラグ マッチメイキング（英語版） ^ 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”. 2009年10月21日時点のオリジナルよりアーカイブ。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日閲覧。