MMORPGがまだ複数のサーバーを使用するのはなぜですか?


18

MMORPG、League of Legends、またはStarCraft 2などの一部のMOBAは、通常、サーバーの選択を強制します。通常、それらは米国、EU、およびSEAであり、MMORPGでは場所ごとに多数存在します。それは数年前に必要だったことがわかりますが、AWSや「サーバーパワー」をシームレスに拡張できる同様の製品の登場により、なぜ別のサーバーがあるのですか?

私の思考の流れは次のようなものです(スターウォーズ:旧共和国を例として):-あなたは常に1つの惑星、他の惑星から孤立した「インスタンス」にいます。-1つの惑星に人が多すぎる場合、SW:TORは世界の新しいインスタンスを作成し、そこにプレイヤーを配置します。-あなたが世界を離れる/インスタンスを切り替えると、ロード画面があります

それでは、なぜこのゲームはこの惑星のインスタンスを作成できないのでしょうか。このインスタンス(およびこのインスタンスのみ)は、データベースに現在のデータを保持し、xプレーヤーを管理します。x-50プレイヤーがこのインスタンスにいるとすぐに、新しいサーバーが起動し、新しいインスタンスがそのインスタンスに出現します。50のスポットは、グループへの切り替えなどのために予約されています。

レイテンシーを低く抑えるために、3つの主要地域すべてにインスタンスが存在する可能性がありますが、140ミリ秒の遅延でライブできる場合は、SEAから他のプレイヤーとプレイすることができます(これはまだ何もありません)。

インスタンスを切り替えたり、別の世界に移動したりするたびに、現在のサーバーはすべてのデータを次のサーバーに提供し、1つの大きな集中データベースが必要ないようにします。分析目的で定期的に更新を取得するものを使用することもできます。

ログオフするか、サーバーが接続を失うと、データを保存するために最適化された大規模なデータベースにデータを転送できます。その後、インスタンスサーバーを高スループット用に最適化できます。

これが機能しない特別な理由はありますか?私が見逃している他の問題はありますか?


これらのゲームの多くは、それをサポートするためにエンジンの中程度から大規模なセクションを書き換える必要があるという事実についてはどうですか?そして、その時間とお金はより多くのコンテンツを追加することに費やすことができます。
-Xavon_Wrentaile

既存のゲームを変更することはお勧めしませんでしたが、デザインが当初の方法で選択された理由はもっと多くあります。
mmlac 16

回答:


12

MMORPG、League of Legends、またはStarCraft 2などの一部のMOBAは、通常、サーバーの選択を強制します。通常、それらは米国、EU、およびSEAであり、MMORPGでは場所ごとに多数存在します。それは数年前に必要だったことがわかりますが、AWSや「サーバーパワー」をシームレスに拡張できる同様の製品の登場により、なぜ別のサーバーがあるのですか?

AWSは、考えられるほど明らかなソリューションではありません。場合によっては、社内のデータセンターを使用するよりも高価になる場合があります(出版社にとっては、たとえば、これらのコストは複数の製品にわたって償却される場合があります)。さらに、機密性の高いバイナリとログを自分の管理外のハードウェアに保存することについて懸念がある可能性があります。最後に、実際の計算能力は、MMOで「サーバー」集団を分離する理由とは限りません。

私の思考の流れは次のようなものです(スターウォーズ:旧共和国を例として):-あなたは常に1つの惑星、他の惑星から孤立した「インスタンス」にいます。-1つの惑星に人が多すぎる場合、SW:TORは世界の新しいインスタンスを作成し、そこにプレイヤーを配置します。-あなたが世界を離れる/インスタンスを切り替えると、ロード画面があります

実際、ギルドウォーズ2はこれと非常に似たようなことをします。マップは個々のサーバープロセスによってシミュレートされ、マップの人口上限とマップのパフォーマンスのヒューリスティックに基づいて、必要に応じてオーバーフローインスタンスが作成されます。

Guild Wars 2には2つの主要なデータセンターがあります。1つは米国に、もう1つはヨーロッパにあります。これらのデータセンターの間には(主に取引ポストとコマースシステム用)いくつかのクロスチャッターがありますが、一般にそれらはその構成に存在するため、ドイツ、フランスなどは、米国のゲームサーバーの待ち時間が長くなる必要はありません。データセンター内では、プレーヤーは「ホームワールド」(または専門用語では「シャード」)に分類されます。しかし、これが行われる理由の1つは、クライアントが見ることができ、報告する必要があるプレーヤーの数を最小限にすることです。その問題のクライアント側の側面は、より多くのサーバーハードウェアにスケールアウトしても解決されません。追加のレポートパスのサーバー側の組み合わせの爆発は、

これが機能しない特別な理由はありますか?私が見逃している他の問題はありますか?

あなたはかなり多くのものを失っていますが、それらは大部分が詳細であり(そしてそれらが企業秘密と考えられているので、私たちがそれらをどのように扱うかについては説明しません)、そのような高レベルの概要タイプの質問に関連していません。あなたの提案の最大の欠陥は、プレイヤーが転送するときに、プレイヤーのデータを新しいサーバーに引き渡そうとすることだと思います。これは複雑な問題であり、適切に拡張することはできません。実際には、プレーヤーのデータをサーバーの集中システムに置く方が実際には良いでしょう。これらのデータベースとプライマリランタイムレコードストアをデータに使用しなければ、かなり実行可能です。


@Josh、配信権も世界の各地域に別々のサーバーを作成して維持する決定の大きな要因だと思いますか?
トレバーパウエル

私はあなたが何を言っているのか分かりません、あなたは価格調整の目的のために異なるSKUとしてEUバージョンを提示することについて話しているのですか?

7

大部分はレイテンシーに関するものです。

まず、地理的に近い場所にサーバーを配置すると、待ち時間が短縮されます。サーバーが世界の反対側にある場合、サーバーが数ホップ離れている場合よりも遅延が長くなります。

第二に、AWSのようなサービスはリアルタイムの作業用に設計されていません。それらは、わずかなレイテンシーを犠牲にして高スループット用に設計されています。Webページの読み込みに通常よりも250ミリ秒かかる場合、誰も気にしませんが、ゲームのメッセージの処理に通常より250ミリ秒かかる場合、ゲームプレイに深刻な影響を与える可能性があります。これが、MMOがほとんどの場合専用ハードウェアでホストされる理由です。

しかし、それはゲームデザインにも関係しています。すべての人が同じ世界にいるように見えても、ゾーンがいっぱいになったときにゾーンを分割しなければならない場合、人々は指定されたミーティングスポットで友人を見つけることができないことにイライラします。この種の問題は、ギルド、大量のPvPバトルなどにまで及びます。最近では、プレイヤーはインスタンスに慣れていますが、共有されると予想される特定の領域があります。完全に別個のサーバーを使用している場合、少なくともここには驚きはありません。

最後に、考慮すべき他の技術的な問題があります。各インスタンスが他のインスタンスからかなり分離されていても、通常はそれらの間で通信する必要があるさまざまなサービスがまだあります。クロスサーバー通信は、リアルタイムソフトウェアでうまく機能することが難しく、過去にMMOでさまざまな悪用やバグが発生していました。特に、一方から他方への信頼できるプレーヤーデータの受け渡しは危険です。そのため、開発者はしばしば注意を怠ってサーバー間の境界を明確に示し、サーバーを通過する必要があるトラフィックの量を減らします。


「完全に別々のサーバーを使用している場合、少なくともここには驚きはありません。」さて、あなたはあなたの友人と遊ぶことができません。SW:TORでは、グループリーダーがどのインスタンスであるかがわかり、すぐに切り替えることができます。私は(個人的に)これで十分だと思います。技術的な洞察をありがとう、これは目前の問題を理解するのに本当に役立ちます!
mmlac

1
確かに一部のゲームでは、そのようなインスタンスを切り替えることができますが、ダンジョンやクエストエリアでは、共有会議エリアやソーシャルエリアよりもはるかにうまく機能します。最終的には技術的な問題がより重要になります。
キロタン

そして、Philippへの私のコメントで述べたように、インスタンスなしで首都や主要都市を運営できるとは思いません。
mmlac

3

実際に私は答えはそうでないと信じています通常のイベントがありますゲームのこのタイプでは、ネットワーク関連または関連するアーキテクチャではなく、ゲーム、およびこれらのイベントは、サーバー上で遊ぶ人々のための最も快適な時間枠に応じてタイミングを合わせている、それは通常、人々が住んでいるタイムゾーンに関連しているため、EUや米国など

もう1つの理由は、強すぎるグループがあれば、プレイしているすべての人にとってゲームを台無しにしないように、世界間の分離を作成することです。

サーバーのCPU機能の面では、今日のマシンは非常に強力ですが、1台のマシンで処理できるものには常に制限があるため、ゲームを過負荷から保護し、ユーザーがどの世界を選択できるようにするには、世界を分離する必要があります彼らが彼らの友人と遊ぶことができるように遊びます。水平方向のスケーリングは、マシンの問題だけでなく、アプリケーションが水平方向にスケーリングされたアーキテクチャで動作できるようにする必要があります。また、相互に影響を与える可能性のある何千もの「アクション」が同時に発生する場合、それほど簡単ではありませんすべてを同期する必要があります。複数のマシンでこれを行うのは非常に難しいと思います。


少なくともSW:TORでは、現在のインスタンスにのみ影響があります。つまり、インスタンス1で殺したワールドボスは、インスタンス2でも無害/スポーンされます。したがって、分離はすでに行われています。電源側のサーバーが異なる理由はわかりますが、ベルトの下では同様に拡張できるため、人口の制限はありません。地元のイベントには地元の人々が参加するため、時間を気にする必要はありません。あなたがオンラインになった場合、なぜあなたは参加を許可されないのですか?あなたのタイムゾーンに合わせて調整されていないだけです。
mmlac

私は、EUタイムゾーン(EUサーバーを作成する前)にいる間に、米国のサーバーでLineage2をプレイしていました。襲撃や城の包囲戦に参加したい場合は、午前3時に起きなければなりませんでした。したがって、時間は間違いなく懸念事項です。

はい、間違ったタイムゾーンにサーバーが1つしかない場合、時間が問題になります。私の考えでは、世界中にオンラインの人々がいます。その午前3時の襲撃に参加したい場合は、先に進んでください!今、あなたはSOLであり、「あなたの」サーバーレイドが立ち上がるまで待つ必要があります-これは午後10時のすべてのSaturadyかもしれません-あなたには時間がありません。午後3時にEUの襲撃に行きましょう。それは理にかなっていますか?
mmlac

2

自動インスタンス化の何が問題になっていますか?場所が多くなりすぎたら、1000人のプレイヤーを10の異なるインスタンスに配置します。

それに関する問題は、オンラインゲームはすべてコミュニティに関することです。以前に会った人々との会議を手配し、あなたがすべての特定の時間にいるとき、あなたがすべて異なるインスタンスにいるので、あなたはお互いを見ませんか?それは迷惑であり、没頭を壊します。

これをどのように防ぐことができますか?常に同じインスタンスに各プレイヤーを配置することにより、別のプレイヤーに一度会ったときに、同じ場所にいるときに再びこのプレイヤーに会うことができます。他のインスタンスに割り当てられているプレイヤーに会うことはありません。

しかし、ゲーム外から誰かに会いたいときはどうでしょうか?あなたが一緒にゲームをプレイするために招待した実生活の友人のように?それを可能にするには、キャラクターを作成するときにインスタンスを選択する機能が必要になります。名前を覚えやすいインスタンスのリストからのような。残念ながら、「インスタンス」という名前は平均的なユーザーを混乱させるようです。彼らはその言葉に慣れていません。慣れ親しんだ用語を使用した方が良いと思いませんか?次のような用語... サーバー


1
インスタンスとサーバーという用語を混同しないでください。インスタンスを使用すると、相互に切り替えることができます。サーバーは通常アトミックです。出入り禁止。人々に会うために:全員を1つのインスタンスに入れると、首都には2万人が集まります。同時に。これは機能せず、望ましくもありません。そのため、とにかくインスタンスを作成する必要があります。私の一連の考えは、これらのインスタンスをサーバーに限定するのではなくグローバルにすることでした。
mmlac

しかし、ポイントは、通常、人々が意図的に共有された領域で予測可能な経験をしたいということだと思います。パフォーマンス上の理由でパーティションを作成する必要がありますが、「全員」と共有することになっているので、変数(インスタンスなど)ではなく固定パーティション(サーバーなど)が理想的です。私が知っているMMOは、このタイプのエリアをインスタンス化することはほとんどありません。コミュニティやグループ化の理由から、誰もがそこにいる全員を見ることができるからです。
カイロタン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.