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-BP01Monitora le interruzioni dei server di gioco e utilizza i dati per migliorare l'architettura di hosting e raggiungere gli obiettivi di affidabilità
Monitora le metriche dei server di gioco e l'impatto di guasti o degradi delle prestazioni, ad esempio una maggiore latenza sotto carico, sul comportamento dei giocatori nel tempo, in modo da poter adattare la strategia di hosting del server di gioco per soddisfare i requisiti di affidabilità del gioco. L'infrastruttura del server di gioco da degradare dovrebbe essere rimossa immediatamente dal servizio se 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 API REST, 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 il gioco sincrono in tempo reale, una sessione di gioco è generalmente ospitata su un processo del server di gioco in esecuzione su una macchina virtuale o un'istanza del server di gioco, poiché lo stato di gioco deve essere mantenuto in modo performante e replicato sui client di gioco connessi. Questa implementazione significa che l'esperienza di un 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.
Tuttavia, questo approccio comporta costi e complessità aggiuntivi per la gestione di questo stato esterno e potrebbe non essere adatto a giochi frenetici o competitivi in cui i cambiamenti di stato sono così frequenti e avvengono su una scala così significativa che l'introduzione anche di un archivio dati cache in memoria ad alte prestazioni comporterebbe un ritardo di replica troppo significativo per essere utile da cui ripristinare una sessione. Per giochi di questo tipo, l'approccio ottimale è accettare la perdita del server e rimandare il giocatore in una lobby di gioco per trovare un'altra sessione oppure puoi reindirizzarlo automaticamente a un'altra sessione di gioco.
Acquisisci quanti più 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 relativi al parco veicoli e offre la possibilità di accedere in remoto alle istanze della flotta Amazon. GameLift
Passaggi dell’implementazione
-
Monitora i parametri dei server di gioco per individuare eventuali riduzioni delle prestazioni e rimuovi o sostituisci i server degradati, se necessario per mantenere l'affidabilità.
-
Usa Amazon ElastiCache o MemoryDB per gli aggiornamenti asincroni dello stato del gioco per consentire il ripristino della sessione dopo i guasti del server, quando possibile.
-
Acquisisci dati di registro dettagliati sulle interruzioni del server per indagini e debug, sfruttando strumenti come Amazon per il monitoraggio della flotta e l'accesso remoto. GameLift