View a markdown version of this page

GAMEREL03-BP01 Monitora le interruzioni dei server di gioco e utilizza i dati per migliorare l'architettura di hosting per raggiungere gli obiettivi di affidabilità - Games Industry Lens

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

GAMEREL03-BP01 Monitora le interruzioni dei server di gioco e utilizza i dati per migliorare l'architettura di hosting per raggiungere gli obiettivi di affidabilità

Monitora le metriche dei server di gioco e l'impatto di guasti o riduzioni delle prestazioni, come l'aumento della latenza sotto carico, sul comportamento dei giocatori nel tempo, in modo da poter adattare la strategia di hosting dei server di gioco per soddisfare i requisiti di affidabilità del gioco. L'infrastruttura del server di gioco da danneggiare deve essere rimossa immediatamente dal servizio se ciò ha un impatto sui giocatori o sostituita in modo proattivo quando non ci sono sessioni attive dei giocatori ospitate sul server.

Livello di rischio associato se questa best practice non fosse adottata: elevato

Guida all’implementazione

Negli scenari in cui i giochi sono ospitati come REST APIs, l'affidabilità del sistema può essere gestita come le tradizionali architetture di applicazioni web, in cui il traffico può essere bilanciato del carico su più server in modo distribuito per mitigare il rischio di guasti del server.

Per un gameplay sincrono in tempo reale, una sessione di gioco è generalmente ospitata su un processo del server di gioco in esecuzione su una macchina virtuale o su un'istanza del server di gioco, poiché lo stato di gioco deve essere mantenuto in modo efficiente e replicato sui client di gioco connessi. Questa implementazione significa che l'esperienza del giocatore è strettamente legata alle prestazioni e all'affidabilità del processo del server di gioco che ospita la sessione di gioco. Questo tipo di architettura rende la gestione dell'affidabilità dei server di gioco più complessa rispetto agli approcci tradizionali.

Per mitigare l'impatto di un errore del server di gioco, configura il gioco in modo che esegua continuamente aggiornamenti asincroni dello stato di gioco di un giocatore su una cache o un database ad alta disponibilità come Amazon ( ElastiCache Redis OSS) o Amazon MemoryDB. Se si verifica un errore del server, l'ultimo stato di gioco salvato del giocatore può essere recuperato dall'archivio dati esterno e la sessione può essere ripristinata su una nuova istanza del server di gioco.

Tuttavia, questo approccio aggiunge costi e complessità aggiuntivi alla gestione di questo stato esterno e potrebbe non essere adatto per giochi frenetici o competitivi in cui i cambiamenti di stato sono così frequenti e avvengono su una scala così importante che l'introduzione anche di un potente archivio dati cache in memoria comporterebbe un ritardo di replica troppo significativo per essere utile per ripristinare una sessione. Per giochi di questo tipo, l'approccio ottimale è accettare la perdita del server e rimandare il giocatore a una lobby di gioco per trovare un'altra sessione oppure puoi reindirizzarlo automaticamente a un'altra sessione di gioco.

Raccogli tutti i dati di registro utili su ciò che ha causato l'interruzione del server in modo da poter esaminare il problema in un secondo momento. Amazon GameLift fornisce indicazioni per il debug dei problemi della flotta e offre la possibilità di accedere in remoto alle istanze della flotta Amazon GameLift .

Passaggi dell’implementazione

  • Monitora le metriche dei server di gioco per rilevare eventuali riduzioni delle prestazioni e rimuovi o sostituisci i server danneggiati se necessario per mantenere l'affidabilità.

  • Usa Amazon ElastiCache o MemoryDB per gli aggiornamenti asincroni dello stato del gioco per abilitare il ripristino della sessione dopo i guasti del server, se possibile.

  • Acquisisci dati di registro dettagliati sulle interruzioni dei server per indagini e debug, sfruttando strumenti come GameLift Amazon per il monitoraggio della flotta e l'accesso remoto.