Wie überprüfe ich, ob ein Gameserver Clients verarbeiten kann, bevor das Spiel veröffentlicht wird?


13

Wir entwickeln ein iOS-basiertes Spiel mit Multiplayer-Unterstützung. Bisher scheint alles sehr gut zu sein, aber jetzt wollen wir sicherstellen, dass der Server 10000 Clients verarbeiten kann oder nicht. Irgendeine Idee, wie ich sicherstellen kann, dass der Server so viel Verkehr überlebt?

Antworten:


15

Für das Testen der Datenverkehrslast gibt es viele Tools, aber Sie müssen auch andere Dinge testen, die für Ihren Spieleserver spezifisch sind, da der Netzwerkverkehr nur ein Teil der Gleichung ist - die Prozessorauslastung und konstante Datenbankabfragen Zwei weitere Faktoren, die Ihnen sofort als wichtige Faktoren einfallen, die Sie messen möchten (es gibt zweifellos auch andere Faktoren, die Sie anhand Ihrer Kenntnisse über die Funktionsweise Ihres Spielservers bestimmen müssen).

Ein wirklich guter Weg, dies zu tun, könnte darin bestehen, ein Client-Programm für die Spielersimulation zu schreiben und mehrere Instanzen davon auf mehreren Computern auszuführen. Die Kehrseite ist, dass dies den Einsatz vieler Computer erfordern könnte, aber einige lokale Universitäten haben möglicherweise große Computerlabore, auf denen Sie diese betreiben könnten (der Professor ist möglicherweise an Ihren Testergebnissen interessiert, da Universitätsprofessoren aufrichtig neugierig sind) gute Forschung).

Ihr Client muss möglicherweise nicht so anspruchsvoll sein wie ein Player, aber Sie möchten möglicherweise sicherstellen, dass er die folgenden Dinge ausführt (er muss nicht sehr intelligent sein, solange er etwas funktionaler ist als ein betrunkener Softwareentwickler, der dies tut Eigentlich sollte man sich nicht nach Hause fahren lassen, deshalb sollte man die Charaktere auch auf besondere Weise markieren, damit sie alberne Dinge tun können, wie durch Wände laufen, unbegrenzte Budgets haben, um zufällig ausgewählte Waren von Spielehändlern zu kaufen, endlos Munitionsvorräte und so weiter):

  • Senden Sie zufälligen Chat-Text nach dem Zufallsprinzip
  • Navigieren Sie in zufällige Richtungen auf der ganzen Welt (aber bleiben Sie in der Regel näher an Großstädten)
  • Wähle zufällig, Waffen in zufälligen Richtungen abzufeuern, wenn andere Spieler in der Nähe sind
  • Kaufe / verkaufe zufällige Waren von Händlern und lege gelegentlich Gegenstände auf der ganzen Welt ab
  • Feuer willkürlich entzünden (oder andere Formen lokalisierter Zerstörung verursachen)
  • Ärgern Sie sich über Horden wilder Tiere und stoßen Sie auf eine geschäftige Stadt, hinter der sie her jagen. Entscheiden Sie dann nach dem Zufallsprinzip, ob Sie sich abmelden möchten oder nicht.
  • Heile verletzte Spieler
  • Löse zufällig ausgewählte Zaubersprüche an überfüllten Orten aus
  • Kochen Sie rohes Essen, verarbeiten Sie rohes Holz und andere Materialien (z. B. aus dem Bergbau) usw.
  • ... andere einfache Aufgaben, die Ihre Spieler wahrscheinlich regelmäßig erledigen

Wenn Sie davon ausgehen, dass Sie 9.000 Spieler gleichzeitig haben, versuchen Sie, dies mit mindestens der dreifachen Anzahl zu testen, damit Sie wissen, wie Ihre Server mit einer Last von 27.000 simulierten ausgelasteten Spielern umgehen können (viele Spieler tendieren dazu) im Leerlauf, vor allem die sozialen Typen).

Auch ( und das ist sehr wichtig ), wenn Sie dies tun, bitte, bitte, BITTE, melden Sie sich mit einem normalen Charakter an und nehmen Sie ein Video von all diesen computergesteuerten Spielern auf, die dumme Dinge tun, und teilen Sie dieses Video hier mit uns, damit wir ein gutes haben können Lachen (Ich denke, dass " Drunken Barn Dance " ein guter Titel für diesen Film sein könnte, wenn Sie genau das richtige Szenario im Spiel finden)! ;-D


2
Vielen Dank für Ihre Antwort, ich denke, wir müssen diese simulierten Player testen und denken, dass wir letztendlich einen der Cloud-Dienste zum Ausführen von Clients verwenden werden. Genau wie eine Randnotiz, es ist ein Multiplayer-Spiel, aber die Spieler können nur durch die Welt navigieren und sich gegenseitig jagen, so dass fast keine der von Ihnen genannten Aufgaben in unseren Beispiel-Clients implementiert wird! Ich hoffe, die nächste Person mit der gleichen Frage wird ein Lebenssimulationsspiel veröffentlichen, um all diese Dinge zu testen!
Ali1S232

Testen Sie einfach, was für Ihr Spiel gilt (Sie sind herzlich willkommen!). Ich wusste nichts über die Features deines Spiels und habe versucht, viele Möglichkeiten in die Hoffnung einzubeziehen, dass es abgedeckt wird.
Randolf Richardson

Einige Spiele beginnen auch mit einer frühen Beta-Vorabversion, aber dies kann eine schwierige Entscheidung sein, da ein Spieler das Spiel in der Beta-Phase möglicherweise nicht mag und es dann nie wieder probiert wieder (obwohl die aufgetretenen Probleme behoben wurden).
Randolf Richardson

2
-1, unrealistische Antwort. Weibliche Spieleentwickler gibt es nicht. (Jks, +1, einigten sich darauf, die Testergebnisse visuell zu teilen).
verzögerte

3
Ich füge hinzu, dass ich genau das für ein MMO auf einer Handheld-Konsole getan habe. simulierte Spieler waren das Beste, um zu testen, wie Server mit Stress umgehen. Wir hatten auch eine Closed Beta (begrenzt auf ca. 500 Personen) und ich habe die generierten Statistiken zum Verhalten der Betatester verwendet, um die simulierten Spieler so einzustellen, dass sie sich so gut wie die echten Spieler verhalten, wie ich es schaffen kann. Nachdem die Beta vorbei war, habe ich 40.000 simulierte Spieler losgelassen, um Chaos mit den Servern zu verursachen. Viel Chaos!
Trevor Powell

0

Dies ist eine Antwort auf eine alte Frage, ich hoffe, es kann für diejenigen nützlich sein, die hier per Suchmaschine ankommen. Netgend verfügt über eine Performance-Test-Plattform, die 50.000 VUs emulieren und alle flexiblen Client-Emulationen durchführen kann.

Sehen Sie die Blogs , vor allem

  • Vernetzung leicht gemacht
  • extrahiert Felder aus Serverantworten
  • Leistungstests mit Binärdaten

Beachten Sie, dass die Nachrichtenverarbeitung nicht auf http-Nachrichten beschränkt ist, sondern für alle Nachrichten gilt.

Hoffe es ist hilfreich.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.