Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
GAMEPERF05-BP02 Verschieben Sie non-latency-sensitive Rechenaufgaben in asynchrone Workflows
Wenn Sie die Leistung Ihres Spiels optimieren, sollten Sie bedenken, dass nur einige der Interaktionen zwischen dem Client und dem Spiel-Backend synchron ausgeführt werden müssen. Sie sollten jedes Feature aus der Perspektive der Spielererfahrung betrachten und entscheiden, ob bestimmte Interaktionen synchrone Kommunikation erfordern, die blockierend und ressourcenintensiv ist, oder ob diese Funktionen asynchron implementiert werden können. Verwenden Sie bei der Implementierung von Netzwerkaufrufen einen asynchronen, blockierungsfreien Ansatz. Darüber hinaus sollte Ihr Spiel-Backend auch so konfiguriert sein, dass es Ihre Arbeit effizient erledigt, indem Aufgaben in Warteschlangen ausgelagert und schnelle Antworten an Kunden nach Möglichkeit priorisiert werden.
Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: Hoch
Implementierungsleitfaden
Beispielsweise kann die Aktualisierung einer Bestenliste am Ende einer Spielersitzung asynchron implementiert werden, sodass der Client nicht warten muss, bis die Aktualisierung der Bestenliste abgeschlossen ist. Implementieren Sie dies stattdessen asynchron auf dem Spielclient und erwägen Sie, Ihren Backend-Service so zu gestalten, dass er diese Art von Vorgängen in Warteschlangen verschiebt, z. B. Amazon SQS. Bei dieser Architektur sollten Sie Ihr Backend so konfigurieren, dass es die Anfrage akzeptiert, sie in SQS in die Warteschlange stellt, wodurch Nachrichten für die asynchrone Verarbeitung dauerhaft gespeichert werden können, und dem Client umgehend antworten. Wenn die Aktualisierung der Bestenliste abgeschlossen ist, kann das Backend ein Update an den Spielclient senden, sodass die Ansicht des Spielers über die Bestenliste aktualisiert wird.
Alternativ kann der Spieler einfach den Bestenlistenbildschirm Ihres Spiels aufrufen, um die neuesten Daten abzurufen, wodurch eine Webanfrage an Ihr Backend gesendet werden kann, um die neuesten Daten aus dem Cache abzurufen.
Implementierungsschritte
-
Ermitteln Sie, ob Interaktionen zwischen Client und Backend synchrone Kommunikation erfordern. Implementieren Sie nach Möglichkeit asynchrone, blockierungsfreie Ansätze, um die Ressourcennutzung zu optimieren.
-
Verwenden Sie Amazon SQS, um unkritische Aufgaben wie Leaderboard-Updates auszulagern.
-
Erlauben Sie dem Client, aktualisierte Daten asynchron abzurufen, z. B. das Abrufen der neuesten Bestenlistendaten bei Bedarf oder über Hintergrundaktualisierungen.