Interazioni GameLift tra Amazon e il server client 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à.

Interazioni GameLift tra Amazon e il server client di gioco

Questo argomento descrive le interazioni tra il client di gioco, un servizio di backend, un server di gioco e AmazonGameLift.

Il diagramma seguente illustra le interazioni tra il client di gioco, il servizio di backend, Amazon GameLift SDK, il server di gioco EC2 gestito, l'SDK del server Amazon e AmazonGameLift. GameLift Per una descrizione dettagliata delle interazioni mostrate, consulta le sezioni seguenti di questa pagina.

Interazioni client/server di gioco per i casi d'uso elencati nelle sezioni seguenti.

Inizializza un server di gioco

I passaggi seguenti descrivono le interazioni che si verificano quando prepari il server di gioco per ospitare sessioni di gioco.

  1. Amazon GameLift lancia il server eseguibile su un'istanza Amazon Elastic Compute Cloud (Amazon EC2).

  2. Il server di gioco chiama:

    1. InitSDK() per inizializzare l'SDK del server.

    2. ProcessReady()per comunicare la disponibilità della sessione di gioco, le informazioni sulla connessione e la posizione dei file di registro delle sessioni di gioco.

    Il processo del server attende quindi una richiamata da Amazon. GameLift

  3. Amazon GameLift aggiorna lo stato del processo del server per ACTIVE abilitare il posizionamento delle sessioni di gioco.

  4. Amazon GameLift inizia a chiamare il onHealthCheck callback e continua a chiamarlo periodicamente mentre il processo del server è attivo. Il processo del server può segnalare lo stato di integrità o meno entro un minuto.

Creare una sessione di gioco

Dopo aver inizializzato il server di gioco, quando crei sessioni di gioco per ospitare i tuoi giocatori si verificano le seguenti interazioni.

  1. Il servizio di backend richiama l'operazione SDK. StartGameSessionPlacement()

  2. Amazon GameLift crea un nuovo GameSessionPlacement ticket con status PENDING e lo restituisce al servizio di backend.

  3. Il servizio di backend ottiene lo stato di un ticket di collocamento da una coda. Per ulteriori informazioni, consulta Imposta la notifica degli eventi per il posizionamento della sessione di gioco.

  4. Amazon GameLift avvia il posizionamento delle sessioni di gioco selezionando una flotta appropriata e cercando un processo server attivo in una flotta con sessioni di 0 gioco. Quando Amazon GameLift individua un processo server, Amazon GameLift effettua le seguenti operazioni:

    1. Crea un GameSession oggetto con le impostazioni della sessione di gioco e i dati del giocatore dalla richiesta di piazzamento con uno ACTIVATING stato.

    2. Richiama il onStartGameSession callback sul processo del server. Amazon GameLift trasmette informazioni all'GameSessionoggetto indicando che il processo del server può configurare la sessione di gioco.

    3. Cambia il numero di sessioni di gioco del processo server in1.

  5. Il processo del server esegue la funzione di onStartGameSession callback. Quando il processo del server è pronto ad accettare le connessioni dei giocatori, chiama ActivateGameSession() e attende le connessioni dei giocatori.

  6. Amazon GameLift aggiorna l'GameSessionoggetto con le informazioni di connessione per il processo del server. (Queste informazioni includono l'impostazione della porta che è stata segnalata conProcessReady().) Amazon modifica GameLift anche lo stato inACTIVE.

  7. Il servizio di backend chiama DescribeGameSessionPlacement() per rilevare lo stato aggiornato del ticket. Il servizio di backend utilizza quindi le informazioni di connessione per connettere il client di gioco al processo del server e partecipare alla sessione di gioco.

Aggiungere un giocatore a una partita

Questa sequenza descrive il processo di aggiunta di un giocatore a una sessione di gioco esistente. Le sessioni dei giocatori possono anche essere richieste come parte di una richiesta di collocamento di una sessione di gioco.

  1. Il servizio di backend richiama l'operazione API del client CreatePlayerSession() con un ID di sessione di gioco.

  2. Amazon GameLift verifica lo stato della sessione di gioco (deve essereACTIVE) e cerca uno slot per giocatori aperto nella sessione di gioco. Se è disponibile uno slot, Amazon GameLift effettua le seguenti operazioni:

    1. Crea un nuovo PlayerSession oggetto e imposta lo stato suRESERVED.

    2. Risponde alla richiesta del servizio di backend con l'oggetto. PlayerSession

  3. Il servizio di backend collega il client di gioco direttamente al processo del server con l'ID della sessione del giocatore.

  4. Il server chiama l'operazione API del server AcceptPlayerSession() per convalidare l'ID della sessione del giocatore. Se convalidato, Amazon GameLift passa l'PlayerSessionoggetto al processo del server. Il processo server accetta o rifiuta la connessione.

  5. Amazon GameLift effettua una delle seguenti operazioni:

    1. Se la connessione è accettata, Amazon GameLift imposta lo PlayerSession stato suACTIVE.

    2. Se non viene ricevuta alcuna risposta entro 60 secondi dalla CreatePlayerSession() chiamata originale del server backend, Amazon GameLift modifica lo PlayerSession stato TIMEDOUT e riapre lo slot del giocatore nella sessione di gioco.

Rimuovi un giocatore

Quando si rimuovono giocatori da una sessione di gioco per creare spazio per la partecipazione di nuovi giocatori, si verificano le seguenti interazioni.

  1. Un giocatore si disconnette dal gioco.

  2. Il server rileva la connessione persa e richiama l'operazione RemovePlayerSession() API del server.

  3. Amazon GameLift modifica lo PlayerSession stato COMPLETED e riapre lo slot del giocatore nella sessione di gioco.

Chiudi la sessione di gioco

Questa sequenza di interazioni si verifica quando un processo del server interrompe la sessione di gioco corrente.

  1. Il server chiude la sessione di gioco e il server.

  2. Il server chiama ProcessEnding() AmazonGameLift.

  3. Amazon GameLift fa quanto segue:

    1. Carica i registri delle sessioni di gioco su Amazon Simple Storage Service (Amazon S3).

    2. Cambia lo GameSession stato inTERMINATED.

    3. Cambia lo stato del processo del server inTERMINATED.

    4. Ricicla le risorse delle istanze.