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à.
Aggiungi Amazon GameLift al tuo client di gioco
Integra Amazon GameLift nei componenti di gioco che richiedono informazioni sulla sessione di gioco, crea nuove sessioni di gioco e aggiungi giocatori ai giochi. A seconda dell'architettura di gioco, questa funzionalità si trova nei servizi di backend che gestiscono attività come l'autenticazione dei giocatori, il matchmaking o il posizionamento delle sessioni di gioco.
Nota
Per informazioni dettagliate su come configurare il matchmaking per il tuo gioco GameLift ospitato su Amazon, consulta la Amazon GameLift FlexMatch Developer Guide.
Configura Amazon GameLift su un servizio di backend
Aggiungi codice per inizializzare un GameLift client Amazon e memorizzare le impostazioni chiave. Questo codice deve essere eseguito prima di qualsiasi codice dipendente da Amazon GameLift.
-
Imposta una configurazione client. Utilizza la configurazione client predefinita o crea un oggetto di configurazione client personalizzato. Per ulteriori informazioni, consulta AWS::Client::ClientConfiguration
(C++) o AmazonGameLiftConfig(C#). Una configurazione client specifica una regione e un endpoint di destinazione da utilizzare quando si contatta Amazon. GameLift La regione identifica l'insieme di risorse distribuite (flotte, code e matchmaker) da utilizzare. La configurazione client predefinita imposta la posizione nella regione Stati Uniti orientali (Virginia settentrionale). Per utilizzare qualsiasi altra regione, crea una configurazione personalizzata.
-
Inizializza un GameLift client Amazon. Usa Aws::GameLift: GameLiftClient ()
(C++) o AmazonGameLiftClient() (C#) con una configurazione client predefinita o una configurazione client personalizzata. -
Aggiungi un meccanismo per generare un identificatore univoco per ogni giocatore. Per ulteriori informazioni, consulta Genera gli ID dei giocatori.
-
Raccogli e archivia le seguenti informazioni:
-
Flotta target: molte GameLift API richieste Amazon devono specificare una flotta. A tale scopo, utilizza un ID flotta o un ID alias che punti alla flotta di destinazione. Come best practice, utilizza gli alias della flotta in modo da poter spostare i giocatori da una flotta all'altra senza dover aggiornare i servizi di backend.
-
Coda di destinazione: per i giochi che utilizzano code con più flotte per effettuare nuove sessioni di gioco, specifica il nome della coda da utilizzare.
-
AWS credenziali: tutte le chiamate ad Amazon GameLift devono fornire le credenziali per Account AWS l'host del gioco. Acquisisci 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:
-
Se utilizzi un ruolo per gestire le autorizzazioni degli utenti dei giocatori, aggiungi il codice per assumere il ruolo prima di chiamare un Amazon GameLift API. La richiesta di assunzione del ruolo restituisce una serie di credenziali di sicurezza temporanee. Per ulteriori informazioni, consulta Switching to an IAM role (AWS API) nella Guida per l'IAMutente.
-
Se disponi di credenziali di sicurezza a lungo termine, configura il codice per individuare e utilizzare le credenziali archiviate. Vedi Autenticazione tramite credenziali a lungo termine nella Guida di riferimento agli strumenti AWS SDKse strumenti. Per informazioni sulla memorizzazione delle credenziali, consultate i AWS API riferimenti per (C++) e (
. NET). -
Se disponi di credenziali di sicurezza temporanee, aggiungi codice per aggiornare regolarmente le credenziali utilizzando AWS Security Token Service (AWS STS), come descritto in Utilizzo delle credenziali di sicurezza temporanee con la AWS SDKs nella Guida per l'utente. IAM Il codice deve richiedere nuove credenziali prima della scadenza di quelle precedenti.
-
-
Ottieni sessioni di gioco
Aggiungi codice per scoprire le sessioni di gioco disponibili e gestire le impostazioni e i metadati delle sessioni di gioco.
Cerca sessioni di gioco attive
Consente SearchGameSessionsdi 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 GameSessionoggetto per ogni sessione di gioco attiva che corrisponde alla richiesta di ricerca.
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: Valuta
CreationTime
. -
Trova sessioni di gioco in base a una proprietà di gioco personalizzata:
gameSessionProperties.gameMode = "brawl"
.
Gestisci le sessioni di gioco
Utilizzare una delle operazioni elencate di seguito per recuperare o aggiornare le informazioni sulla sessione di gioco.
-
DescribeGameSessionDetails() — Visualizza lo stato di protezione di una sessione di gioco oltre alle informazioni sulla sessione di gioco.
-
UpdateGameSession() — Modifica i metadati e le impostazioni di una sessione di gioco in base alle esigenze.
-
GetGameSessionLogUrl— Accedi ai registri delle sessioni di gioco memorizzati.
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 che tu stia distribuendo il gioco in più Regioni AWS o in una singola regione.
Crea una sessione di gioco in una coda con più sedi
Si usa StartGameSessionPlacementper inserire una richiesta per una nuova sessione di gioco in una coda. Per utilizzare questa operazione, crea una coda. Ciò determina dove Amazon GameLift colloca la nuova sessione di gioco. Per ulteriori informazioni sulle code e su come utilizzarle, consultaGestione del posizionamento delle sessioni di gioco con Amazon GameLift queues.
Quando crei un posizionamento per una sessione di gioco, specifica il nome della coda da utilizzare, un nome per la sessione di gioco, un numero massimo di giocatori simultanei e un set opzionale di proprietà del gioco. Facoltativamente, puoi anche fornire un elenco di giocatori a cui partecipare automaticamente alla sessione di gioco. Se includi i dati sulla latenza dei giocatori per le regioni pertinenti, Amazon GameLift utilizza queste informazioni per collocare la nuova sessione di gioco su una flotta che offre l'esperienza di gioco ideale per i giocatori.
Il posizionamento delle sessioni di gioco è un processo asincrono. Dopo aver effettuato 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
Usa CreateGameSessionper 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 che Amazon ha GameLift creato la nuova sessione di gioco e GameSessionrestituito un oggetto, puoi unirvi altri giocatori.
Quando utilizzi questa operazione, fornisci un ID flotta o un ID alias, un nome di sessione e il numero massimo di giocatori simultanei per il gioco. 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 GameLift delle risorse di Amazon per limitare il numero di sessioni di gioco che un giocatore può creare, fornisci l'ID giocatore del creatore della sessione di gioco.
Unisciti a un giocatore a una sessione di gioco
Aggiungi codice per riservare uno slot per giocatore in una sessione di gioco attiva e connettere i client di gioco alle sessioni di gioco.
-
Riserva uno slot per giocatori in una sessione di gioco
Per prenotare uno slot del giocatore, creare una nuova sessione del giocatore per la sessione di gioco. Per ulteriori informazioni sulle sessioni con i giocatori, consultaCome i giocatori si connettono ai giochi.
Esistono due modi per creare nuove sessioni con i giocatori:
-
StartGameSessionPlacementUtilizzalo per riservare slot per uno o più giocatori nella nuova sessione di gioco.
-
Riserva gli slot per uno o più giocatori utilizzando CreatePlayerSessiono CreatePlayerSessionscon un ID di sessione di gioco.
Amazon verifica GameLift innanzitutto che la sessione di gioco accetti nuovi giocatori e che disponga di slot per giocatori. In caso di successo, Amazon GameLift riserva uno slot per il giocatore, crea la nuova sessione giocatore e restituisce un PlayerSessionoggetto. Questo oggetto contiene il DNS nome, l'indirizzo IP e la porta di cui un client di gioco ha bisogno per connettersi alla sessione di gioco.
La richiesta della sessione di un giocatore deve includere un ID univoco per ogni giocatore. Per ulteriori informazioni, consulta Genera gli ID dei giocatori.
Una sessione di gioco può includere una serie di dati personalizzati del giocatore. Questi dati vengono memorizzati nell'oggetto della sessione del giocatore appena creato, che puoi recuperare chiamando DescribePlayerSessions(). Amazon passa questo oggetto GameLift anche al server di gioco quando il giocatore si connette direttamente alla sessione di gioco. Quando richiedi sessioni con più giocatori, fornisci una stringa di dati per ogni giocatore mappata all'ID giocatore indicato nella richiesta.
-
-
Connect a una sessione di gioco
Aggiungere codice al client di gioco per recuperare l'oggetto
PlayerSession
che contiene le informazioni di connessione della sessione di gioco. Usa queste informazioni per stabilire una connessione diretta al server.-
È possibile connettersi utilizzando la porta specificata e il DNS nome o l'indirizzo IP assegnato al processo del server.
-
Se le tue flotte hanno abilitato la generazione di TLS certificati, connettiti utilizzando il DNS nome e la porta.
-
Se il 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 coinvolgere Amazon GameLift. Il server mantiene la comunicazione con Amazon GameLift per segnalare lo stato della connessione del giocatore, 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.
-
Usa le proprietà della sessione di gioco
Il client di gioco può trasferire dati a una sessione di gioco utilizzando una proprietà di gioco. Le proprietà del gioco sono coppie chiave-valore che il server di gioco può aggiungere, leggere, elencare e modificare. Puoi trasmettere una proprietà di gioco quando crei una nuova sessione di gioco o successivamente quando la sessione di gioco è attiva. Una sessione di gioco può contenere fino a 16 proprietà del gioco. Non puoi eliminare le proprietà del gioco.
Ad esempio, il gioco offre i seguenti livelli di difficoltà: Novice
Easy
,Intermediate
, eExpert
. Un giocatore sceglie e Easy
poi inizia la partita. Il tuo client di gioco richiede una nuova sessione di gioco GameLift da Amazon utilizzando una delle due CreateGameSession
opzioni StartGameSessionPlacement
o come spiegato nelle sezioni precedenti. Nella richiesta, il client passa questo:{"Key": "Difficulty", "Value":"Easy"}
.
In risposta alla richiesta, Amazon GameLift crea un GameSession
oggetto che contiene la proprietà di gioco specificata. Amazon ordina GameLift quindi a un server di gioco disponibile di avviare la nuova sessione di gioco e passa l'GameSession
oggetto. Il server di gioco avvia una sessione di gioco con un Difficulty
diEasy
.