Progetta una coda per le sessioni di gioco - Amazon GameLift

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à.

Progetta una coda per le sessioni di gioco

Questo argomento descrive come progettare una coda che offra un'esperienza di gioco con una latenza minima e che utilizzi in modo efficiente le risorse di hosting. Per ulteriori informazioni sulle code delle sessioni di gioco e sul loro funzionamento, consulta. Configurazione delle GameLift code Amazon per il posizionamento delle sessioni di gioco

Queste GameLift funzionalità di Amazon richiedono code:

Definisci l'ambito della tua coda

La popolazione di giocatori del tuo gioco potrebbe avere gruppi di giocatori che non dovrebbero giocare insieme. Ad esempio, se pubblichi il gioco in due lingue, ogni lingua dovrebbe avere i propri server di gioco.

Per impostare il posizionamento delle sessioni di gioco per la tua popolazione di giocatori, crea una coda separata per ogni segmento di giocatori. Esamina ogni coda per posizionare i giocatori nei server di gioco corretti. Alcuni modi comuni per definire l'ambito delle code includono:

  • Per località geografiche. Quando distribuisci i tuoi server di gioco in più aree geografiche, potresti creare code per i giocatori in ogni località per ridurre la latenza dei giocatori.

  • Tramite varianti di build o script. Se hai più di una variante del tuo server di gioco, potresti supportare gruppi di giocatori che non possono partecipare alle stesse sessioni di gioco. Ad esempio, le build o gli script dei server di gioco potrebbero supportare linguaggi o tipi di dispositivi diversi.

  • Per tipo di evento. Potresti creare una coda speciale per gestire le partite dei partecipanti a tornei o altri eventi speciali.

Crea una politica di latenza dei giocatori

Se le tue richieste di piazzamento includono dati sulla latenza dei giocatori, l'algoritmo trova le sessioni di gioco nelle località con la latenza media più bassa per tutti i giocatori. Posizionare le sessioni di gioco in base alla latenza media dei giocatori GameLift impedisce ad Amazon di inserire la maggior parte dei giocatori in giochi con latenza elevata. Tuttavia, Amazon colloca GameLift ancora i giocatori con una latenza estrema. Per soddisfare questi giocatori, crea politiche di latenza dei giocatori.

Una politica di latenza dei giocatori GameLift impedisce ad Amazon di inserire una sessione di gioco richiesta ovunque i giocatori coinvolti nella richiesta riscontrino una latenza superiore al valore massimo. Le politiche sulla latenza dei giocatori possono anche GameLift impedire ad Amazon di abbinare le richieste di sessioni di gioco ai giocatori con latenza più elevata.

Suggerimento

Per gestire regole specifiche sulla latenza, ad esempio richiedere una latenza simile per tutti i giocatori di un gruppo, puoi usare Amazon GameLift FlexMatch per creare regole di matchmaking basate sulla latenza.

Ad esempio, considera questa coda con un timeout di 5 minuti e le seguenti politiche di latenza dei giocatori:

  1. Dedica 120 secondi alla ricerca di una posizione in cui tutte le latenze dei giocatori siano inferiori a 50 millisecondi.

  2. Dedica 120 secondi alla ricerca di una posizione in cui tutte le latenze dei giocatori siano inferiori a 100 millisecondi.

  3. Trascorri il tempo rimanente in coda fino al timeout alla ricerca di una posizione in cui le latenze di tutti i giocatori siano inferiori a 200 millisecondi.

Una schermata di esempio nella console di configurazione della coda descritta in precedenza.

Crea una coda con più sedi

Consigliamo un design con più sedi per tutte le code. Questo design può migliorare la velocità di posizionamento e la resilienza dell'hosting. È necessario un design multi-location per utilizzare i dati di latenza dei giocatori per inserire i giocatori in sessioni di gioco con una latenza minima. Se stai creando code in più sedi che utilizzano flotte di istanze Spot, segui le istruzioni in. Tutorial: configura una coda di sessioni di gioco per le istanze Spot

Un modo per creare una coda con più sedi consiste nell'aggiungere una flotta con più sedi a una coda. In questo modo, la coda può collocare sessioni di gioco in qualsiasi posizione della flotta. Puoi anche aggiungere altre flotte con diverse configurazioni o sedi di residenza per la ridondanza. Se utilizzi un parco istanze Spot con più sedi, segui le best practice e includi un parco istanze On-Demand con le stesse sedi.

L'esempio seguente descrive il processo di progettazione di una coda di base con più sedi. In questo esempio, utilizziamo due flotte: una flotta di istanze Spot e una flotta di istanze On-Demand. Ogni flotta dispone delle seguenti località Regioni AWS di collocamento: us-east-1us-east-2,ca-central-1, eus-west-2.

Per creare una coda di base con più sedi con flotte con più sedi
  1. Scegli una posizione in cui creare la coda. Puoi ridurre al minimo la latenza delle richieste posizionando la coda in una posizione vicina a dove hai distribuito il servizio client. In questo esempio, creiamo la coda in. us-east-1

  2. Crea una nuova coda e aggiungi le tue flotte con più sedi come destinazioni in coda. L'ordine di destinazione determina il modo GameLift in cui Amazon organizza le sessioni di gioco. In questo esempio, elenchiamo prima il parco istanze Spot e poi il parco istanze On-Demand.

  3. Definisci l'ordine di priorità di posizionamento delle sessioni di gioco della coda. Questo ordine determina dove la coda cerca per primo un server di gioco disponibile. In questo esempio, utilizziamo l'ordine di priorità predefinito.

  4. Definire l'ordine delle ubicazioni. Se non definisci l'ordine delle sedi, Amazon GameLift utilizza le sedi in ordine alfabetico.

Una schermata di esempio nella console che configura le posizioni e le destinazioni di posizionamento della coda come descritto nella procedura precedente.
Una schermata di esempio nella console che configura la priorità di posizionamento della sessione di gioco e l'ordine delle posizioni, come descritto nella procedura precedente.

Dai priorità al posizionamento delle sessioni di gioco

Amazon GameLift utilizza l'algoritmo FleetIQ per determinare dove collocare una nuova sessione di gioco in base a una serie ordinata di criteri. Puoi utilizzare l'ordine prioritario predefinito oppure personalizzare l'ordine.

Ordine di priorità predefinito

Per le richieste di piazzamento che includono i dati sulla latenza dei giocatori, FleetIQ assegna la priorità ai criteri di posizionamento delle sessioni di gioco nel seguente ordine predefinito:

  1. Latenza: latenza media più bassa per tutti i giocatori inclusi nella richiesta.

  2. Costo: costo di hosting più basso, se la latenza è uguale in più sedi. Il costo dell'hosting si basa principalmente su una combinazione del tipo e della posizione dell'istanza.

  3. Destinazione: ordine di destinazione, se latenza e costo sono uguali in più località. FleetIQ assegna la priorità alle destinazioni in base all'ordine elencato nella configurazione della coda.

  4. Posizione: ordine delle posizioni, se latenza, costo e destinazione sono uguali in più località. FleetIQ assegna la priorità alle sedi in base all'ordine elencato nella configurazione della coda.

Ordine prioritario personalizzato

Per personalizzare l'ordine di priorità di una coda nella GameLiftconsole Amazon, trascina il valore di priorità nella posizione in cui desideri. Per personalizzare l'ordine di priorità di una coda utilizzando AWS Command Line Interface (AWS CLI), usa il create-game-session-queuecomando con l'--priority-configurationopzione. È possibile utilizzare questo comando per creare una nuova coda o aggiornare una coda esistente.

L'algoritmo FleetIQ aggiunge qualsiasi criterio non esplicitamente menzionato alla fine dell'elenco, in base all'ordine predefinito. Se si include il criterio della posizione nella configurazione di priorità, è necessario fornire anche un elenco ordinato di sedi.

Progetta code multiple in base alle esigenze

A seconda del gioco e dei giocatori, potresti voler creare più di una coda di sessioni di gioco. Quando il tuo servizio client di gioco richiede una nuova sessione di gioco, specifica quale coda di sessione di gioco utilizzare. Per aiutarti a determinare se utilizzare più code, considera:

  • Varianti del tuo server di gioco. Puoi creare una coda separata per ogni variante del tuo server di gioco. Tutte le flotte in coda devono installare server di gioco compatibili. Questo perché i giocatori che usano la coda per partecipare ai giochi devono poter giocare su uno qualsiasi dei server di gioco della coda.

  • Gruppi di giocatori diversi. Puoi personalizzare il modo GameLift in cui Amazon organizza le sessioni di gioco in base al gruppo di giocatori. Ad esempio, potresti aver bisogno di code personalizzate per determinate modalità di gioco che richiedono un tipo di istanza o una configurazione di runtime speciali. Oppure, potresti aver bisogno di una coda speciale per gestire i piazzamenti per un torneo o un altro evento.

  • Metriche della coda delle sessioni di gioco. Puoi impostare le code in base a come desideri raccogliere le metriche sul posizionamento delle sessioni di gioco. Per ulteriori informazioni, consulta GameLiftMetriche Amazon per le code.

Valuta le metriche della coda

I parametri consentono di valutare le prestazioni delle code. Puoi visualizzare le metriche relative alle code nella GameLiftconsole Amazon o in Amazon. CloudWatch Per un elenco e una descrizione delle metriche delle code, consulta. GameLiftMetriche Amazon per le code

Le metriche delle code possono fornire informazioni su quanto segue:

  • Prestazioni complessive della coda: le metriche delle code indicano la risposta di una coda alle richieste di collocamento. Queste metriche possono anche aiutarti a identificare quando e perché i posizionamenti falliscono. Per le code con flotte ridimensionate manualmente, le QueueDepth metriche AverageWaitTime e possono indicare quando è necessario modificare la capacità di una coda.

  • Prestazioni dell'algoritmo FleetIQ: per le richieste di posizionamento che utilizzano l'algoritmo FleetIQ, le metriche mostrano la frequenza con cui l'algoritmo trova il posizionamento ideale della sessione di gioco. Il posizionamento può dare la priorità all'utilizzo di risorse con la latenza di gioco più bassa o di risorse con il costo più basso. Esistono anche metriche di errore che identificano i motivi più comuni per cui Amazon non GameLift riesce a trovare un posizionamento ideale. Per ulteriori informazioni sui parametri, consulta Monitora Amazon GameLift con Amazon CloudWatch.

  • Posizionamenti specifici per località: per le code in più sedi, le metriche mostrano i posizionamenti riusciti per località. Per le code che utilizzano l'algoritmo FleetIQ, questi dati forniscono informazioni utili su dove si verifica l'attività dei giocatori.

Nel valutare le metriche per le prestazioni dell'algoritmo FleetIQ, considera i seguenti suggerimenti:

  • Per monitorare il tasso di ricerca di un posizionamento ideale da parte della coda, utilizza la PlacementsSucceeded metrica in combinazione con le metriche FleetIQ per la latenza più bassa e il prezzo più basso.

  • Per aumentare il tasso di ricerca di una posizione ideale da parte di una coda, consulta le seguenti metriche di errore:

    • Se il valore FirstChoiceOutOfCapacity è elevato, regola il ridimensionamento della capacità per le flotte della coda.

    • Se la metrica FirstChoiceNotViable di errore è elevata, esamina le tue flotte di istanze Spot. Le flotte di istanze Spot sono considerate non valide quando il tasso di interruzione per un particolare tipo di istanza è troppo elevato. Per risolvere questo problema, modifica la coda per utilizzare flotte di istanze Spot con diversi tipi di istanze. Ti consigliamo di includere flotte di istanze Spot con diversi tipi di istanze in ciascuna posizione.