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à.
Roadmap di sviluppo per l'hosting con Server Amazon GameLift container gestiti
Questa tabella di marcia ti guida nello sviluppo di una soluzione di hosting Amazon GameLift Servers gestito per i tuoi server di gioco containerizzati. I container gestiti sono solo una delle soluzioni di hosting offerte da. Amazon GameLift Servers Per ulteriori informazioni sulle opzioni di hosting, vedereGameLift Server Amazon opzioni di hosting di giochi.
Una soluzione container Amazon GameLift Servers gestita con i seguenti componenti:
-
Un'immagine del contenitore con la build del server di gioco, caricata nel repository privato Amazon Elastic Container Registry (Amazon ECR). La build del server di gioco è integrata con l'SDK del server Amazon GameLift Servers e creata per funzionare su Linux.
-
Un servizio di backend che interagisce con il Amazon GameLift Servers servizio per conto dei tuoi client di gioco. Il servizio di backend utilizza le funzionalità dell'API del servizio perAmazon GameLift Servers, che fa parte dell'SDK. AWS
-
Una coda di sessioni di Amazon GameLift Servers gioco o altro meccanismo di posizionamento che elabora le richieste di nuove sessioni di gioco, cerca i server di gioco disponibili in tutte le flotte e richiede a un server di gioco di avviare una sessione di gioco.
-
(Facoltativo) Un FlexMatch matchmaker per creare partite multigiocatore e organizzare sessioni di gioco per esse.
-
Una o più flotte di container, che utilizzano istanze Amazon Elastic Compute Cloud (Amazon EC2) e sono ottimizzate per l'hosting di giochi multiplayer.
Questa roadmap presenta un percorso semplificato per far funzionare correttamente i server di gioco containerizzati con contenitori gestiti. Amazon GameLift Servers Dopo aver installato i componenti necessari, puoi continuare a iterare sullo sviluppo del gioco e personalizzare la tua soluzione di hosting. Man mano che ti avvicini al lancio, consultali Preparati per il lancio con GameLift Server Amazon hosting per aiutarti a preparare la tua soluzione di hosting per l'utilizzo a livello di produzione.
Velocizza l'onboarding con questi strumenti per container gestiti:
Lo starter kit per container
semplifica l'integrazione e la configurazione della flotta. Aggiunge funzionalità essenziali per la gestione delle sessioni di gioco al server di gioco e utilizza modelli preconfigurati per creare una flotta di container e una pipeline di distribuzione automatica per il server di gioco. Dopo l'implementazione, utilizza la Amazon GameLift Servers console e gli strumenti API per monitorare le prestazioni della flotta, gestire le sessioni di gioco e analizzare le metriche. Per gli sviluppatori di Unreal Engine e Unity, usa i Amazon GameLift Servers plugin
per integrare il tuo server di gioco e creare una flotta di container dall'interno dell'ambiente di sviluppo del tuo motore di gioco. I flussi di lavoro guidati del plugin ti aiutano a creare una soluzione rapida e semplice con hosting basato su cloud utilizzando contenitori gestiti. Puoi basarti su questa base per creare una soluzione di hosting personalizzata per il tuo gioco.
Aggiungi funzionalità al tuo server di gioco in modo che possa comunicare con il Amazon GameLift Servers servizio quando viene distribuito per l'hosting.
-
Scarica l'SDK del server per Amazon GameLift Servers (versione 5.2 o successiva) per il tuo progetto di gioco. L'SDK del server è disponibile in C++, C# e Go. Scarica l'SDK del server per Amazon GameLift Servers
. L'SDK del server è disponibile in C++, C# e Go. -
Modifica il codice del server di gioco per aggiungere la funzionalità SDK del server. Per le linee guida, consulta Prepara un gioco da ospitare con Amazon GameLift Servers. Come minimo, procedi come segue:
-
Aggiungi codice per inizializzare l'Amazon GameLift ServersSDK e stabilire una WebSocket connessione con il Amazon GameLift Servers servizio. Usa l'azione SDK del server.
InitSdk() -
Aggiungi codice da segnalare al Amazon GameLift Servers servizio quando il processo del server è pronto per ospitare sessioni di gioco. Usa l'azione
ProcessReady()SDK del server. -
Implementa le funzioni di callback richieste
OnStartGameSession()e.OnProcessTerminate()Con queste funzioni, i processi del server di gioco possono mantenere una connessione con il Amazon GameLift Servers servizio, avviare una sessione di gioco quando richiesto e rispondere a una richiesta di Amazon GameLift Servers terminazione del processo del server di gioco. -
Aggiungi codice per segnalare al Amazon GameLift Servers servizio quando il processo del server sta terminando una sessione di gioco. Usa l'azione
ProcessEnding()SDK del server.
-
-
Impacchetta la build del tuo server di gioco. Costruisci il tuo server di gioco per funzionare su Linux. Prepara la build e gli altri file necessari per eseguire il server di gioco. Se stai sviluppando su Windows, questo passaggio potrebbe comportare la creazione di uno spazio di lavoro Linux separato o l'utilizzo di uno strumento come Windows Subsystem for Linux (WSL). Avrai bisogno di un ambiente Linux per testare la build del tuo server di gioco e anche per creare e testare le immagini dei contenitori.
-
Metti alla prova l'integrazione del tuo server di gioco. Verifica che il server di gioco integrato sia in grado di connettersi al Amazon GameLift Servers servizio e rispondere alle richieste. Ti consigliamo di configurare una semplice flotta Amazon GameLift Servers Anywhere con una workstation locale come host di prova, come descritto in. Configura i test locali con GameLift Server Amazon Ovunque Installa il tuo server di gioco integrato sull'host di test e avvia un processo server. Usa la AWS CLI per richiedere una nuova sessione di gioco e verifica che il Amazon GameLift Servers servizio richieda correttamente al processo del server di avviare una sessione di gioco.
Dopo aver integrato con successo il server di gioco, crea un'immagine contenitore con il file eseguibile del server di gioco. Archiviala in un repository Amazon Elastic Container Registry (Amazon ECR) per utilizzarla con. Amazon GameLift Servers Per istruzioni dettagliate, vedi Crea un'immagine del contenitore per Amazon GameLift Servers.
-
Ottieni il modello Dockerfile per un contenitore per server di gioco (fornito da). Amazon GameLift Servers Modifica il file per i file di build del tuo server di gioco.
-
Crea un'immagine del contenitore del server di gioco. Lavorando in un ambiente Linux, usa lo strumento Docker per creare la tua immagine.
-
Invia l'immagine del contenitore ad Amazon ECR. Crea un repository pubblico o privato in Amazon ECR, utilizzando lo stesso Account AWS e Regione AWS dove prevedi di distribuire la tua flotta di container. Inserisci l'immagine del tuo container su di esso.
-
Testa le immagini dei container utilizzando la tua flotta Anywhere (opzionale). Potresti voler testare le immagini dei container localmente prima di distribuirle in una flotta di container ospitata nel cloud. Puoi utilizzare la tua flotta Amazon GameLift Servers Anywhere esistente con una workstation locale per i test. Installa ed esegui il contenitore del server di gioco e verifica che: (1) il Amazon GameLift Servers servizio richieda correttamente al processo del server di avviare una sessione di gioco e (2) un client di gioco possa connettersi alla sessione di gioco.
Fino a questo punto hai collaborato con una flotta Anywhere autogestita per testare e iterare i componenti del gioco. Quando disponi di un server di gioco funzionante e integrato perAmazon GameLift Servers, puoi iniziare a configurare la flotta di container Amazon GameLift Servers gestita basata sul cloud per ospitare le risorse di cui avrai bisogno per un ambiente di produzione.
-
Crea definizioni di gruppi di container. Le definizioni dei gruppi di contenitori descrivono l'architettura dei container per una flotta e identificano le immagini dei container da distribuire. Consulta Creare una definizione di gruppo di container per una flotta di Amazon GameLift Servers container. Crea la definizione del tuo gruppo di contenitori nello stesso Regione AWS luogo in cui sono archiviate le immagini del contenitore. Per ulteriori informazioni sulla scelta dell'ubicazione della flotta, consultaPosizioni geografiche. Come minimo, procedi come segue:
-
Crea una definizione di gruppo di contenitori per il server di gioco.
-
Aggiungi una definizione di contenitore con un'immagine del contenitore con la build del tuo server di gioco.
-
Configura un intervallo di porte per i processi del server di gioco del contenitore.
-
-
Crea una flotta di container gestita. Quando crei una flotta, inizia Amazon GameLift Servers immediatamente a distribuire la build del server di gioco per l'hosting. Puoi configurare molti aspetti di una flotta gestita. Per le linee guida, consulta Crea un GameLift Server Amazon flotta di container gestita. Come minimo, procedi come segue:
-
Imposta un ruolo di servizio AWS Identity and Access Management (IAM) per la flotta di container. Consulta Configurare un ruolo di servizio IAM per Amazon GameLift Servers.
-
Specifica la definizione del gruppo di container del server di gioco da distribuire nelle flotte di istanze.
-
Usa i valori predefiniti, se disponibili, per tutti gli altri parametri. Amazon GameLift Serverscalcola alcuni parametri per una configurazione ottimale.
-
-
Aggiungi le flotte di container alla tua coda. Nella coda delle sessioni di gioco, sostituisci la flotta di test Anywhere con la tua flotta di container gestiti.
-
Prova l'hosting del gioco con le tue flotte di container. A questo punto dovresti essere in grado di testare l'intera soluzione. Avvia un client di gioco e richiedi una sessione di gioco tramite il servizio di backend. Ottieni informazioni sulla connessione e connettiti a una sessione di gioco sulla flotta di container.
-
Ripeti le implementazioni della tua flotta. È possibile aggiornare le definizioni dei gruppi di container e le configurazioni della flotta e quindi distribuire gli aggiornamenti alle flotte esistenti.
Crea un modo per consentire al tuo client di gioco di richiedere di partecipare a una sessione di gioco, ottenere informazioni sulla connessione e quindi connettersi direttamente a una sessione di gioco ospitata. L'approccio più comune consiste nell'impostare una funzionalità del servizio di backend che funga da intermediario tra il client di gioco e il servizio. Amazon GameLift Servers Questo approccio protegge le tue risorse di hosting e ti offre un maggiore controllo sul modo in cui i giocatori vengono inseriti nelle sessioni di gioco.
-
Sviluppa funzionalità di servizio di backend per l'hosting. Il servizio di backend comunica con il Amazon GameLift Servers servizio e fornisce le informazioni di connessione a un client di gioco. Questa funzionalità include l'avvio delle sessioni di gioco, l'inserimento dei giocatori nelle partite e il recupero delle informazioni sulle sessioni di gioco. Per le linee guida, consulta Prepara un gioco da ospitare con Amazon GameLift Servers. Come minimo, procedi come segue:
-
Scarica l' AWS SDK per Amazon GameLift Servers e aggiungilo al tuo progetto di servizio di backend. Consulta le risorse Amazon GameLift Servers SDK per i servizi clienti.
-
Aggiungi codice per inizializzare un Amazon GameLift Servers client e memorizzare le impostazioni chiave. Consulta Configura il GameLift Server Amazon "Hello, World!".
-
Aggiungi funzionalità per richiamare l'azione AWS SDK
CreateGameSession()e fornire informazioni sulla connessione della sessione di gioco a un client di gioco. Vedi Creare una sessione di gioco su una flotta specifica.CreateGameSession()La chiamata è un comodo punto di partenza per richiedere nuove sessioni di gioco. Dopo aver implementato un sistema di posizionamento delle sessioni di gioco (vedi il passaggio 3), sostituirai questo codice con una chiamata aStartGameSessionPlacement()(oStartMatchmaking()se lo stai utilizzandoFlexMatch).Per indicazioni sulla progettazione del servizio di backend, consulta. Crea un servizio di backend per GameLift Server Amazon
-
-
Aggiungi funzionalità al tuo client di gioco che consentano ai giocatori di partecipare a una sessione di gioco ospitata. Il client di gioco effettua richieste al tuo servizio di backend, non direttamente aAmazon GameLift Servers. Dopo che il servizio di backend ha fornito le informazioni di connessione alla sessione di gioco, il client di gioco si connette direttamente alla sessione di gioco per giocare.
-
Metti alla prova l'integrazione del tuo client di gioco. Puoi utilizzare la tua flotta Amazon GameLift Servers Anywhere esistente con una workstation locale per i test. Usa il nuovo servizio di backend per richiedere una nuova sessione di gioco e verifica che: (1) il Amazon GameLift Servers servizio richieda correttamente al processo del server di avviare una sessione di gioco e (2) un client di gioco possa connettersi alla sessione di gioco.
Personalizza il modo in cui desideri Amazon GameLift Servers elaborare le richieste per una nuova sessione di gioco e individua i server di gioco disponibili per ospitarle. Amazon GameLift Serversmonitora automaticamente la disponibilità di tutti i server di gioco su tutte le flotte. Quando un client di gioco invia una richiesta di partecipazione a una sessione di gioco, Amazon GameLift Servers cerca il posizionamento «migliore possibile» in base a una serie di priorità definite come latenza minima, costo e disponibilità.
-
Crea una coda per le sessioni di gioco per inserire una nuova sessione di gioco sui server di gioco disponibili. Le code sono il meccanismo principale per il posizionamento delle sessioni di gioco. Per le linee guida, consulta Crea una coda per le sessioni di gioco.
-
Come minimo, aggiungi le tue flotte Anywhere come destinazioni in coda. Tutte le altre impostazioni sono personalizzazioni opzionali.
-
-
Nel codice del servizio di backend, converti la
CreateGameSession()chiamata in.StartGameSessionPlacement()Vedi Creare una sessione di gioco in una coda con più sedi. -
Crea un meccanismo per notificare a un cliente di gioco quando una sessione di gioco è pronta per partecipare. Durante lo sviluppo, puoi verificare lo stato della sessione di gioco utilizzando una chiamata a
DescribeGameSessionPlacement. Prima di utilizzare una coda per elaborare volumi elevati, tuttavia, devi abilitare le notifiche degli eventi. Consulta Imposta la notifica degli eventi per il posizionamento della sessione di gioco. -
Aggiungi FlexMatch matchmaking (opzionale). Crea un set di regole di matchmaking e crea una configurazione di matchmaking per funzionare con la coda delle sessioni di gioco. Per indicazioni sulla configurazione di un sistema di matchmaking, consulta la guida per gli sviluppatori. Amazon GameLift ServersFlexMatch
-
Prova il sistema di posizionamento. Puoi utilizzare la tua flotta Amazon GameLift Servers Anywhere esistente con una workstation locale per i test. Utilizza il servizio di backend per richiedere una nuova sessione di gioco e verifica che il Amazon GameLift Servers servizio richieda correttamente al processo del server di avviare una sessione di gioco.
Mentre ti prepari per il lancio del gioco, dovrai ottimizzare le tue risorse di hosting gestito. Alcune delle decisioni da prendere in considerazione includono:
-
Ottimizza la configurazione della tua flotta di container. Consulta Personalizza un GameLift Server Amazon flotta di container.
Prendi in considerazione l'aggiunta di flotte Spot per risparmiare sui costi. Consulta Riduci i costi di hosting dei giochi con le flotte Spot.
-
Se il tuo server di gioco deve comunicare con altre AWS risorse, configura i ruoli IAM per gestire l'accesso. Consulta Collega il tuo GameLift Server Amazon server di gioco ospitato su altro AWS risorse.
Determina dove geograficamente desideri posizionare i server di gioco. Aggiungi sedi remote alle tue flotte gestite. Consulta Personalizzazioni delle risorse di hosting.
Sperimenta con le opzioni di posizionamento delle sessioni di gioco per le flotte gestite, inclusa la personalizzazione delle impostazioni di priorità. Consulta Personalizza una coda di sessioni di gioco.
-
Imposta il ridimensionamento automatico della capacità per soddisfare la domanda prevista dei giocatori. Consulta Scalabilità della capacità di hosting di giochi con Amazon GameLift Servers.
-
Crea diverse flotte Regioni AWS e modifica le code e il ridimensionamento automatico per gestire i failover in base alle necessità.
-
Configura gli strumenti di osservabilità dell'hosting, tra cui analisi e registrazione. Consulta Monitoraggio GameLift Server Amazon.
-
Automatizza le implementazioni della tua flotta utilizzando Infrastructure as code (IaC). Consulta Manage (Gestione) GameLift Server Amazon risorse di hosting utilizzando CloudFormation.
Amazon GameLift Serverssupporta l'uso di AWS CloudFormation modelli per qualsiasi configurazione specifica dell'implementazione. Puoi anche usare il per definire le tue risorse Kit di sviluppo per il cloud AWS (AWS CDK) . Amazon GameLift Servers Per ulteriori informazioni su AWS CDK, consulta la Guida per Kit di sviluppo per il cloud AWS (AWS CDK) gli sviluppatori.
Per gestire l'implementazione dei tuoi CloudFormation stack, ti consigliamo di utilizzare strumenti e servizi di integrazione continua e distribuzione continua (CI/CD) come. AWS CodePipeline Questi strumenti ti aiutano a implementarli automaticamente o con approvazione ogni volta che crei un file binario per server di gioco. Con CI/CD uno strumento o un servizio, la distribuzione delle risorse per una nuova versione del server di gioco può essere simile a questa:
-
Crea e testa il file binario del tuo server di gioco.
-
Carica il file binario suAmazon GameLift Servers.
-
Distribuisci nuove flotte con la nuova build.
-
Aggiungi le nuove flotte alla coda delle sessioni di gioco e rimuovi le flotte con la versione build precedente.
-
Quando le flotte con la build precedente non ospitano più sessioni di gioco attive, elimina le pile di quelle flotte. CloudFormation
-