2017-05-15 3 views
0

In den Tutorials, die ich für Deepstream- und Multiplayer-Spiele sah, wurde der gesamte Spielstatus synchronisiert. Dies ist nicht akzeptabel für ein Massen-Multiplayer-Spiel, in dem jeder Spieler aus Leistungs- und Sicherheitsgründen nur den Status anderer Spieler erhalten sollte, die er "sehen" kann. Was ist das beste Muster dafür im Deepstream? Ich dachte daran, keine Datensynchronisierung zu verwenden, sondern nur ein Thema/einen Player zu verwenden und für jeden Server-Tick nur die relevante Statusuntergruppe für jedes Player-Thema zu veröffentlichen.Deepstream: Wie man eine Teilmenge des Zustands in einem Massively Multiplayer Spiel synchronisiert

Was denkst du? Gibt es eine automatische Filterfunktion für diesen Anwendungsfall?

Danke für Ihre Hilfe

Antwort

1

Ich denke, die beste Option für Sie personalisierte Ereignisse zu verwenden wäre. Wenn Sie beispielsweise Benutzer 1234 sind und dem Spiel abcd beigetreten sind, können Sie Ereignisse mit dem Namen game/abcd/1234/movement abonnieren. Dieses Ereignis könnte Nachrichten wie

{ 
    "player": 5678, 
    "x": 70, 
    "y": 90 
} 

empfangen Sie können den Ereignisnamen wie gewünscht gestalten. Der Punkt ist, dass es die Spiel-ID, die Benutzer-ID des Empfängers und die Kennung für den Ereignistyp enthält. Auf diese Weise kann Ihr Backend Daten nur an die Benutzer senden, die diese Daten benötigen.

+0

Okay, das ist die Lösung, mit der ich kam. Vielen Dank! – lambdacalculus

Verwandte Themen