View a markdown version of this page

Integra GameLift Server Amazon funzionalità del client di gioco - GameLift Server Amazon

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

Integra GameLift Server Amazon funzionalità del client di gioco

Integra la funzionalità di hosting dei Amazon GameLift Servers giochi in tutti i componenti della soluzione che devono comunicare con il Amazon GameLift Servers servizio, ad esempio per ottenere informazioni sulle sessioni di gioco o creare nuove sessioni di gioco. Nella maggior parte dei casi, questa funzionalità è integrata nel componente del servizio di backend. Aggiungi funzionalità per le attività principali, tra cui:

  • Richiedi informazioni e stato delle sessioni di gioco attive.

  • Riserva uno slot per un nuovo giocatore in una sessione di gioco esistente.

  • Crea una nuova sessione di gioco per un gruppo di giocatori.

  • Richiesta di abbinamento per uno o più giocatori.

  • Fornisci dati aggiornati per le sessioni di gioco esistenti.

client/server Interazioni di gioco con GameLift Server AmazonPer ulteriori dettagli su come i componenti di hosting dei giochi interagiscono tramite gli Amazon GameLift Servers SDK.

Configura il GameLift Server Amazon "Hello, World!"

Aggiungi il AWS SDK per C++ with Amazon GameLift Servers a un progetto.

Aggiungi codice per inizializzare un Amazon GameLift Servers client e memorizzare le impostazioni chiave. Questo codice deve essere eseguito prima di qualsiasi codice dipendente Amazon GameLift Servers da.

  1. Configura una configurazione client. Utilizza la configurazione client predefinita o crea un oggetto di configurazione client personalizzato. Per ulteriori informazioni, vedere AWS::Client::ClientConfiguration (C++) o AmazonGameLiftConfig (C#).

    Una configurazione client specifica una regione e un endpoint di destinazione da utilizzare per il contatto. Amazon GameLift Servers La regione identifica l'insieme di risorse distribuite (flotte, code e matchmakers) da utilizzare. La configurazione predefinita del client imposta la posizione nella regione Stati Uniti orientali (Virginia settentrionale). Per utilizzare qualsiasi altra regione, crea una configurazione personalizzata.

  2. Inizializzare un client Amazon GameLift Servers. Usa Aws:GameLift:: GameLiftClient () (C++) o AmazonGameLiftClient () (C#) con una configurazione client predefinita o una configurazione client personalizzata.

  3. Se utilizzi le sessioni tra giocatori, aggiungi un meccanismo per generare un identificatore univoco per ogni giocatore. Per ulteriori informazioni, consulta Genera giocatore IDs.

  4. Raccogli e archivia le seguenti informazioni:

    • Flotta target: se stai creando manualmente sessioni di gioco su una flotta specifica, fornisci un ID flotta o un ID alias che indichi la flotta bersaglio. Se la flotta è composta da più sedi, specifica l'ubicazione della flotta. Come best practice, utilizza gli alias della flotta in modo da poter cambiare giocatore da una flotta all'altra senza dover aggiornare il servizio di backend.

    • Coda target: per i giochi che utilizzano code con più flotte per inserire nuove sessioni di gioco, specifica il nome della coda a cui inviare le richieste di piazzamento.

    • AWS credenziali: tutte le chiamate a Amazon GameLift Servers devono fornire le credenziali per chi ospita il gioco. Account AWS Puoi acquisire queste credenziali creando un utente giocatore, come descritto in. Configura l'accesso programmatico per il tuo gioco A seconda di come gestisci l'accesso per l'utente giocatore, procedi come segue:

Ottieni sessioni di gioco attive

Aggiungi codice per scoprire le sessioni di gioco disponibili e gestire le impostazioni e i metadati delle sessioni di gioco.

Cerca le sessioni di gioco attive

Usalo SearchGameSessions per ottenere informazioni su una sessione di gioco specifica, su tutte le sessioni attive o sulle sessioni che soddisfano una serie di criteri di ricerca. Questa chiamata restituisce un GameSession oggetto per ogni sessione di gioco attiva che corrisponde alla tua richiesta di ricerca. Questo oggetto contiene il nome DNS, l'indirizzo IP e la porta necessari a un client di gioco per connettersi alla sessione di gioco.

Utilizza i criteri di ricerca per ottenere un elenco filtrato di sessioni di gioco attive a cui possono unirsi i giocatori. Ad esempio, è possibile filtrare le sessioni come segue:

  • Escludi le sessioni di gioco complete:CurrentPlayerSessionCount = MaximumPlayerSessionCount.

  • Scegli le sessioni di gioco in base alla durata della sessione: ValutaCreationTime.

  • Trova le sessioni di gioco in base a una proprietà di gioco personalizzata:gameSessionProperties.gameMode = "brawl".

Gestisci i dati delle sessioni di gioco

Utilizzare una delle operazioni elencate di seguito per recuperare o aggiornare le informazioni sulla sessione di gioco.

- Crea sessioni di gioco

Aggiungere codice per avviare nuove sessioni di gioco nei parchi di istanze distribuite e renderle disponibili ai giocatori. Esistono due opzioni per creare sessioni di gioco, a seconda di come la soluzione di hosting di giochi gestisce i posizionamenti delle sessioni di gioco.

Crea una sessione di gioco con una coda con più sedi

StartGameSessionPlacementUsalo per inserire una richiesta per una nuova sessione di gioco in coda. Per utilizzare questa operazione, crea una coda. Questo determina dove si Amazon GameLift Servers colloca la nuova sessione di gioco. Per ulteriori informazioni sulle code e su come utilizzarle, consulta. Configura il posizionamento delle sessioni di gioco

Quando crei il posizionamento di una sessione di gioco, specifica il nome della coda da utilizzare, il nome della sessione di gioco, il numero massimo di giocatori simultanei e un set opzionale di proprietà di gioco. Puoi anche fornire facoltativamente un elenco di giocatori per partecipare automaticamente alla sessione di gioco. Se includi i dati sulla latenza dei giocatori per le regioni pertinenti, Amazon GameLift Servers utilizza queste informazioni per inserire la nuova sessione di gioco in una flotta che offra l'esperienza di gioco ideale per i giocatori.

Per ottenere misurazioni accurate della latenza, utilizza i Amazon GameLift Servers beacon ping UDP. Questi endpoint consentono di misurare la latenza effettiva della rete UDP tra i dispositivi del lettore e le potenziali sedi di hosting, determinando decisioni di posizionamento più accurate rispetto all'utilizzo dei ping ICMP. Per ulteriori informazioni sull'utilizzo dei ping beacon UDP per misurare la latenza, fare riferimento a. UDP ping beacon

Il posizionamento delle sessioni di gioco è un processo asincrono. Dopo aver inoltrato una richiesta, puoi lasciarla andare a buon fine o scadere. Puoi anche annullare la richiesta in qualsiasi momento utilizzando StopGameSessionPlacement. Per verificare lo stato della tua richiesta di collocamento, chiama DescribeGameSessionPlacement.

Crea una sessione di gioco su una flotta specifica

CreateGameSessionUsalo per creare una nuova sessione su una flotta specificata. Questa operazione sincrona riesce o non riesce a seconda che il parco disponga di risorse disponibili per ospitare una nuova sessione di gioco. Dopo aver Amazon GameLift Servers creato una nuova sessione di gioco e restituito un GameSession oggetto, puoi unirti ai giocatori.

Quando usi questa operazione, fornisci un ID flotta o un alias ID, un nome di sessione e il numero massimo di giocatori simultanei per la partita. In alternativa, è possibile includere un set di proprietà di gioco. Le proprietà del gioco sono definite in una serie di coppie chiave-valore.

Se utilizzi la funzione di protezione Amazon GameLift Servers delle risorse per limitare il numero di sessioni di gioco che un giocatore può creare, fornisci l'ID giocatore dell'autore della sessione di gioco.

Unisci un giocatore a una sessione di gioco

Aggiungi un codice per riservare uno slot per un giocatore in una sessione di gioco attiva e connettere i client di gioco alle sessioni di gioco. Questa azione è disponibile se il gioco utilizza sessioni di giocatore con ID giocatore univoci. Per ulteriori informazioni sulle sessioni dei giocatori, consultaAmazon GameLift Serverse l'esperienza del giocatore.

  1. Riserva un posto per un giocatore in una sessione di gioco

    Per riservare uno slot per un giocatore, crea una sessione di gioco per la sessione di gioco. Ci sono due modi per effettuare questa operazione:

    Una richiesta di sessione di giocatore deve includere un ID giocatore univoco. Per ulteriori informazioni, consulta Genera giocatore IDs. Alla ricezione della richiesta, Amazon GameLift Servers verifica che la sessione di gioco accetti nuovi giocatori e disponga di slot disponibili. In caso di successo, Amazon GameLift Servers riserva uno slot per il giocatore, crea la nuova sessione del giocatore e restituisce un PlayerSession oggetto.

    Una sessione del giocatore può includere una serie di dati personalizzati del giocatore. Questi dati vengono memorizzati nell'oggetto della sessione del giocatore appena creato. Amazon GameLift Serverspassa questo oggetto al server di gioco quando il giocatore si connette direttamente alla sessione di gioco. Quando richiedi sessioni per più giocatori, associa ogni stringa di dati del giocatore a un ID giocatore.

  2. Connettiti a una sessione di gioco

    Aggiungi codice al servizio di backend per recuperare l'PlayerSessionoggetto (ad esempio chiamando DescribePlayerSessions ()) e restituirlo al client di gioco. Questo oggetto contiene il nome DNS, l'indirizzo IP e la porta. Il client di gioco può utilizzare queste informazioni per stabilire una connessione diretta al server.

    • È possibile connettersi utilizzando la porta specificata e il nome DNS o l'indirizzo IP assegnato al processo del server.

    • Se le tue flotte hanno abilitato la generazione di certificati TLS, connettiti utilizzando il nome e la porta DNS.

    • Se il tuo server di gioco convalida le connessioni dei giocatori in entrata, fai riferimento all'ID della sessione del giocatore.

    Dopo aver effettuato la connessione, il client di gioco e il processo del server comunicano direttamente senza coinvolgereAmazon GameLift Servers. Il server mantiene la comunicazione con il giocatore Amazon GameLift Servers per segnalare lo stato della connessione, lo stato di salute e altro ancora.

    Se il server di gioco convalida i giocatori in arrivo, verifica che l'ID della sessione del giocatore corrisponda a uno slot riservato nella sessione di gioco e accetta o nega la connessione del giocatore. Quando il giocatore si disconnette, il processo del server segnala l'interruzione della connessione.

Passa dati di gioco personalizzati a una sessione di gioco

Il tuo client di gioco può trasferire dati a una sessione di gioco. Quando crei una sessione di gioco, puoi includere nella richiesta un set di proprietà di gioco (coppie chiave-valore) o dati della sessione di gioco (valori stringa). Puoi anche aggiornare una sessione di gioco esistente con dati di gioco nuovi o aggiornati. Questi dati vengono trasmessi al processo del server di gioco che ospita la sessione di gioco, per essere utilizzati dal codice del server di gioco. Non puoi eliminare le proprietà del gioco.

Ad esempio, supponiamo che il gioco definisca i livelli di difficoltà: NoviceEasy,Intermediate, eExpert. Un giocatore sceglie di partecipare a una Easy partita. Il tuo client di gioco, tramite il servizio di backend, richiede una nuova sessione di gioco con la seguente proprietà di gioco:. {"Key": "Difficulty", "Value":"Easy"} In risposta, Amazon GameLift Servers richiede a un server di gioco disponibile di iniziare una nuova sessione di gioco e passa l'oggetto. GameSession Il processo del server di gioco utilizza la proprietà di gioco fornita per impostare il livello di difficoltà della sessione di gioco.

Ulteriori informazioni