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à.
Architettura di backend di gioco basata su server
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. In questo scenario è consigliata un'architettura serverless 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 la necessità di configurare, gestire e scalare i server. La seguente architettura di riferimento illustra come creare un gioco utilizzando un'architettura serverless.
Architettura di riferimento per il backend di gioco basata su server
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 a eventi, il che consente di ridurre i costi perché si pagano solo quando la funzione è in esecuzione. Lambda ti offre la flessibilità di scrivere ogni funzionalità di 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 le funzioni Lambda Node.js se desideri programmare un frontend e un backend per un gioco basato sul Web entrambi. JavaScript
-
NoSQL Data Store per i dati di gioco e dei giocatori: utilizza DynamoDB per archiviare i dati dei giocatori e dei giochi, poiché è progettato appositamente per archiviare grandi quantità di dati dai 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. Ciò 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 come 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 RESTful backend ospitati con un'API HTTP Amazon API Gateway che richiama la funzione Lambda appropriata per ottenere e impostare 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à di gioco multigiocatore richiedono che i giocatori siano in grado di interagire con il gioco per point-to-point comunicare, oltre a trasmettere e ricevere aggiornamenti da altri giocatori connessi. Un' WebSockets implementazione è adatta per la point-to-point comunicazione 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. Nei casi d'uso in cui è necessaria la one-to-many comunicazione tra 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, gli WebSockets over MQTT vengono utilizzati per supportare casi d'uso come la trasmissione di aggiornamenti di gioco in tempo reale e per porre domande ai giocatori connessi. In alternativa AWS IoT, puoi scegliere Redis Pub/Sub per la consegna dei messaggi o Redis Streams se hai bisogno della conservazione dei messaggi.
-
Usa le funzioni Lambda abilitate per VPC per accedere alle risorse nelle tue sottoreti private: configura le funzioni Lambda abilitate per VPC per accedere alle risorse nelle sottoreti private del tuo VPC, come ElastiCache Amazon, che viene utilizzato per ridurre i tempi di query per set di dati a bassa latenza come le classife live.
Per ulteriori informazioni, consulta la