View a markdown version of this page

Roadmap di sviluppo per l'hosting ibrido con Server Amazon GameLift - GameLift Server Amazon

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 ibrido con Server Amazon GameLift

Questa tabella di marcia ti guida su come sviluppare una soluzione di hosting per il tuo gioco multiplayer. Amazon GameLift Serversoffre diverse opzioni di hosting di giochi; per ulteriori informazioni su queste opzioni, consultaGameLift Server Amazon opzioni di hosting di giochi.

Una soluzione ibrida utilizza una combinazione di risorse di hosting, comprese le risorse basate sul cloud gestite da Amazon GameLift Servers e le risorse di hosting autogestite dall'utente. Per una discussione più dettagliata sull'hosting ibrido, consulta questo articolo: Hosting ibrido di server di gioco con Anywhere. Amazon GameLift Servers ConAmazon GameLift Servers, puoi configurare una soluzione ibrida che utilizza componenti e processi comuni, in modo da poter gestire centralmente una flotta globale e spostare facilmente i carichi tra tutti i tipi di risorse.

Un'architettura ibrida è composta dai seguenti componenti:

  • Una singola build di server di gioco, integrata con l'SDK del server perAmazon GameLift Servers, da distribuire su tutte le flotte.

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

  • Una Amazon GameLift Servers coda condivisa per inserire nuove sessioni di gioco con i server di gioco disponibili e bilanciare il carico su tutte le flotte.

  • (Facoltativo) Un agente di gestione dei processi, implementato con una flotta Anywhere, per semplificare le attività di gestione dei processi del server tra i computer di tutte le flotte.

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

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

  • Una o più flotte Amazon GameLift Servers Anywhere, che utilizzano le risorse di hosting locali o di altro tipo esistenti, inclusi gli strumenti di gestione e distribuzione della configurazione. (Puoi opzionalmente utilizzare il.) AWS Systems Manager

Questa tabella di marcia presenta un percorso semplificato per far funzionare correttamente il tuo gioco multiplayer in una soluzione di hosting ibrida con. 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.

Inizia subito con GameLift Server Amazon plugin

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

Aggiungi funzionalità al tuo server di gioco in modo che possa comunicare con il Amazon GameLift Servers servizio quando viene distribuito per l'hosting. La stessa funzionalità è richiesta se il server di gioco funziona su una flotta Amazon GameLift Servers gestita o su una flotta Anywhere.

  • Scarica l'SDK del server per Amazon GameLift Servers (versione 5.x) 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

  • 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() Includi il codice per specificare i parametri del server durante l'esecuzione su un computer della flotta Anywhere.

    • 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 OnProcessTerminate() e. OnStartGameSession() 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. Crea uno script di installazione con i file di build, le dipendenze e il software di supporto. 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.

  • Verifica l'integrazione del tuo server di gioco. Per questa attività, consigliamo di configurare una flotta Amazon GameLift Servers Anywhere con una workstation locale, come descritto inConfigura i test locali con GameLift Server Amazon Ovunque. Per questo passaggio, installa manualmente la build del server di gioco sul dispositivo 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.

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 a StartGameSessionPlacement() (o StartMatchmaking() 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 stessa flotta Amazon GameLift Servers Anywhere con una workstation locale per i test.

    Durante la fase di sviluppo, se vuoi testare il comportamento della tua build di gioco in un parco giochi Amazon GameLift Servers gestito, ti consigliamo di configurare anche un ambiente di test basato sul cloud. Questa soluzione Amazon GameLift Servers Toolkit imita il comportamento di una flotta gestita ma ti consente di aggiornare le build dei server di gioco con tempi di risposta minimi.

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.

  • (Facoltativo) Aggiungi componenti di FlexMatch matchmaking. Per informazioni, consulta la guida per Amazon GameLift ServersFlexMatch gli sviluppatori.

Fino a questo punto hai lavorato con dispositivi locali (registrati come Anywhere fleet computes) per testare e iterare i componenti del gioco. Il passo successivo è configurare il tipo di flotte di cui avrai bisogno per un sistema di produzione. Inizia con una flotta Anywhere e aggiungi l'Amazon GameLift Serversagente per gestire alcune attività chiave di gestione degli host in elaborazione. Per ulteriori dettagli, consultare Collabora con l'Amazon GameLift Serversagente.

  • Scarica l'Amazon GameLift ServersAgent e aggiungilo al pacchetto di installazione del server di gioco. Ottieni e crea il codice sorgente dell'agente, disponibile nel GitHub repository dell'Amazon GameLift Serversagente. Inserisci l'eseguibile del file JAR risultante nella stessa directory dell'eseguibile della build del gioco.

  • Modificate lo script di avvio per l'Agent in base alle vostre esigenze. Assicurati che l'eseguibile dell'agente venga avviato non appena inizia l'esecuzione di un calcolo. Consulta il file readme nel repository Agent per assistenza nell'installazione e nell'esecuzione dell'Agent sui tuoi computer di hosting. Il comando di avvio deve includere opzioni per specificare, come minimo, l'ID della flotta Anywhere Regione AWS, una posizione personalizzata e un nome di elaborazione.

    L'agente gestisce automaticamente le seguenti attività per te, quindi se le hai gestite con degli script, puoi rimuoverle:

    • Chiamate RegisterCompute() per aggiungere il computer a una flotta Anywhere.

    • Chiamate GetComputeAuthToken() per autenticare i server di gioco quando si connettono al Amazon GameLift Servers servizio. L'agente riesce a ottenere e aggiornare il token di autenticazione, che può essere utilizzato da tutti i processi del server di gioco in esecuzione sul computer.

    • Avvia nuovi processi server sul computer in base a una serie di istruzioni di runtime.

  • Crea una configurazione di runtime per i calcoli della tua flotta Anywhere. Specifica almeno il percorso di avvio del file eseguibile sul tuo server di gioco. Puoi utilizzare la Amazon GameLift Servers console o la AWS CLI per creare o modificare le istruzioni di runtime per la flotta. L'agente esegue queste istruzioni e richiede periodicamente aggiornamenti al Amazon GameLift Servers servizio.

  • Imposta o modifica la coda delle sessioni di gioco secondo necessità. Crea una nuova coda (o aggiornane una esistente) e indica una destinazione per la flotta Anywhere distribuita con l'agente. Amazon GameLift Servers

  • Verifica l'integrazione dell'agente con le tue flotte Anywhere. Verificare che l'agente stia avviando correttamente i processi del server in base alla configurazione del runtime.

Crea una flotta EC2 Amazon GameLift Servers gestita per integrare la tua flotta Anywhere. Se hai configurato un ambiente di test basato sul cloud nella Fase 2 per accelerare lo sviluppo, pianifica di creare una flotta gestita dopo aver completato la maggior parte dello sviluppo e dei test del gioco. È necessaria una flotta completamente gestita per configurare e testare impostazioni aggiuntive come il ridimensionamento automatico della capacità.

  • Impacchetta la build del tuo server di gioco e caricala suAmazon GameLift Servers. Crea uno script di installazione con i file di build, le dipendenze e il software di supporto. Puoi utilizzare lo stesso software di compilazione sia con le flotte Anywhere che con quelle gestite. Consulta Crea un server di gioco costruito per GameLift Server Amazon. Puoi caricare la tua build Amazon GameLift Servers utilizzando la console o la AWS CLI.

    Prima di caricare la build, decidi in cosa Regione AWS vuoi creare la flotta gestita. Devi caricare la build nella stessa regione. Per ulteriori informazioni sulla scelta della sede della flotta, consultaPosizioni geografiche.

  • Crea una flotta EC2 gestita. Puoi utilizzare la Amazon GameLift Servers console o la AWS CLI per creare una flotta 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 EC2 gestita. Come minimo, procedi come segue:

    • Dai un nome alla flotta e specifica quale build di gioco caricata schierare.

    • Scegli On-Demand Istanze per la tua flotta e seleziona un tipo di istanza disponibile nella località della tua flotta. Le flotte Spot sono un'opzione valida ma richiedono progettazione e configurazione aggiuntive.

    • Crea una configurazione di runtime con impostazioni simili a quelle utilizzate con la flotta Anywhere. Come minimo, specifica il percorso di avvio del file eseguibile sul server di gioco.

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

  • Aggiungi la flotta gestita alla coda delle sessioni di gioco condivise. Aggiorna la coda dalla Fase 4 in modo che includa le destinazioni sia per la flotta gestita che per la flotta Anywhere implementata con l'agente. Amazon GameLift Servers

  • Prova l'hosting dei 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 sulla connessione e si connette correttamente a una sessione di gioco.

Mentre ti prepari per il lancio del gioco, dovrai mettere a punto le tue soluzioni di hosting. Alcune delle decisioni da prendere in considerazione includono:

  • Per le flotte Anywhere, automatizza il processo di avvio e spegnimento dei computer in base alle esigenze, inclusa l'installazione e l'esecuzione del software del server di gioco. Il riciclo dei computer è utile per garantire che vengano aggiornati regolarmente e la loro chiusura può far risparmiare sui costi quando non sono necessari.

  • 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.

  • Per le flotte gestite, prendi in considerazione l'utilizzo delle flotte Spot per risparmiare sui costi. Consulta Riduci i costi di hosting dei giochi con le flotte Spot.

  • Ottimizza le prestazioni del parco veicoli selezionando le configurazioni delle risorse di calcolo, quindi configura le istruzioni di runtime per eseguire il numero ottimale di processi server per computer. Fatelo sia per le flotte Anywhere che per le flotte gestite. Consulta Ottimizza la configurazione del runtime del server di gioco su server gestiti Amazon GameLift Servers.

  • 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.

  • Per le flotte gestite, 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.

  • Per le flotte Anywhere, crea meccanismi per gestire il ridimensionamento manuale o automatico della capacità per soddisfare la domanda prevista dei giocatori.

  • Progetta e implementa il failover su altre risorse, se necessario. Configura flotte di standby in altri ambienti Regioni AWS e modifica le code e il ridimensionamento automatico per gestire i failover, se necessario.

  • Configura gli strumenti di osservabilità dell'hosting, tra cui analisi e registrazione. Consulta Monitoraggio GameLift Server Amazon. Crea gruppi di metriche per aggregare le analisi per tutte le tue risorse di hosting.

  • Automatizza l'implementazione 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