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 Amazon GameLift Servers 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à è disponibile 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, consulta il Amazon GameLift Servers FlexMatch Guida per gli sviluppatori.
Configurazione Amazon GameLift Servers su un servizio di backend
Aggiungi codice per inizializzare un Amazon GameLift Servers client e archivia le impostazioni chiave. Questo codice deve essere eseguito prima di qualsiasi codice dipendente da Amazon GameLift Servers.
-
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 per contattare Amazon GameLift Servers. 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 Amazon GameLift Servers cliente. 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 giocatore IDs.
-
Raccogli e archivia le seguenti informazioni:
-
Flotta bersaglio: molte Amazon GameLift Servers Le richieste API devono specificare una flotta. A tale scopo, utilizza un ID flotta o un ID alias che punti al parco veicoli 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 a Amazon GameLift Servers deve fornire le credenziali per Account AWS l'host del gioco. L'utente acquisisce 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 utente del giocatore, aggiungi il codice per assumere il ruolo prima di chiamare un Amazon GameLift Servers API. La richiesta di assumere il ruolo restituisce una serie di credenziali di sicurezza temporanee. Per ulteriori informazioni, consulta Switching to an IAM role (AWS API) nella IAM User Guide.
-
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 SDKs e strumenti. Per informazioni sulla memorizzazione delle credenziali, consulta i riferimenti AWS API per (C++) e (.NET)
. -
Se disponi di credenziali di sicurezza temporanee, aggiungi il codice per aggiornare regolarmente le credenziali utilizzando AWS Security Token Service (AWS STS), come descritto in Utilizzo delle credenziali di sicurezza temporanee con la Guida per l' AWS SDKsutente 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. Questo determina dove Amazon GameLift Servers posiziona la nuova sessione di gioco. Per ulteriori informazioni sulle code e su come utilizzarle, consultaGestione del posizionamento delle sessioni di gioco con Amazon GameLift Servers code.
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, allora Amazon GameLift Servers 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 Amazon GameLift Servers crea una nuova sessione di gioco e restituisce un GameSessionoggetto, puoi unirvi altri giocatori.
Quando usi questa operazione, fornisci un ID flotta o un ID alias, 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 il plugin Amazon GameLift Servers funzionalità di protezione delle risorse per limitare il numero di sessioni di gioco che un giocatore può creare, quindi fornire l'ID giocatore del creatore della sessione di gioco.
Unisci 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 GameLift Servers verifica innanzitutto che la sessione di gioco accetti nuovi giocatori e che siano disponibili degli slot per giocatori. In caso di successo, Amazon GameLift Servers riserva uno slot per il giocatore, crea la nuova sessione del giocatore e restituisce un PlayerSessionoggetto. Questo oggetto contiene il nome DNS, 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 giocatore IDs.
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 GameLift Servers passa questo oggetto 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 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 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 server comunicano direttamente senza coinvolgere Amazon GameLift Servers. Il server mantiene la comunicazione con Amazon GameLift Servers 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 da Amazon GameLift Servers 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 Servers crea un GameSession
oggetto che contiene la proprietà di gioco specificata. Amazon GameLift Servers quindi ordina 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
.