

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
<a name="serverless-based-game-backend-architecture"></a>

 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](http://docs.aws.amazon.com/it_it/wellarchitected/latest/games-industry-lens/images/image5.png)


 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](https://aws.amazon.com/solutions/guidance/custom-game-backend-hosting-on-aws/) Guida per l'hosting di backend di gioco personalizzato su. AWS