Stresstest eines Gameservers ohne User?


12

Ich arbeite an einem Kartenspiel und seinem Server. Es wird eine Lobby mit vielen Tischen und vielen Spielern geben. Das einzige Problem ist, wie kann ich sehen, wie es Hunderte von gleichzeitigen Benutzern ohne Hunderte von gleichzeitigen Benutzern behandeln könnte?

Wie wird so etwas normalerweise gemacht?


Sehen Sie, ob meine Antwort auf eine ähnliche Frage trotzdem hilft: stackoverflow.com/questions/7940967/…
Greg Balajewicz

Antworten:


23

Zwei Wörter: kopfloser Klient.

Grundsätzlich handelt es sich um einen AI-gesteuerten Client, bei dem alle Grafiken umgangen wurden, sodass Sie viele Kopien auf einem Computer ausführen können. Sie können sie sogar auf Servern ausführen, da Sie die Grafiken nie initialisieren.

Vor allem diese Clients sind für das Starten, Überwachen und Stoppen aller Clients verantwortlich, um sie nach einem Client-Absturz zu testen, zu protokollieren und erneut auszuführen.


8

Ich glaube, du machst dir Sorgen wegen der falschen Dinge, Milo. Ich sehe aus deinen anderen Fragen, die du vorhast, das Spiel zu schreiben, C ++.

Sogar ein nicht sehr gut codierter Server, der in einer Skriptsprache geschrieben ist, wäre in der Lage, 100, wenn nicht 1000 Anfragen ohne offensichtliche Verzögerung in einem Kartenspiel zu bearbeiten.

Diese Art von technischen Details wird wahrscheinlich kein großes Problem sein. Wenn sie zu einem Problem werden, dauert es nur ein oder zwei Tage, um Dinge zu optimieren oder ein wenig zu bewegen. Aber erst, wenn das Spiel beendet ist und Sie das genaue Problem erkannt haben.

Einen kopflosen Client jetzt zu schreiben, um viele Anwendungen zu simulieren, ist Zeitverschwendung. Konzentrieren Sie sich auf die wirklich schwierigen Probleme wie.

  1. Beenden Sie Ihr Spiel und bringen Sie es online und
  2. Finden Sie die Hunderte von Menschen, die Ihr Spiel gleichzeitig spielen möchten.
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.