

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

# GAMECOST01-BP01 Implementa l'attribuzione del costo per giocatore, funzionalità di gioco e ambiente
<a name="gamecost01-bp01"></a>

 L'attribuzione dei costi per i server di gioco è in genere più semplice da eseguire rispetto ai servizi di backend di gioco perché un server di gioco è generalmente ottimizzato per ospitare un numero specifico di giocatori simultanei per istanza, che può essere ammortizzato in base al costo di gestione dell'istanza.  

 **Livello di rischio associato se questa best practice non fosse adottata:** elevato 

## Guida all’implementazione
<a name="implementation-guidance-68"></a>

 Per i servizi di backend di gioco, si consiglia di separare i componenti del gioco in funzionalità distinte che possono essere gestite come risorse logiche o fisiche separate per semplificare l'analisi dei costi. 

 Ad esempio, sebbene possa sembrare semplice implementare una singola applicazione monolitica per ospitare servizi di backend di gioco, questo schema rende difficile ricavare il costo totale per giocatore e funzionalità di gioco nel tempo man mano che si aggiungono altre funzionalità perché i costi di elaborazione, rete e archiviazione delle risorse sono condivisi tra le funzionalità. Prendi in considerazione l'adozione di un'architettura serverless per i tuoi servizi di backend di gioco con servizi come [ Amazon API Gateway ](https://aws.amazon.com/api-gateway/) AWS Lambda e/o AWS Fargate per l'elaborazione, [ Amazon SQS ](https://aws.amazon.com/sqs/) e [ Amazon SNS ](https://aws.amazon.com/sns/) per la messaggistica, Amazon S3 per lo storage di oggetti e Amazon DynamoDB per lo storage di database. Questi servizi sono solo alcuni esempi di prodotti che offrono prezzi basati sull'utilizzo e basati principalmente sul volume delle richieste, in modo che i costi possano essere visualizzati con granularità. Le singole risorse come le funzioni Lambda, i servizi Fargate, le tabelle DynamoDB e i bucket S3 possono essere associate ai tag di allocazione dei costi in modo da poter attribuire ai costi di questi servizi nomi di funzionalità di gioco che consentano di comprendere facilmente i costi di ciascuno dei servizi. 

 Si consiglia inoltre di gestire separatamente ogni ambiente di sviluppo del gioco in modo da poter attribuire i costi ai diversi ambienti. In genere, gli sviluppatori di giochi gestiranno ambienti separati per gli ambienti di sviluppo, test, staging e produzione, come descritto nel pilastro operativo di questo obiettivo dell'industria dei giochi. Ogni ambiente di solito ha requisiti di scalabilità, prestazioni e utilizzo diversi e può essere gestito da team separati. Per controllare i costi, organizzate questi ambienti in modo da poter monitorare e attribuire correttamente i costi di ciascun ambiente. 

 Per ulteriori informazioni, consulta la seguente documentazione: 
+  [Creazione di un gioco multigiocatore senza server scalabile ](https://aws.amazon.com/blogs/compute/building-a-serverless-multiplayer-game-that-scales/) 
+  [Server di sessione di gioco autonomi con backend WebSockets-based ](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift_quickstart_customservers_designbackend_arch_websockets.html) 
+  [Server di sessioni di gioco autonomi con un backend senza server ](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift_quickstart_customservers_designbackend_arch_serverless.html) 

### Passaggi dell’implementazione
<a name="implementation-steps-60"></a>
+  De-couple servizi di backend di gioco suddivisi in diverse funzionalità utilizzando architetture serverless o containerizzate come Amazon API Gateway e per consentire l' AWS Lambda attribuzione granulare dei costi per funzionalità. AWS Fargate 
+  Applica tag di allocazione dei costi alle singole risorse (ad esempio, funzioni Lambda, tabelle DynamoDB e bucket S3) per associare i costi a funzionalità di gioco specifiche per una migliore analisi dei costi. 
+  Gestisci ambienti separati per lo sviluppo, il test, lo staging e la produzione, organizzando e monitorando i costi in modo indipendente per allinearli ai requisiti di scalabilità e utilizzo. 