View a markdown version of this page

Serverless-based architettura del backend del gioco - Obiettivo per l'industria dei giochi

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

Serverless-based architettura del backend del gioco

Molti sviluppatori di giochi non vogliono gestire l'infrastruttura e preferiscono invece creare i propri giochi utilizzando tecnologie che consentano loro di concentrarsi sul software. Un'architettura serverless è consigliata in questo scenario perché consente di creare e rilasciare funzionalità più rapidamente e con meno costi operativi. Le architetture serverless sono progettate utilizzando servizi cloud in grado di scalare dinamicamente in base alla richiesta senza dover configurare, gestire e scalare i server. La seguente architettura di riferimento illustra come creare un gioco utilizzando un'architettura serverless.

Serverless-based architettura di riferimento del backend di gioco

Serverless-based architettura di riferimento del backend di gioco

Questa architettura di riferimento illustra un gioco a quiz basato sul web che offre funzionalità per giocatore singolo e multiplayer.

  • Autenticazione del giocatore: i giocatori si autenticano utilizzando Amazon Cognito, che fornisce un'autenticazione sicura con una directory utente per la gestione delle identità dei giocatori.

  • Logica di gioco come funzioni serverless: le funzionalità di gioco e la logica aziendale di backend vengono eseguite come AWS Lambda funzioni avviate in risposta agli eventi, il che mantiene bassi i costi perché si paga solo quando la funzione viene eseguita. Lambda ti offre la flessibilità di scrivere ogni funzionalità del gioco come microservizio separato utilizzando un linguaggio di programmazione a tua scelta. Ad esempio, potresti scegliere di sviluppare funzioni .NET Lambda se hai esperienza nell'uso di C# per creare giochi Unity, oppure potresti scegliere di sviluppare funzioni Node.js Lambda se desideri programmare sia un frontend che un backend per un gioco basato sul Web. JavaScript

  • NoSQL Data Store per dati di gioco e giocatori: utilizza DynamoDB per archiviare i dati dei giocatori e delle partite, poiché è stato creato appositamente per archiviare grandi quantità di dati provenienti da microservizi. Come illustrato in questa architettura, è consigliabile utilizzare archivi dati separati per le esigenze di archiviazione dei dati di ciascuna funzionalità di gioco, il che semplifica il monitoraggio e la gestione delle funzionalità in modo indipendente. Questo crea anche dei limiti di separazione se la proprietà delle funzionalità o dei servizi cambia all'interno del team. In questa architettura di riferimento, le tabelle DynamoDB vengono utilizzate per archiviare dati quali lo stato della connessione, i dettagli del gioco, i progressi dei giocatori e le informazioni sulla classifica.

  • Gameplay per giocatore singolo: le funzionalità per giocatore singolo consentono ai giocatori di eseguire azioni come selezionare e giocare una partita e visualizzare la classifica. Queste funzionalità sono implementate come servizi di backend RESTful ospitati con un'API HTTP Amazon API Gateway che richiama la funzione Lambda appropriata per ottenere e impostare i dati nelle tabelle DynamoDB. Al termine del gioco, il backend invia anche notifiche agli argomenti di Amazon SNS che avviano le funzioni Lambda in modo asincrono per memorizzare i progressi e le statistiche del giocatore.

  • Gameplay multigiocatore: le funzionalità del gioco multigiocatore richiedono che i giocatori siano in grado di interagire con il gioco per comunicazioni punto a punto, nonché di trasmettere e ricevere aggiornamenti da altri giocatori connessi. Un' WebSockets implementazione è adatta per la comunicazione punto a punto in un gioco leggero, come i quiz. I giocatori possono stabilire una WebSockets connessione ad Amazon API Gateway WebSockets, che gestisce la connessione e richiama le funzioni Lambda solo quando ci sono messaggi da inviare o ricevere per un giocatore. Per i casi d'uso in cui è richiesta una comunicazione uno-a-molti tra i giocatori, AWS IoT Core fornisce supporto per la messaggistica WebSockets tramite MQTT, che consente ai clienti di iscriversi agli argomenti e agire in base ai messaggi ricevuti. In questa architettura, WebSockets gli MQTT vengono utilizzati per supportare casi d'uso come la trasmissione di aggiornamenti di gioco in diretta e la richiesta di domande ai giocatori connessi. In alternativa AWS IoT, puoi scegliere Redis Pub/Sub per la consegna dei messaggi o Redis Streams se hai bisogno di conservare i messaggi.

  • Usa le funzioni VPC-enabled Lambda per accedere alle risorse nelle tue sottoreti private: configura le funzioni VPC-enabled Lambda per accedere alle risorse nelle sottoreti private del tuo VPC, come Amazon, che viene utilizzato per ridurre i tempi di interrogazione per set di dati a bassa ElastiCache latenza come le classifiche live.

Per ulteriori informazioni, consulta la Guida all'hosting di backend di gioco personalizzato su. AWS