ゲームのリリース前に、ゲームサーバーがクライアントを処理できるかどうかを確認する方法は?


13

マルチプレイヤーをサポートするiOSベースのゲームを開発しています。これまでのところ、すべてが本当に良いように思えますが、サーバーが10000クライアントを処理できるかどうかを確認したいと思います。サーバーがその量のトラフィックに耐えられるようにするにはどうすればよいでしょうか?

回答:


15

トラフィックの負荷テストには多くのツールがありますが、ネットワークトラフィックは方程式の一部にすぎないため、ゲームサーバーに固有の他のテストも必要になります-プロセッサ使用率とデータベースの常時クエリは測定する重要な要素としてすぐに思い浮かぶ他の2つ(間違いなく他の要素もありますが、ゲームサーバーの仕組みに関する知識に基づいて決定する必要があります)。

これを行うための本当に良い方法は、「ゲームプレーヤーシミュレーション」クライアントプログラムを記述し、複数のコンピューターでそのインスタンスを複数実行することです。欠点は、これには多くのコンピューターの使用が必要になる可能性があることですが、一部の地元の大学では、これらを実行できる大きなコンピューターラボがある場合があります(大学の教授は、良い研究)。

クライアントはプレイヤーほど洗練されている必要はないかもしれませんが、次のことを確実にしたいかもしれません(酔っ払ったソフトウェア開発者よりも少し機能的である限り、それは非常に知的である必要はありません)本当に家に帰ってはいけないので、壁を通り抜けたり、ゲーム内の商人からランダムに選択した商品を購入するための無制限の予算を持ったり、無限の弾薬の供給、その他):

  • ランダムなタイミングでランダムなチャットテキストを送信する
  • 世界中のランダムな方向にナビゲートします(ただし、主要都市の近くに留まる傾向があります)
  • 他のプレイヤーが近くにいるときにランダムな方向に武器を発射することをランダムに選択する
  • 商人からランダムな商品を購入/販売し、時折世界中にアイテム捨てる
  • 火の上にあるものをランダムに照らす(または他の形態の局所的な破壊を引き起こす)
  • 野生動物の大群を動揺させて追いかけながら忙しい町に走り、ログアウトするかどうかをランダムに決定します(ログアウトすることを選択した場合、おそらく野生動物は町の他の人を攻撃し始めますか?)
  • 負傷したプレイヤーを癒す
  • 混雑した場所でランダムに選択した魔法の呪文を打ち消す
  • 生の食品を調理したり、生の木材や他の材料を処理したり(鉱業からなど)
  • ...プレイヤーが定期的に行う可能性が高いその他の簡単なタスク

一度に9,000人のプレイヤーがいると推定される場合は、少なくともその3倍の数でこれをテストしてみてください。アイドル状態、特に社会的なタイプ)。

また(これは非常に重要です)、これを行う場合は、通常のキャラクターでログインし、愚かなことをしているこれらのコンピューター化されたすべてのプレイヤーのビデオを記録してください笑い(ゲーム内で適切なシナリオを見つけることができれば、「酔った納屋のダンス」はこの映画の良いタイトルになると思います)!;-D


2
あなたの答えをたくさんありがとう、これらのシミュレートされたプレーヤーを使用してテストする必要があり、最終的にはクラウドサービスのいずれかを使用してクライアントを実行すると考えています。ただの補足として、それはマルチプレイヤーゲームですが、プレイヤーは世界をナビゲートしてお互いを狩ることしかできないため、あなたが言及したこれらのタスクのほとんどはサンプルクライアントに実装されません!同じ質問をしている次の人が、これらすべてをテストするためにライフシミュレーションゲームをリリースすることを願っています!
Ali1S232

さて、ゲームに当てはまるものをテストしてください(どういたしまして!)。私はあなたのゲームの機能について何も知らなかったので、それがカバーされることを期待して多くの可能性を含めようとしました。
ランドルフリチャードソン

一部のゲームは初期のベータプレリリースでも開始されますが、ベータステージではプレイヤーがゲームを気に入らず、それを試しに戻ってこないという厄介な要素があるため、これは難しい決定になる可能性があります再び(彼らが遭遇した問題が解決されたとしても)。
ランドルフリチャードソン

2
-1、非現実的な答え。女性のゲーム開発者は存在しません。(Jks、+ 1、テスト結果を視覚的に共有することに同意しました)。
減速

3
ハンドヘルドコンソールでのMMOのために、まさにこれを行ったことを付け加えます。シミュレートされたプレーヤーは、サーバーがストレス下でどのように対処するかをテストするために、これまでで最高のものでした。また、クローズドベータ(約500人に限定)を開催し、ベータテスターの動作に関する生成された統計を使用して、シミュレートされたプレーヤーを調整して、実際のプレーヤーと同じように動作します。ベータ版が終了した後、4万人のシミュレートされたプレイヤーをルーズに設定して、サーバーを破壊しました。多くの騒乱!
トレバーパウエル

0

これは古い質問に対する答えです。検索エンジンでここにアクセスする人に役立つことを願っています。 Netgendには、50,000人のVUserをエミュレートできるパフォーマンステストプラットフォームがあり、すべての柔軟なクライアントエミュレーションを実行できます。

特にブログをご覧ください

  • ネットワーキングが簡単に
  • サーバー応答からフィールドを抽出します
  • バイナリデータを使用したパフォーマンステスト

メッセージ処理はhttpメッセージに限定されず、すべてのメッセージに適用されることに注意してください。

お役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.