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 la funzionalità del client di Amazon GameLift Servers 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 lo 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.
Vedi Interazioni client/server di gioco con Amazon GameLift Servers per ulteriori dettagli su come i componenti di hosting dei giochi interagiscono tramite Amazon GameLift Servers SDKs.
Configura l'Amazon GameLift ServersAPI
Aggiungi il AWS SDK per C++ con 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.
-
Imposta 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 i contatti. 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.
-
Inizializzare un client Amazon GameLift Servers. Usa Aws:GameLift:: GameLiftClient ()
(C++) o AmazonGameLiftClient() (C#) con una configurazione client predefinita o una configurazione client personalizzata. -
Se utilizzi sessioni di gioco, 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: se stai creando manualmente sessioni di gioco su una flotta specifica, fornisci un ID flotta o un ID alias che punti alla flotta bersaglio. Se la flotta è composta da più sedi, specifica un'ubicazione della flotta. Come best practice, utilizza gli alias della flotta in modo da poter passare i giocatori da una flotta all'altra senza dover aggiornare il servizio 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 a cui inviare le richieste di posizionamento.
-
AWS credenziali: tutte le chiamate Amazon GameLift Servers devono fornire le credenziali dell'host del gioco. Account AWS È possibile 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:
-
Se utilizzi un ruolo per gestire le autorizzazioni utente del giocatore, aggiungi il codice per assumere il ruolo prima di chiamare un'Amazon GameLift ServersAPI. 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 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 attive
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. 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.
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 i dati delle 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 di come la soluzione di hosting di giochi gestisce i posizionamenti delle sessioni di gioco.
Crea una sessione di gioco con una coda in 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 colloca la nuova sessione di gioco. Per ulteriori informazioni sulle code e su come utilizzarle, consultaConfigura il posizionamento delle sessioni di gioco.
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 Servers utilizza queste informazioni per collocare la nuova sessione di gioco su una flotta che offra l'esperienza di gioco ideale per i giocatori.
Per ottenere misurazioni accurate della latenza, utilizza i beacon Amazon GameLift Servers di ping UDP. Questi endpoint consentono di misurare l'effettiva latenza della rete UDP tra i dispositivi dei giocatori e le potenziali sedi di hosting, con il risultato di decisioni di posizionamento più accurate rispetto all'utilizzo dei ping ICMP. Per ulteriori informazioni sull'utilizzo dei beacon ping UDP per misurare la latenza, fare riferimento a. Fari di ping UDP
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 aver Amazon GameLift Servers creato la nuova sessione di gioco e aver GameSessionrestituito un oggetto, 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 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 funzionalità di protezione Amazon GameLift Servers delle risorse 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. Questa azione è disponibile se il gioco utilizza sessioni di gioco con un solo giocatore IDs. Per ulteriori informazioni sulle sessioni dei giocatori, consultaAmazon GameLift Serverse l'esperienza del giocatore.
-
Riserva uno slot per giocatore in una sessione di gioco
Per riservare uno slot, crea una sessione giocatore per la sessione di gioco. Ci sono due modi per effettuare questa operazione:
-
Se utilizzi StartGameSessionPlacemento vuoi StartMatchmakingcreare una sessione di gioco, puoi includere uno o più giocatori nella richiesta di creare sessioni di gioco per loro nella nuova sessione di gioco.
-
Per aggiungere giocatori a una sessione di gioco esistente, chiama CreatePlayerSessiono CreatePlayerSessionscon un ID di sessione di gioco.
Una richiesta di sessione utente deve includere un ID giocatore univoco. Per ulteriori informazioni, consulta Genera giocatore IDs. Dopo aver ricevuto la richiesta, Amazon GameLift Servers verifica che la sessione di gioco accetti nuovi giocatori e che siano disponibili slot per giocatori. In caso di successo, Amazon GameLift Servers riserva uno slot per il giocatore, crea la nuova sessione di gioco e restituisce un PlayerSessionoggetto.
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. Amazon GameLift Serverspassa questo oggetto al server di gioco quando il giocatore si connette direttamente alla sessione di gioco. Quando richiedi sessioni con più giocatori, associa ogni stringa di dati del giocatore a un ID giocatore.
-
-
Connect a una sessione di gioco
Aggiungi codice al servizio di backend per recuperare l'
PlayerSessionoggetto (ad esempio chiamando DescribePlayerSessions()) e passalo nuovamente 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 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 cui 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.
-
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 avviare 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.