Roadmap di sviluppo per l'hosting GameLift gestito da Amazon - Amazon GameLift

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 GameLift gestito da Amazon

Questa tabella di marcia ti guida nello sviluppo di una soluzione di hosting GameLift gestito da Amazon per il tuo gioco multiplayer. Amazon GameLift offre diverse opzioni di hosting di giochi; per ulteriori informazioni su queste opzioni, consulta GameLift Soluzioni Amazon.

Con l'hosting GameLift gestito da Amazon, il tuo server di gioco è ospitato su risorse Cloud AWS informatiche virtuali di GameLift proprietà di Amazon e gestite in base alla tua configurazione. Ottieni la sicurezza, l'affidabilità e la disponibilità globale delle istanze Amazon Elastic Compute Cloud (AmazonEC2) ulteriormente ottimizzate per l'uso con l'hosting di giochi multiplayer. Amazon GameLift semplifica la gestione dell'hosting con strumenti come l'implementazione automatica dei server, la gestione del ciclo di vita e l'auto-scaling della capacità.

Una soluzione GameLift gestita da Amazon è composta dai seguenti componenti:

  • Una o più flotte GameLift gestite da Amazon, che utilizzano istanze Amazon Elastic Compute Cloud EC2 (Amazon) ottimizzate per l'hosting di giochi multiplayer.

  • Una versione di server di gioco, integrata con il GameLift server AmazonSDK, da distribuire su tutte le flotte.

  • Un client di gioco e un servizio di backend, integrato con AWS SDK, per interagire con il GameLift servizio Amazon e richiedere sessioni di gioco.

  • Una GameLift coda Amazon per effettuare nuove sessioni di gioco con server di gioco disponibili su tutte le flotte.

  • (Facoltativo) Un FlexMatch matchmaker per creare partite multigiocatore e impostare sessioni di gioco per esse.

Questa tabella di marcia presenta un percorso semplificato per rendere operativo con successo il tuo gioco multiplayer con l'hosting GameLift gestito di Amazon. Dopo aver installato i componenti necessari, puoi continuare a sviluppare giochi e personalizzare la tua soluzione di hosting. Man mano che ti avvicini al lancio, consulta questi articoli Preparazione del gioco per il lancio con l' GameLift hosting Amazon per aiutarti a preparare la tua soluzione di hosting per l'utilizzo a livello di produzione.

Inizia subito con il GameLift plugin Amazon

Se stai sviluppando progetti con Unreal Engine o Unity, inizia a configurare il gioco per l'hosting con il GameLift plug-in Amazon. Con il plug-in, puoi aggiungere Amazon GameLift SDKs al tuo progetto di gioco e utilizzare i flussi di lavoro guidati per creare una versione funzionante semplice di una soluzione di hosting GameLift gestito da Amazon. Puoi quindi utilizzare questi principi fondamentali per svilupparli e personalizzarli secondo necessità.

Aggiungi funzionalità al tuo server di gioco in modo che possa comunicare con il GameLift servizio Amazon quando viene distribuito per l'hosting.

  • Ottieni il GameLift server Amazon SDK (versione 5.x) per il tuo progetto di gioco. Il server SDK è disponibile in C++, C# e Go. Scarica un GameLift server Amazon SDK.

  • Modifica il codice del server di gioco per aggiungere SDK funzionalità al server. Per le linee guida, consulta Integra giochi con server di gioco personalizzati. Come minimo, procedi come segue:

    • Aggiungi codice per inizializzare Amazon GameLift SDK e stabilire una WebSocket connessione con il GameLift servizio Amazon. Usa l'SDKazione InitSdk() del server.

    • Aggiungi codice per segnalare al GameLift servizio Amazon quando il processo del server è pronto per ospitare sessioni di gioco. Usa l'SDKazione del serverProcessReady().

    • Implementa le funzioni OnRefreshConnection() di callback richieste OnProcessTerminate() eOnStartGameSession(). Con queste funzioni, i processi del server di gioco possono mantenere una connessione con il GameLift servizio Amazon, avviare una sessione di gioco quando richiesto da Amazon GameLift e rispondere alla richiesta di terminare il processo del server di gioco.

    • Aggiungi codice per segnalare al GameLift servizio Amazon quando il processo del server termina una sessione di gioco. Usa l'SDKazione del serverProcessEnding().

  • Package della build del tuo server di gioco. Crea uno script di installazione con i tuoi file di build, le dipendenze e il software di supporto. Per informazioni, consulta Creare un pacchetto dei file della build di gioco. Ti consigliamo di utilizzare un bucket Amazon Simple Storage Service (Amazon S3) per archiviare le versioni della build del gioco.

  • Testa la tua integrazione con i server di gioco. Per questa attività, ti consigliamo di configurare un Amazon GameLift Anywhere flotta per una workstation locale, come descritto inConfigura test locali con Amazon GameLift Anywhere. Per questo passaggio, installa manualmente la build del server di gioco sul dispositivo di prova e avvia un processo server. Usa il AWS CLI per richiedere una nuova sessione di gioco e verifica che il GameLift servizio Amazon richieda correttamente al processo del server di avviare una sessione di gioco.

Crea un modo per consentire al client di gioco di richiedere di partecipare a una sessione di gioco, ottenere informazioni di connessione e quindi connettersi direttamente a una sessione di gioco ospitata. L'approccio più comune consiste nel configurare la funzionalità del servizio di backend che funga da intermediario tra il client di gioco e il servizio Amazon. GameLift 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 GameLift servizio Amazon e fornisce informazioni di connessione a un client di gioco. Questa funzionalità include l'avvio di sessioni di gioco, l'inserimento di giocatori in partite e il recupero delle informazioni sulla sessione di gioco. Per le linee guida, consulta Integra giochi con server di gioco personalizzati. Effettua almeno quanto segue:

    • Scarica il file AWS SDK per Amazon GameLift e aggiungilo al tuo progetto di servizio di backend. Consulta GameLift SDKle risorse di Amazon per i servizi clienti.

    • Aggiungi codice per inizializzare un GameLift client Amazon e memorizzare le impostazioni chiave. Per informazioni, consulta Configura Amazon GameLift su un servizio di backend.

    • Aggiungi funzionalità per richiamare l' AWS SDKazione 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 Passaggio 3), sostituirai questo codice con una chiamata a StartGameSessionPlacement() (o StartMatchmaking() se stai utilizzando FlexMatch).

      Per indicazioni sulla progettazione del servizio di backend, consulta. Progetta il tuo servizio client di gioco

  • Aggiungi funzionalità al tuo client di gioco che consentano ai giocatori di partecipare a una sessione di gioco ospitata. Il client di gioco invia richieste al tuo servizio di backend, non direttamente ad Amazon GameLift. Dopo che il servizio di backend ha fornito le informazioni sulla connessione alla sessione di gioco, il client di gioco si connette direttamente alla sessione di gioco per giocare.

  • Verifica l'integrazione del tuo client di gioco. Puoi usare lo stesso Amazon GameLift Anywhere flotta con una workstation locale per i test.

    Per uno sviluppo iterativo rapido o quando lavori con team composti da più persone, ti consigliamo di configurare un ambiente di test basato sul cloud. Questa soluzione Amazon GameLift Toolkit imita il comportamento di una flotta GameLift gestita da Amazon, ma consente di aggiornare le build dei server di gioco con tempi di consegna minimi.

Personalizza il modo in cui desideri che Amazon GameLift elabori le richieste di nuove sessioni di gioco e individua i server di gioco disponibili per ospitarle. Amazon monitora GameLift 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 cerca il posizionamento «migliore possibile» in base a una serie di priorità definite come latenza minima, costo e disponibilità.

  • Crea una coda di sessione di gioco per inserire una nuova sessione di gioco con i 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 di sessioni di gioco.

    • Come minimo, aggiungi le tue flotte Anywhere come destinazioni nella 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 avvisare un client 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, dovrai abilitare le notifiche degli eventi. Per informazioni, consulta Imposta la notifica degli eventi per il posizionamento della sessione di gioco.

  • (Facoltativo) Aggiungi componenti di FlexMatch matchmaking. Per ulteriori informazioni, consulta la Amazon GameLift FlexMatch Developer Guide.

Fino a questo punto hai lavorato con sistemi autogestiti Anywhere hai a disposizione flotte per testare ed eseguire iterazioni sui componenti del gioco e hai ottimizzato il posizionamento delle sessioni di gioco. L'ultima parte della soluzione consiste nel configurare il tipo di risorse di hosting necessarie per un sistema di produzione. Per iniziare a pianificare e configurare la produzione, vuoi passare a lavorare con una flotta GameLift gestita da Amazon.

  • Package della build del tuo server di gioco e caricala su Amazon GameLift. Crea uno script di installazione con i tuoi file di build, le dipendenze e il software di supporto. Per informazioni, consulta Implementa una build di server personalizzata per l'hosting Amazon GameLift. Puoi caricare la tua build su Amazon GameLift utilizzando la console o il AWS CLI.

    Prima di caricare la build, decidi in che modo Regione AWS vuoi creare una flotta. Devi caricare la build nella stessa regione. Per ulteriori informazioni sulla scelta dell'ubicazione della flotta, consultaUbicazione della flotta.

  • Crea una EC2 flotta gestita. Quando crei una flotta, Amazon inizia GameLift immediatamente a distribuire la build del tuo server di gioco per l'hosting. Puoi configurare molti aspetti di una flotta gestita. Per le linee guida, consulta Crea una EC2 flotta GameLift gestita da Amazon. Come minimo, procedi come segue:

    • Assegna un nome alla flotta e specifica quale build di gioco caricata utilizzare.

    • Scegli le istanze On-Demand per il tuo parco istanze e seleziona un tipo di istanza disponibile in base all'ubicazione del tuo parco istanze. Le flotte Spot sono un'opzione preziosa, ma richiedono un design e una configurazione aggiuntivi.

    • Crea una configurazione di runtime per la flotta. Specificate almeno il percorso di avvio per il file eseguibile del server di gioco.

    • Specificate le impostazioni delle porte per consentire al traffico in entrata di accedere ai server di gioco.

  • Aggiungi le flotte gestite alla tua coda. Nella coda delle sessioni di gioco, sostituisci le flotte Anywhere con le flotte gestite.

  • Prova l'hosting di giochi con le tue flotte gestite. A questo punto dovresti essere in grado di testare l'intero ciclo di hosting, con un client di gioco che richiede una sessione di gioco, ottiene informazioni di connessione e si connette correttamente a 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:

  • Prendi in considerazione l'aggiunta di flotte Spot per risparmiare sui costi. Per informazioni, consulta Tutorial: crea una GameLift coda Amazon con le istanze Spot.

  • Se il tuo server di gioco ha bisogno di comunicare altre AWS risorse, imposta IAM i ruoli per gestire l'accesso. Per informazioni, consulta Comunica con altre AWS risorse delle tue flotte.

  • Determina dove vuoi posizionare geograficamente i server di gioco. Aggiungi postazioni remote alle tue flotte gestite. Per informazioni, consulta Guida alla progettazione per flotte gestite.

  • Ottimizza le prestazioni del parco macchine selezionando il tipo e la dimensione dell'istanza e configurando il runtime per eseguire più processi server. Per informazioni, consulta Gestisci il modo in cui Amazon GameLift lancia i server di gioco.

  • Sperimenta le opzioni di posizionamento delle sessioni di gioco per le flotte gestite, inclusa la personalizzazione delle impostazioni di prioritizzazione. Per informazioni, consulta Progetta una coda per le sessioni di gioco.

  • Imposta il ridimensionamento automatico della capacità per soddisfare la domanda prevista dei giocatori. Per informazioni, consulta Scalare la capacità di hosting di giochi con Amazon GameLift.

  • Configura flotte di standby in altri Regioni AWS e modifica le code e la scalabilità automatica per gestire i failover, se necessario.

  • Configura gli strumenti di osservabilità dell'hosting, tra cui analisi e registrazione. Per informazioni, consulta Monitoraggio di Amazon GameLift.

  • Automatizza la distribuzione utilizzando Infrastructure as Code (IaC). Per informazioni, consulta Gestione delle risorse GameLift di hosting Amazon tramite AWS CloudFormation.

    Amazon GameLift supporta l'uso di AWS CloudFormation modelli per qualsiasi configurazione specifica della distribuzione. Puoi anche utilizzare il AWS Cloud Development Kit (AWS CDK) per definire le tue GameLift risorse Amazon. Per ulteriori informazioni su AWS CDK, consulta la Guida per AWS Cloud Development Kit (AWS CDK) gli sviluppatori.

    Per gestire l'implementazione degli AWS CloudFormation stack, consigliamo di utilizzare strumenti e servizi di integrazione continua e distribuzione continua (CI/CD) come. AWS CodePipeline Questi strumenti ti aiutano a implementarlo automaticamente o con l'approvazione ogni volta che crei un file binario per server di gioco. Con uno strumento o un servizio CI/CD, 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 su Amazon GameLift.

    • Implementa nuove flotte con la nuova build.

    • Aggiungi le nuove flotte alla coda delle sessioni di gioco e rimuovi le flotte con la versione di build precedente.

    • Quando le flotte della build precedente non ospitano più sessioni di gioco attive, elimina le AWS CloudFormation pile di quelle flotte.