[Sottotitolo SEO]
Questa Guida consente agli sviluppatori di giochi di creare giochi mondiali persistenti e ospitare mondi virtuali su AWS utilizzando Amazon GameLift e componenti di back-end serverless. L'architettura utilizza componenti gestiti e serverless per ridurre lo sforzo operativo e scalare in base alla domanda dei giocatori. Gli sviluppatori possono utilizzare questa architettura per iniziare a sviluppare giochi virtuali mondiali persistenti su MacOS e Windows. Questa Guida include l'automazione dell'infrastructure as code (IaC), script di configurazione per l'impostazione delle dipendenze e un esempio di implementazione della Unity client/server.
Diagramma di architettura
Nota: le fasi A-C rappresentano il back-end del sistema e le fasi 1-9 rappresentano il front-end.
Fase A
Amazon EventBridge attiva WorldManager
La funzione AWS Lambda si attiva ogni minuto. La funzione verifica lo stato dei mondi esistenti tramite l'API Amazon GameLift.
Fase B
La funzione Lambda WorldManager archivia lo stato attuale delle sessioni e dei mondi in Amazon DynamoDB per un accesso back-end più rapido.
Fase C
WorldManager effettua query sui mondi configurati da DynamoDB e crea tutti i mondi che non sono in esecuzione eseguendo chiamate all'API CreateGameSession di Amazon GameLift.
Fase 1
Il client di gioco richiede un'identità e delle credenziali dal pool di identità di Amazon Cognito per firmare le richieste API autorizzate.
Fase 2
Il client di gioco richiede l'elenco mondiale tramite il Gateway Amazon API. Il Gateway API attiva la funzione Lambda ListWorlds che controlla le informazioni sulla sessione di gioco nella regione definita da DynamoDB.
Fase 3
Il client di gioco richiede di entrare in un mondo specifico e in una specifica regione richiamando la funzione Lambda JoinWorld tramite Gateway API.
Fase 4
La funzione Lambda crea una sessione di gioco per il giocatore, aumenta il numero di giocatori per quel mondo in DynamoDB e invia le informazioni di connessione al client di gioco.
Fase 5
Il client si connette alla sessione Amazon GameLift direttamente tramite il protocollo di controllo trasmissione (TCP) e invia l'ID della sessione del giocatore.
Fase 6
La sessione Amazon GameLift convalida l'ID della sessione del giocatore con il Software Development Kit (SDK) del server Amazon GameLift.
Fase 7
Amazon GameLift verifica i dati specifici dei giocatori del mondo e li aggiorna secondo le necessità. Archivierà l'ultima posizione del giocatore dopo che quest'ultimo si sarà disconnesso.
Fase 8
La sessione Amazon GameLift verifica l'interruzione programmata di DynamoDB e la interrompe se richiesto.
Fase 9
Il server di gioco invia log e metriche ad Amazon CloudWatch utilizzando l'agente CloudWatch.
Inizia
Distribuisci questa guida
Principi di Well-Architected
Il framework AWS Well-Architected consente di valutare i pro e i contro delle decisioni prese durante il processo di creazione di sistemi nel cloud. I sei principi del framework consentono di apprendere le best practice architetturali per la progettazione e il funzionamento di sistemi affidabili, sicuri, efficienti, convenienti e sostenibili. Grazie allo strumento AWS Well-Architected, disponibile gratuitamente nella Console di gestione AWS, puoi rivedere i tuoi carichi di lavoro rispetto a queste best practice rispondendo a una serie di domande per ciascun principio.
Il diagramma dell'architettura sopra riportato è un esempio di una soluzione creata tenendo conto delle best practice Well-Architected. Per essere completamente Well-Architected, dovresti seguire il maggior numero possibile di best practice.
-
Eccellenza operativa
IlKit di sviluppo per il cloud AWS (AWS CDK) gestisce le implementazioni e gli aggiornamenti utilizzando AWS CloudFormation per controllare gli aggiornamenti e i rollback delle risorse. Ciò riduce gli errori causati dalle modifiche manuali alla configurazione.
Per gli aggiornamenti del parco di Amazon GameLift, CloudFormation creerà un parco sostitutivo. Attenderà che la sostituzione si attivi completamente per accettare il traffico prima di interrompere il vecchio parco.
-
Sicurezza
Il client di gioco utilizza il pool di identità di Amazon Cognito per proteggere l'accesso ai servizi di back-end. Ciò si ottiene firmando le richieste con le credenziali AWS Identity and Access Management (IAM) fornite dal pool di identità. Alle API fornite sono consentite solo richieste autenticate ospitate sul Gateway API. Inoltre, i client di gioco possono accedere solo ai dati del proprio account.
-
Affidabilità
Nel caso in cui il server di gioco (e di conseguenza il mondo di gioco) subisca un arresto, l'architettura sostituirà automaticamente il mondo con uno nuovo, che avrà accesso agli stessi dati persistenti di quel mondo specifico.
-
Efficienza delle prestazioni
Amazon GameLift consente la comunicazione diretta tra client e server per ottimizzare le prestazioni quasi in tempo reale. L'architettura consente agli sviluppatori di ospitare server di gioco in più regioni AWS, riducendo la latenza tra il client e il server di gioco.
-
Ottimizzazione dei costi
L'architettura sfrutta componenti serverless tra cui Gateway API, Lambda e DynamoDB, che consentono di ridurre i costi pagando la quantità esatta di risorse in base al traffico dei giocatori. Inoltre, Amazon GameLift può essere configurato per scalare in base alla richiesta in modo da avere un set minimo di risorse inutilizzate in esecuzione in un dato momento.
-
SostenibilitàQuesta architettura utilizza servizi gestiti e serverless per eseguire solo le risorse necessarie per il carico corrente dei giocatori, riducendo l'impatto individuale sull'ambiente.
Contenuti correlati
[Titolo]
Avvertenza
Il codice di esempio, le librerie software, gli strumenti della linea di comando, le proof of concept, i modelli e le altre tecnologie correlate (comprese tutte le tecnologie di cui sopra fornite dal nostro personale) vengono forniti all'utente sotto forma di contenuto AWS ai sensi dell'Accordo cliente AWS o del relativo accordo scritto stipulato tra l'utente e AWS (a seconda dei casi). Non bisogna utilizzare il contenuto AWS in questione negli account di produzione o sui dati di produzione o altri dati fondamentali. L'utente è responsabile dei test, della sicurezza e dell'ottimizzazione del contenuto AWS, come il codice di esempio, in modo appropriato per l'utilizzo in produzione sulla base delle pratiche e degli standard di qualità specifici. L'implementazione del contenuto AWS può comportare costi AWS per la creazione o l'utilizzo di risorse AWS addebitabili, quali le istanze Amazon EC2 in esecuzione o l'archiviazione Amazon S3.
Eventuali riferimenti a servizi o organizzazioni di terze parti contenuti in questa guida non implicano alcuna approvazione, sponsorizzazione o affiliazione tra Amazon o AWS e dette terze parti. La guida di AWS è un punto di partenza tecnico e l'integrazione con servizi di terze parti può essere personalizzata al momento dell'implementazione dell'architettura.