

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

# Amazon GameLift Serversplugin per Unity (server SDK 5.x)
<a name="unity-plug-in"></a>

Questo plugin aggiunge l'SDK e gli strumenti del server Amazon GameLift Servers C\$1 all'editor Unity. Utilizza i flussi di lavoro guidati dell'interfaccia utente per integrare la funzionalità SDK del server nel tuo progetto di gioco e implementare una soluzione di Amazon GameLift Servers hosting per il tuo server di gioco. 

Con il plug-in, puoi creare una soluzione di hosting funzionante di base e quindi ottimizzarla e personalizzarla secondo necessità. Configura una flotta Amazon GameLift Servers Anywhere con la tua workstation locale come host. Per l'hosting su cloud con EC2 gestito o flotte di container gestite, implementa il tuo server di gioco con una soluzione completa per gestire le richieste di sessioni di gioco e le connessioni dei client.

**Topics**
+ [Installa il plugin per il tuo progetto di gioco Unity](#unity-plugin-install)
+ [Plugin per Unity: configura un profilo AWS utente](unity-plug-in-profiles.md)
+ [Plugin per Unity: configura i test locali con Anywhere Amazon GameLift Servers](unity-plug-in-anywhere.md)
+ [Plugin per Unity: distribuisci il tuo gioco su una flotta EC2 gestita](unity-plug-in-ec2.md)
+ [Plugin per Unity: distribuisci il gioco su una flotta di container gestita](unity-plug-in-container.md)

## Installa il plugin per il tuo progetto di gioco Unity
<a name="unity-plugin-install"></a>

**[Scarica il Amazon GameLift Servers plugin per Unity da GitHub](https://github.com/amazon-gamelift/amazon-gamelift-plugin-unity)**

Consulta il readme del GitHub repository per informazioni su come installare il plugin per un progetto di gioco. 

Il plugin include questi componenti: 
+ Moduli plug-in per l'editor Unity. Quando il plugin è installato, una nuova voce del menu principale consente di accedere alle Amazon GameLift Servers funzionalità.
+ Librerie C\$1 per l'API Amazon GameLift Servers di servizio con funzionalità lato client. 
+ Librerie C\$1 per l'SDK del Amazon GameLift Servers server (versione 5.x).
+ Esempi di contenuti di gioco, tra cui risorse e scene, per poterli provare Amazon GameLift Servers anche se non disponi di un gioco multigiocatore pronto per l'installazione.
+ Configurazioni delle soluzioni, fornite come CloudFormation modelli, utilizzate dal plug-in per distribuire il server di gioco sul cloud per l'hosting.

Questo plugin utilizza AWS CloudFormation modelli per implementare soluzioni di hosting per scenari di gioco comuni. Utilizza queste soluzioni così come fornite o personalizzale secondo necessità per i tuoi giochi.

# Plugin per Unity: configura un profilo AWS utente
<a name="unity-plug-in-profiles"></a>

Dopo aver installato il plugin, configura un profilo utente con un AWS account valido. Puoi mantenere più profili nel plugin, ma puoi selezionare solo un profilo alla volta. Ogni volta che lavori nel plugin, seleziona un profilo da usare. Ogni pagina del flusso di lavoro mostra il profilo attualmente selezionato. 

Il mantenimento di più profili consente di passare da una distribuzione di hosting all'altra. Ad esempio, è possibile configurare profili che utilizzano lo stesso AWS account ma vengono distribuiti in regioni diverse. AWS Oppure puoi configurare profili con AWS account o utenti e set di autorizzazioni diversi.

**Nota**  
Se hai installato la AWS CLI sulla tua workstation e hai già un profilo configurato, il Amazon GameLift Servers plugin lo rileverà e lo elencherà come profilo esistente. Il plugin seleziona automaticamente qualsiasi profilo denominato. `[default]` È possibile utilizzare un profilo esistente o crearne uno nuovo. 

Tutti i profili devono essere avviati per configurare alcune AWS risorse necessarie nell'account utente.

**Per gestire i tuoi profili AWS**

1. Nella barra degli strumenti principale di Unity, scegli il Amazon GameLift Servers menu e seleziona **Credenziali di AWS accesso**. Questa azione apre il Amazon GameLift Servers plugin alla pagina **Configura il tuo profilo utente**.

1. Utilizza i pulsanti per creare un nuovo AWS account o configurare un profilo utente per un AWS account che già possiedi. 

1. Se non disponi già di un profilo utente, ti verrà richiesto di inserire i dettagli del profilo e creare un nuovo profilo. Inserisci le informazioni che seguono:
   + Un AWS account. Se crei un nuovo AWS account, usa il link Console di gestione AWS e segui le istruzioni. Vedi [Creare un AWS account](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-creating.html) per maggiori dettagli.
   + Un AWS utente con autorizzazioni all'uso Amazon GameLift Servers e altri AWS servizi richiesti. Consulta [Configurare un account AWS utente](setting-up-aws-login.md) le istruzioni sulla configurazione di un utente AWS Identity and Access Management (IAM) con Amazon GameLift Servers autorizzazioni e accesso programmatico con credenziali a lungo termine.
   + Credenziali per il tuo utente. AWS Queste credenziali sono costituite da un ID della chiave di AWS accesso e da una chiave AWS segreta. Per maggiori dettagli, consulta [Ottenere le chiavi di accesso](https://docs.aws.amazon.com/cli/latest/userguide/cli-authentication-user.html#cli-authentication-user-get).
   + AWS regione. Questa è una posizione geografica in cui desideri creare AWS le tue risorse per l'hosting. Durante lo sviluppo, ti consigliamo di utilizzare un'area vicina alla tua posizione fisica. Scegli una regione dall'elenco delle [AWS regioni supportate](https://docs.aws.amazon.com/general/latest/gr/gamelift.html).

1. Se il plugin rileva profili esistenti, visualizza un elenco di profili disponibili. Seleziona un profilo esistente dall'elenco o scegli **Aggiungi un altro profilo** per crearne uno nuovo. 

## Avvia un profilo utente
<a name="unity-plug-in-profiles-bootstrap"></a>

Tutti i profili devono essere avviati per essere utilizzati con il plugin. Amazon GameLift Servers Il bootstrap crea un bucket Amazon S3 specifico per il profilo. Viene utilizzato per archiviare configurazioni di progetto, creare artefatti e altre dipendenze. I bucket non vengono condivisi tra altri profili.

Il bootstrap implica la creazione di nuove AWS risorse e potrebbe comportare dei costi.

**Per avviare il tuo profilo:**

1. Nella pagina **Credenziali di AWS accesso**, controlla lo stato di bootstrap del profilo utente che desideri utilizzare. Se lo stato di bootstrap del profilo è «Inattivo» e non è presente alcun bucket S3 nell'elenco, devi avviare il profilo. 

1. **Seleziona il profilo che desideri utilizzare e scegli il profilo Bootstrap.** 

1. Attendi che lo stato del bootstrap passi a «Attivo». Ciò può richiedere alcuni minuti.

# Plugin per Unity: configura i test locali con Anywhere Amazon GameLift Servers
<a name="unity-plug-in-anywhere"></a>

In questo flusso di lavoro, aggiungete il codice di gioco del client e del server per verificarne la Amazon GameLift Servers funzionalità e utilizzate il plug-in per designare la workstation locale come host del server di gioco di prova. Una volta completate le attività di integrazione, utilizzate il plug-in per creare i componenti del client e del server di gioco.

**Per avviare il flusso di lavoro Amazon GameLift Servers Anywhere:**
+ Nel menu principale dell'editor di Unity, scegli **Amazon GameLift Servers**e seleziona **Host with Anywhere**. Questa azione apre la pagina del plugin per configurare il gioco con una flotta @Anywhere. La pagina presenta un processo in cinque fasi per integrare, creare e lanciare i componenti del gioco. 

## Imposta il tuo profilo
<a name="unity-plug-in-anywhere-profile"></a>

Scegli il profilo che desideri utilizzare quando segui questo flusso di lavoro. Il profilo selezionato influisce su tutte le fasi del flusso di lavoro. Tutte le risorse create sono associate all' AWS account del profilo e collocate nella AWS regione predefinita del profilo. Le autorizzazioni dell'utente del profilo determinano l'accesso alle AWS risorse e alle azioni.

1. Seleziona un profilo dall'elenco a discesa dei profili disponibili. Se non hai ancora un profilo o desideri crearne uno nuovo, vai al **Amazon GameLift Servers**menu e scegli **Imposta profili AWS account**.

1. Se lo stato di bootstrap non è «Attivo», scegli il **profilo Bootstrap** e attendi che lo stato passi a «Attivo».

## Integra il codice del gioco con l'SDK del server C\$1
<a name="unity-plug-in-anywhere-integrate"></a>

**Nota**  
Se hai importato il gioco di esempio, puoi saltare questo passaggio. Le risorse del gioco di esempio dispongono già del codice server e client necessari. 

Per questa fase del flusso di lavoro, apporti aggiornamenti al codice client e server del progetto di gioco. 
+ I server di gioco devono essere in grado di comunicare con il Amazon GameLift Servers servizio per ricevere richieste di avvio di una sessione di gioco, fornire informazioni sulla connessione alla sessione di gioco e segnalare lo stato. 
+ I client di gioco devono essere in grado di ottenere informazioni sulle sessioni di gioco, partecipare o avviare sessioni di gioco e ottenere informazioni di connessione per partecipare a una partita.

### Integra il codice del tuo server
<a name="unity-plug-in-anywhere-integrate-server"></a>

Se stai usando il tuo progetto di gioco con scene personalizzate, usa il codice di esempio fornito per aggiungere il codice server richiesto al tuo progetto di gioco:

1. Nei file di progetto del gioco, apri la `Assets/Scripts/Server` cartella. Se non esiste, creala.

1. Vai al GitHub repository [aws/ amazon-gamelift-plugin-unity](https://github.com/aws/amazon-gamelift-plugin-unity) e apri il percorso. `Samples~/SampleGame/Assets/Scripts/Server`

1. Individua il file `GameLiftServer.cs` e copialo nella cartella del tuo progetto di gioco. `Server` Quando crei un eseguibile sul server, usa questo file come obiettivo di compilazione.

Il codice di esempio include questi elementi minimi richiesti, che utilizzano l'SDK del server Amazon GameLift Servers C\$1 (versione 5): 
+ Inizializza un client API. Amazon GameLift Servers La `InitSDK()` chiamata con i parametri del server è necessaria per una flotta Amazon GameLift Servers Anywhere. Queste impostazioni vengono impostate automaticamente per l'uso nel plug-in.
+ Implementa le funzioni di callback richieste per rispondere alle richieste del Amazon GameLift Servers servizio, tra cui `OnStartGameSession``OnProcessTerminate`, e. `onHealthCheck`
+ Chiamate `ProcessReady()` con una porta designata per avvisare il Amazon GameLift Servers servizio quando il processo del server è pronto per ospitare sessioni di gioco.

Se desideri personalizzare il codice server di esempio, consulta queste risorse: 
+ [Aggiungi Amazon GameLift Servers al tuo server di gioco con l'SDK del server](gamelift-sdk-server-api.md)
+ [Server C\$1 SDK 5.x per -- Azioni Amazon GameLift Servers](integration-server-sdk5-csharp-actions.md)

### Integra il codice del tuo cliente
<a name="unity-plug-in-anywhere-integrate-client"></a>

Se stai usando il tuo progetto di gioco con scene personalizzate, devi integrare le funzionalità di base nel tuo client di gioco. Devi anche aggiungere elementi dell'interfaccia utente in modo che i giocatori possano accedere e partecipare a una sessione di gioco. Utilizza l'API di servizio per Amazon GameLift Servers (nell' AWS SDK) ottenere informazioni sulla sessione di gioco, creare nuove sessioni di gioco o partecipare a sessioni di gioco esistenti, 

Quando crei un client per i test locali con una flotta Anywhere, puoi aggiungere chiamate dirette al Amazon GameLift Servers servizio. Quando sviluppi il tuo gioco per l'hosting su cloud o se prevedi di utilizzare le flotte di Anywhere per l'hosting di produzione, dovrai creare un servizio di backend lato client per gestire tutte le comunicazioni tra i client di gioco e il servizio. Amazon GameLift Servers 

Per l'integrazione Amazon GameLift Servers nel codice client, utilizza le seguenti risorse come guida.
+ Integra il client con la GameLiftCoreApi classe nel GitHub repository amazon-gamelift-plugin-unity aws/. Questa classe fornisce controlli per l'autenticazione del giocatore e per il recupero delle informazioni sulla sessione di gioco.
+ Visualizza esempi di integrazioni di gioco, disponibili nel repository GitHub aws/,. amazon-gamelift-plugin-unity `Samples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs`
+ Segui le istruzioni in Aggiungi al tuo client Amazon GameLift Servers di gioco Unity.

Per i client di gioco che si connettono a una flotta Anywhere, il client di gioco necessita delle seguenti informazioni. Il plug-in aggiorna automaticamente il progetto di gioco per utilizzare le risorse create nel plug-in.
+ FleetId - L'identificatore univoco per la tua flotta Anywhere.
+ FleetLocation - La posizione personalizzata della tua flotta Anywhere.
+ AwsRegion - La AWS regione in cui è ospitata la tua flotta Anywhere. Questa è la regione che hai impostato nel tuo profilo utente.
+ ProfileName - Un profilo di AWS credenziali sul computer locale che consente l'accesso all' AWS SDK per. Amazon GameLift Servers Il client di gioco utilizza queste credenziali per autenticare le richieste al servizio. Amazon GameLift Servers

**Nota**  
Il profilo delle credenziali viene generato dal plugin e memorizzato sul computer locale. Di conseguenza, è necessario eseguire il client sul computer locale (o su un computer con lo stesso profilo).

## Connect a una flotta Anywhere
<a name="unity-plug-in-anywhere-fleet"></a>

In questa fase, designerai una flotta Anywhere da utilizzare. Una flotta Anywhere definisce una raccolta di risorse di elaborazione, che possono essere posizionate ovunque, per l'hosting di server di gioco.
+ Se l' AWS account che stai utilizzando attualmente dispone di flotte Anywhere esistenti, apri il campo a discesa **Fleet name e scegli una flotta**. Questo menu a discesa mostra solo le flotte Anywhere nella AWS regione per il profilo utente attualmente attivo.
+ Se non ci sono flotte esistenti o desideri crearne una nuova, scegli **Crea una nuova flotta Anywhere e fornisci un nome per la flotta**.

Dopo aver scelto una flotta Anywhere per il tuo progetto, Amazon GameLift Servers verifica che lo stato della flotta sia attivo e visualizza l'ID della flotta. Puoi tenere traccia dello stato di avanzamento di questa richiesta nel registro di output dell'editor Unity.

## Registra un calcolo
<a name="unity-plug-in-anywhere-register"></a>

In questo passaggio, registri la tua workstation locale come risorsa di elaborazione nella nuova flotta Anywhere.

1. Immettete un nome di calcolo per il computer locale. Se aggiungi più di un computer nel parco dati, i nomi devono essere univoci.

1. Scegli **Register compute**. Puoi tenere traccia dello stato di avanzamento di questa richiesta nel registro di output dell'editor Unity.

Il plugin registra la workstation locale con l'indirizzo IP impostato su localhost (127.0.0.1). Questa impostazione presuppone che il client e il server di gioco vengano eseguiti sulla stessa macchina.

In risposta a questa azione, Amazon GameLift Servers verifica che sia in grado di connettersi al computer e restituisce informazioni sull'elaborazione appena registrata. 

## Avvia il gioco
<a name="unity-plug-in-anywhere-launch"></a>

In questo passaggio crei i componenti del gioco e li avvii per giocare. Completa le seguenti operazioni:

1. Configura il tuo client di gioco. In questo passaggio, richiedi al plugin di aggiornare una `GameLiftClientSettings` risorsa per il tuo progetto di gioco. Il plugin utilizza questa risorsa per memorizzare determinate informazioni di cui il client di gioco ha bisogno per connettersi al Amazon GameLift Servers servizio. 

   1. Se non hai importato e inizializzato il gioco di esempio, crea una nuova `GameLiftClientSettings` risorsa. Nel menu principale dell'editor Unity, scegli **Assets, Create, Amazon GameLift, Client Settings**. Se crei più copie del `GameLiftClientSettings` tuo progetto, il plug-in lo rileva automaticamente e ti notifica quale risorsa verrà aggiornata dal plug-in.

   1. In **Launch Game**, scegli **Configure Client: Apply Anywhere Settings**. Questa azione aggiorna le impostazioni del client di gioco per utilizzare la flotta Anywhere che hai appena configurato.

1. Crea ed esegui il tuo client di gioco.

   1. Crea un eseguibile client utilizzando il processo di compilazione standard di Unity. In **File, Build Settings**, passa la piattaforma a **Windows, Mac, Linux**. Se hai importato il gioco di esempio e hai inizializzato le impostazioni, l'elenco delle build e l'obiettivo di build vengono aggiornati automaticamente. 

   1. Avvia una o più istanze dell'eseguibile del client di gioco appena creato. 

1. Avvia un server di gioco nella tua flotta Anywhere. Scegli **Server: Avvia il server** nell'editor. Questa attività avvia un server live a cui il client può connettersi finché l'editor Unity rimane aperto.

1. Avvia o partecipa a una sessione di gioco. Nelle istanze del client di gioco, usa l'interfaccia utente per unire ogni client a una sessione di gioco. Il modo in cui esegui questa operazione dipende da come hai aggiunto funzionalità al client.

Se utilizzi il client di gioco di esempio, ha le seguenti caratteristiche:
+ Un componente per il login del giocatore. Quando ci si connette a un server di gioco su una flotta Anywhere, non è prevista la convalida del giocatore. Puoi inserire qualsiasi valore per partecipare alla sessione di gioco.
+ Una semplice interfaccia utente di accesso al gioco. Quando un client tenta di partecipare a una partita, cerca automaticamente una sessione di gioco attiva con uno slot disponibile. Se non è disponibile alcuna sessione di gioco, il client richiede una nuova sessione di gioco. Se è disponibile una sessione di gioco, il client richiede di partecipare alla sessione di gioco disponibile. Quando provi il gioco con più client simultanei, il primo client avvia la sessione di gioco e i client rimanenti si uniscono automaticamente alla sessione di gioco esistente.
+ Sessioni di gioco con quattro slot per giocatori. Puoi avviare fino a quattro istanze del client di gioco contemporaneamente e queste si uniranno alla stessa sessione di gioco. 

**Avvio da un server eseguibile (opzionale)**

Puoi creare e avviare il tuo server di gioco eseguibile per testarlo su una flotta Anywhere.

1. Crea un eseguibile sul server utilizzando il processo di compilazione standard di Unity. In **File, Build Settings**, passa la piattaforma a **Server dedicato** e crea.

1. Ottieni un token di autenticazione a breve termine chiamando il comando AWS CLI [get-compute-auth-token](https://docs.aws.amazon.com/cli/latest/reference/gamelift/get-compute-auth-token.html)con l'ID e AWS la regione della flotta Anywhere. L'ID della flotta viene visualizzato in **Connect to an Anywhere Fleet** quando crei la flotta. La AWS regione viene visualizzata in **Imposta il tuo profilo** quando selezioni il tuo profilo attivo.

   ```
   aws gamelift get-compute-auth-token --fleet-id [your anywhere fleet ID] --region [your AWS region]
   ```

1. Avvia l'eseguibile del server di gioco appena creato da una riga di comando e inserisci un token di autenticazione valido.

   ```
   my_project.exe --authToken [token]
   ```

# Plugin per Unity: distribuisci il tuo gioco su una flotta EC2 gestita
<a name="unity-plug-in-ec2"></a>

In questo flusso di lavoro, utilizzi il plug-in per preparare il gioco per l'hosting su risorse di elaborazione basate su cloud gestite da. Amazon GameLift Servers Aggiungi il codice di gioco del client e del server per Amazon GameLift Servers aumentarne la funzionalità, quindi carica la build del server sul Amazon GameLift Servers servizio per l'hosting. Una volta completato questo flusso di lavoro, avrai server di gioco in esecuzione nel cloud e un client di gioco funzionante in grado di connettersi ad essi. 

**Per avviare il flusso di Amazon GameLift Servers lavoro gestito di Amazon EC2:**
+ Nel menu principale dell'editor Unity, scegli **Amazon GameLift Servers**e seleziona **Host with Managed EC2**. Questo flusso di lavoro presenta un processo in sei fasi per integrare, creare, distribuire e avviare i componenti del gioco. 

## Imposta il tuo profilo
<a name="unity-plug-in-ec2-profile"></a>

Scegli il profilo che desideri utilizzare quando segui questo flusso di lavoro. Il profilo selezionato influisce su tutte le fasi del flusso di lavoro. Tutte le risorse create sono associate all' AWS account del profilo e collocate nella AWS regione predefinita del profilo. Le autorizzazioni dell'utente del profilo determinano l'accesso alle AWS risorse e alle azioni.

1. Seleziona un profilo dall'elenco a discesa dei profili disponibili. Se non hai ancora un profilo o desideri crearne uno nuovo, vai al Amazon GameLift Servers menu e scegli **Imposta profili AWS account**.

1. Se lo stato di bootstrap non è «Attivo», scegli il **profilo Bootstrap** e attendi che lo stato diventi «Attivo».

## Integra il tuo gioco con Amazon GameLift Servers
<a name="unity-plug-in-ec2-integrate"></a>

Per questo compito, aggiorni il codice del client e del server nel tuo progetto di gioco. 
+ I server di gioco devono essere in grado di comunicare con il Amazon GameLift Servers servizio per ricevere richieste di avvio di una sessione di gioco, fornire informazioni sulla connessione alla sessione di gioco e segnalare lo stato. 
+ I client di gioco devono essere in grado di ottenere informazioni sulle sessioni di gioco, partecipare o avviare sessioni di gioco e ottenere informazioni di connessione per partecipare a una partita.

**Nota**  
Se hai importato il gioco di esempio, puoi saltare questo passaggio. Le risorse del gioco di esempio dispongono già del codice server e client necessari. 

### Integra il codice del tuo server
<a name="unity-plug-in-ec2-integrate-server"></a>

Quando utilizzi il tuo progetto di gioco con scene personalizzate, usa il codice di esempio fornito per aggiungere il codice server richiesto al tuo progetto di gioco. Se hai integrato il tuo progetto di gioco per testarlo con una flotta Anywhere, hai già completato le istruzioni in questo passaggio.

1. Nei file di progetto del gioco, apri la `Assets/Scripts/Server` cartella. Se non esiste, creala.

1. Vai al GitHub repository [aws/ amazon-gamelift-plugin-unity](https://github.com/aws/amazon-gamelift-plugin-unity) e apri il percorso. `Samples~/SampleGame/Assets/Scripts/Server`

1. Individua il file `GameLiftServer.cs` e copialo nella cartella del tuo progetto di gioco. `Server` Quando crei un eseguibile sul server, usa questo file come obiettivo di compilazione.

Il codice di esempio include questi elementi minimi richiesti, che utilizzano l'SDK del server Amazon GameLift Servers C\$1 (versione 5): 
+ Inizializza un client API. Amazon GameLift Servers La chiamata initSDK () con i parametri del server è necessaria per Amazon GameLift Servers una flotta Anywhere. Queste impostazioni vengono impostate automaticamente per l'uso nel plug-in.
+ Implementa le funzioni di callback richieste per rispondere alle richieste del Amazon GameLift Servers servizio, tra cui `OnStartGameSession``OnProcessTerminate`, e. `onHealthCheck`
+ Chiamate `ProcessReady()` con una porta designata per avvisare il Amazon GameLift Servers servizio quando il processo del server è pronto per ospitare sessioni di gioco.

Se desideri personalizzare il codice server di esempio, consulta queste risorse: 
+ [Aggiungi Amazon GameLift Servers al tuo server di gioco con l'SDK del server](gamelift-sdk-server-api.md)
+ [Server C\$1 SDK 5.x per -- Azioni Amazon GameLift Servers](integration-server-sdk5-csharp-actions.md)

### Integra il codice del tuo cliente
<a name="unity-plug-in-ec2-integrate-client"></a>

Per i client di gioco che si connettono a server di gioco basati su cloud, è consigliabile utilizzare un servizio di backend lato client per effettuare chiamate al Amazon GameLift Servers servizio, anziché effettuare le chiamate direttamente dal client di gioco. 

Nel flusso di lavoro dei plug-in per l'hosting su una flotta EC2 gestita, ogni scenario di implementazione include un servizio di backend predefinito che include i seguenti componenti: 
+ Un set di funzioni Lambda e tabelle DynamoDB utilizzate per richiedere sessioni di gioco e recuperare informazioni sulla sessione di gioco. Questi componenti utilizzano un gateway API come proxy.
+ Un pool di utenti Amazon Cognito che genera giocatori unici IDs e autentica le connessioni dei giocatori.

Per utilizzare questi componenti, il client di gioco necessita della funzionalità necessaria per inviare richieste al servizio di backend per effettuare le seguenti operazioni: 
+ Crea un utente giocatore nel pool di utenti di AWS Cognito ed esegui l'autenticazione.
+ Partecipa a una sessione di gioco e ricevi informazioni sulla connessione.
+ Partecipa a una partita usando matchmaking.

Utilizza le seguenti risorse come guida. 
+ Integra il client con la [ GameLiftCoreApi](https://github.com/aws/amazon-gamelift-plugin-unity/blob/main/Runtime/GameLiftCoreApi.cs)classe nel GitHub repository [amazon-gamelift-plugin-unityaws/](https://github.com/aws/amazon-gamelift-plugin-unity). Questa classe fornisce controlli per l'autenticazione del giocatore e per il recupero delle informazioni sulla sessione di gioco. 
+ [Per visualizzare le integrazioni di gioco di esempio, vai al repository aws/ GitHub ,. amazon-gamelift-plugin-unity](https://github.com/aws/amazon-gamelift-plugin-unity) `Samples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs`
+ [Integra la funzionalità del client di Amazon GameLift Servers gioco](gamelift-sdk-client-api.md).

### (Solo Unity 6.3\$1) Integra lo script install.sh
<a name="unity-plug-in-ec2-integrate-install-script"></a>

Unity 6.3 su Linux richiede glibc 2.35. Amazon Linux 2023 include glibc 2.34. Viene fornito uno script install.sh che gestisce la compilazione di glibc 2.35 dal sorgente e la configurazione dei binari Unity per utilizzare glibc 2.35.

1. [Vai al repository aws/ e apri il percorso. GitHub amazon-gamelift-plugin-unity](https://github.com/aws/amazon-gamelift-plugin-unity) `ExtraServerResources`

1. Individua il file `install.sh` e copialo nella cartella contenente la build del server.

1.  Se ne hai uno esistente`install.sh`, unisci il contenuto di entrambi gli script in uno solo. `install.sh` 

## Seleziona lo scenario di implementazione
<a name="unity-plug-in-ec2-scenarios"></a>

In questo passaggio, scegli la soluzione di hosting di giochi che desideri implementare in questo momento. Puoi avere più distribuzioni del gioco, utilizzando uno qualsiasi degli scenari. 
+ **Flotta a regione singola:** distribuisce il server di gioco su un'unica flotta di risorse di hosting nella regione predefinita del profilo attivo. AWS Questo scenario è un buon punto di partenza per testare l'integrazione del server AWS e la configurazione della build del server. Implementa le seguenti risorse:
  + AWS fleet (On-Demand) con la build del server di gioco installata e funzionante.
  + Pool di utenti e client Amazon Cognito per consentire ai giocatori di autenticarsi e iniziare una partita.
  + Autorizzatore di gateway API che collega il pool di utenti con. APIs
  + Web ACl per limitare le chiamate eccessive dei giocatori al gateway API.
  + API gateway \$1 funzione Lambda per consentire ai giocatori di richiedere uno slot di gioco. Questa funzione chiama `CreateGameSession()` se non ce ne sono disponibili.
  + API gateway \$1 funzione Lambda per consentire ai giocatori di ottenere informazioni di connessione per la loro richiesta di gioco.
+ **FlexMatch flotta:** distribuisce il tuo server di gioco su una serie di flotte e configura un FlexMatch matchmaker con le regole per creare partite tra giocatori. Questo scenario utilizza un hosting Spot a basso costo con una struttura multi-flotta e più sedi per una disponibilità duratura. Questo approccio è utile quando sei pronto per iniziare a progettare un componente matchmaker per la tua soluzione di hosting. In questo scenario, creerai le risorse di base per questa soluzione, che potrai personalizzare in seguito, se necessario. Implementa le seguenti risorse:
  + FlexMatch configurazione del matchmaking e regole di matchmaking impostate per accettare le richieste dei giocatori e formare partite.
  + Tre AWS flotte con la configurazione del server di gioco installata e funzionante in più località. Include due flotte Spot e una flotta On-Demand come backup. 
  + AWS coda per il posizionamento delle sessioni di gioco che soddisfa le richieste di partite proposte trovando la migliore risorsa di hosting possibile (in base a fattibilità, costo, latenza dei giocatori, ecc.) e avviando una sessione di gioco.
  + Pool di utenti e client Amazon Cognito per consentire ai giocatori di autenticarsi e iniziare una partita.
  + Autorizzatore di gateway API che collega il pool di utenti con. APIs
  + Web ACl per limitare le chiamate eccessive dei giocatori al gateway API.
  + API gateway \$1 funzione Lambda per consentire ai giocatori di richiedere uno slot di gioco. Questa funzione chiama`StartMatchmaking()`.
  + API gateway \$1 funzione Lambda per consentire ai giocatori di ottenere informazioni di connessione per la loro richiesta di gioco.
  + Tabelle Amazon DynamoDB per archiviare i ticket di matchmaking per i giocatori e le informazioni sulle sessioni di gioco.
  + Argomento SNS \$1 funzione Lambda per GameSessionQueue gestire gli eventi.

## Imposta i parametri di gioco
<a name="unity-plug-in-ec2-parameters"></a>

In questo passaggio, descrivi il gioco su cui caricarlo AWS.
+ **Nome del gioco:** fornisci un nome significativo per il tuo progetto di gioco. Questo nome viene utilizzato all'interno del plugin.
+ **Nome della flotta:** fornisci un nome significativo per la tua flotta EC2 gestita. Amazon GameLift Serversutilizza questo nome (insieme all'ID della flotta) per elencare le risorse nella AWS console.
+ **Nome build:** fornisci un nome significativo per la build del server. AWS utilizza questo nome per fare riferimento alla copia della build del server che viene caricata Amazon GameLift Servers e utilizzata per le distribuzioni.
+ **Parametri di avvio:** inserisci le istruzioni opzionali da eseguire all'avvio del server eseguibile su un'istanza gestita della flotta EC2. La lunghezza massima è di 1024 caratteri.
+ **Cartella del server di gioco:** fornisci il percorso di una cartella locale contenente la build del server.
+ **File del server di gioco:** specifica il nome del file eseguibile del server.

## Scenario di distribuzione
<a name="unity-plug-in-ec2-deploy"></a>

In questo passaggio, distribuisci il gioco su una soluzione di hosting cloud in base allo scenario di implementazione scelto. Questo processo può richiedere diversi minuti per AWS la convalida della build del server, il provisioning delle risorse di hosting, l'installazione del server di gioco, l'avvio dei processi del server e la preparazione per ospitare sessioni di gioco.

**Per iniziare la distribuzione, scegli Deploy. CloudFormation** Puoi monitorare lo stato del tuo hosting di giochi qui. Per informazioni più dettagliate, puoi accedere alla console di AWS gestione AWS e visualizzare le notifiche degli eventi. Assicurati di accedere utilizzando lo stesso account, utente e AWS regione del profilo utente attivo nel plug-in.

Una volta completata la distribuzione, il server di gioco è installato su un'istanza AWS EC2. Almeno un processo server è in esecuzione ed è pronto per iniziare una sessione di gioco. 

## Avvia il client di gioco
<a name="unity-plug-in-ec2-launch"></a>

Quando la tua flotta sarà dispiegata con successo, ora avrai dei server di gioco attivi e disponibili per ospitare sessioni di gioco. Ora puoi creare il tuo client, avviarlo, connetterti per partecipare alla sessione di gioco. 

1. Configura il tuo client di gioco. In questo passaggio, richiedi al plugin di aggiornare una `GameLiftClientSettings` risorsa per il tuo progetto di gioco. Il plugin utilizza questa risorsa per memorizzare determinate informazioni di cui il client di gioco ha bisogno per connettersi al Amazon GameLift Servers servizio. 

   1. Se non hai importato e inizializzato il gioco di esempio, crea una nuova `GameLiftClientSettings` risorsa. Nel menu principale dell'editor Unity, scegli **Assets, Create, Amazon GameLift, Client Settings**. Se crei più copie del `GameLiftClientSettings` tuo progetto, il plug-in lo rileva automaticamente e ti notifica quale risorsa verrà aggiornata dal plug-in.

   1. In **Launch Game**, scegli **Configura client: applica impostazioni EC2 gestite**. Questa azione aggiorna le impostazioni del client di gioco per utilizzare la flotta EC2 gestita che hai appena implementato.

1. Crea il tuo client di gioco. Crea un eseguibile client utilizzando il processo di compilazione standard di Unity. In File, Build Settings, passa la piattaforma a Windows, Mac, Linux. Se hai importato il gioco di esempio e hai inizializzato le impostazioni, l'elenco delle build e l'obiettivo di build vengono aggiornati automaticamente.

1. Avvia l'eseguibile del client di gioco di nuova build. Per iniziare a giocare, avvia da due a quattro istanze client e usa l'interfaccia utente di ciascuna per partecipare a una sessione di gioco.

Se utilizzi il client di gioco di esempio, ha le seguenti caratteristiche:
+ Un componente per il login del giocatore. Quando ci si connette a un server di gioco su una flotta Anywhere, non è prevista la convalida del giocatore. Puoi inserire qualsiasi valore per partecipare alla sessione di gioco.
+ Una semplice interfaccia utente di accesso al gioco. Quando un client tenta di partecipare a una partita, cerca automaticamente una sessione di gioco attiva con uno slot disponibile. Se non è disponibile alcuna sessione di gioco, il client richiede una nuova sessione di gioco. Se è disponibile una sessione di gioco, il client richiede di partecipare alla sessione di gioco disponibile. Quando provi il gioco con più client simultanei, il primo client avvia la sessione di gioco e i client rimanenti si uniscono automaticamente alla sessione di gioco esistente.
+ Sessioni di gioco con quattro slot per giocatori. Puoi avviare fino a quattro istanze del client di gioco contemporaneamente e queste si uniranno alla stessa sessione di gioco. 

# Plugin per Unity: distribuisci il gioco su una flotta di container gestita
<a name="unity-plug-in-container"></a>

Usa questo flusso di lavoro guidato dai plug-in per creare un'immagine del contenitore per il tuo server di gioco e distribuirla su una soluzione di hosting basata su container. Una volta completato con successo questo flusso di lavoro, il server di gioco containerizzato è in esecuzione nel cloud e puoi utilizzare il plug-in per avviare un client di gioco, connetterti a una sessione di gioco e giocare.

## Prima di iniziare
<a name="unity-plug-in-container-prereqs"></a>

Questo flusso di lavoro presuppone che tu abbia completato le seguenti attività. 
+ **Integra il codice del server di gioco con l'SDK Amazon GameLift Servers del server.** il nostro server di gioco ospitato deve essere in grado di comunicare con il Amazon GameLift Servers servizio in modo che possa rispondere alle richieste di avvio di nuove sessioni di gioco e segnalare lo stato della sessione di gioco. Se non hai completato questa operazione, ti consigliamo di seguire prima il flusso di lavoro del plug-in Host with Anywhere. Per istruzioni sulla preparazione del codice del server di gioco, consulta[Integra il codice del tuo server](unity-plug-in-anywhere.md#unity-plug-in-anywhere-integrate-server). Per una flotta di container gestita, devi integrare il gioco con la versione 5.2 o successiva dell'SDK del server.
**Nota**  
Se hai importato il gioco di esempio, questa operazione è già stata eseguita per te. 
+ **Package dell'eseguibile del server di gioco per eseguirlo su Linux.** 
+ **Raccogli i file da distribuire con la build del tuo server di gioco.** Sul computer locale, crea una directory di lavoro per organizzare i file, che verrà incorporata nell'immagine del contenitore del server di gioco. Questi potrebbero includere dipendenze di gioco, uno script per avviare i server di gioco e altri processi all'avvio di un contenitore, ecc. 
+ **Integra il codice del client di gioco conAmazon GameLift Servers.** Un modo per completare questa operazione è aggiungere una risorsa di esempio (inclusa nel plug-in) già integrata. Per indicazioni sulla preparazione del codice client di gioco, consulta[Integra il codice del tuo cliente](unity-plug-in-anywhere.md#unity-plug-in-anywhere-integrate-client). 
+ **Installa Docker sul tuo computer locale.** È necessario che questo strumento sia installato se desideri che il plug-in crei immagini dei contenitori per te e le invii a un repository ECR. In alternativa, puoi eseguire queste attività manualmente e indicare al plug-in di utilizzare un'immagine del contenitore esistente. Per ulteriori informazioni sulla creazione manuale dell'immagine, consulta [Creare un'immagine del contenitore per Amazon GameLift Servers](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/containers-prepare-images.html).

**Per avviare il flusso di lavoro dei contenitori Amazon GameLift Servers gestiti:**
+ Nella barra degli strumenti principale dell'editor Unity, scegli il Amazon GameLift Servers menu e seleziona **Contenitori gestiti**. Questa azione apre la pagina del plug-in **Host with Managed Containers**, che presenta un step-by-step processo per creare un'immagine del contenitore con la build del server di gioco, distribuirla in una flotta di container e avviare il gioco. 

## Passaggio 0: imposta il tuo profilo
<a name="unity-plug-in-container-profile"></a>

Questa sezione mostra il profilo utente attualmente selezionato. Verifica che il profilo utente corrente sia quello che desideri utilizzare per questo flusso di lavoro. Tutte le risorse create in questo flusso di lavoro sono associate all' AWS account del profilo e collocate nella AWS regione predefinita del profilo. Le autorizzazioni dell'utente del profilo determinano l'accesso alle AWS risorse e alle azioni.

Potrebbe essere necessario modificare il profilo utente selezionato se: 
+ Al momento non è selezionato alcun profilo.
+ Vuoi selezionare un profilo diverso o creare un nuovo profilo.
+ È necessario eseguire il bootstrap del profilo selezionato (se lo stato di bootstrap è inattivo).

**Per impostare o modificare il profilo utente selezionato**
+ Nel Amazon GameLift Servers menu, scegli **Open AWS Access Credentials**.

## Fase 1: Valutare la disponibilità del contenitore
<a name="unity-plug-in-container-assess"></a>

Prima di distribuire il tuo server di gioco in una flotta di container, devi impacchettarlo in un'immagine del contenitore e archiviarlo in un repository Amazon ECR. Il plug-in può completare queste attività per te oppure puoi eseguirle manualmente. In questo passaggio, fornisci informazioni sullo stato dell'immagine del contenitore e dell'archivio ECR. 

Usa le domande di valutazione per indicare al plugin quali passi deve compiere: 
+ **Crea una nuova immagine del contenitore.** Se scegli questa opzione, nel passaggio successivo ti verrà richiesta la posizione della directory di build del server di gioco e l'eseguibile della build. Il plugin utilizza un modello Dockerfile (fornito daAmazon GameLift Servers) e lo configura automaticamente per il gioco. È possibile visualizzare il modello all'indirizzo. [Crea un'immagine del contenitore per Amazon GameLift Servers](containers-prepare-images.md) Dopo aver scelto questa opzione, indica dove desideri che il plugin memorizzi la nuova immagine:
  + Crea un nuovo repository Amazon ECR e inviaci l'immagine del contenitore. Il plug-in crea un repository ECR privato utilizzando l' AWS account ed è predefinito Regione AWS nel profilo utente selezionato.
  + Invia l'immagine del contenitore a un repository Amazon ECR creato in precedenza. Se scegli questa opzione, il passaggio successivo ti chiederà di selezionare un repository Amazon ECR esistente da un elenco. L'elenco include tutti i repository Amazon ECR per l' AWS account e quelli predefiniti Regione AWS nel profilo utente selezionato. Puoi selezionare un repository pubblico o privato.
+ **Usa un'immagine del contenitore esistente.** Se hai creato un'immagine manualmente, ti consigliamo di utilizzare il modello Dockerfile fornito daAmazon GameLift Servers, disponibile all'indirizzo. [Crea un'immagine del contenitore per Amazon GameLift Servers](containers-prepare-images.md) Dopo aver scelto questa opzione, indica dove si trova l'immagine. 
  + Un'immagine generata da Docker archiviata localmente. Se scegli questa opzione, il plug-in crea un nuovo repository privato Amazon ECR e vi invia il file di immagine locale. Il passaggio successivo richiederà un ID immagine, che il plug-in utilizza per localizzare il file di immagine.
  + Un'immagine del contenitore già archiviata in un repository Amazon ECR. Se scegli questa opzione, il passaggio successivo ti chiederà di selezionare un repository e un'immagine Amazon ECR esistenti da un elenco. L'elenco include tutti i repository Amazon ECR per l' AWS account e quelli predefiniti Regione AWS nel profilo utente selezionato. Puoi selezionare un repository pubblico o privato.
  +  Unity 6.3 su Linux richiede glibc 2.35. Amazon Linux 2023 include glibc 2.34. Di seguito viene fornito un modello Dockerfile che gestisce la compilazione di glibc 2.35 dai sorgenti e la configurazione dei binari Unity per utilizzare glibc 2.35. 

### Modello Dockerfile per un'immagine del contenitore del server di gioco Unity 6.3
<a name="w2aab9c11b9c21c27c11c11b1"></a>

Questo modello contiene le istruzioni minime di cui un contenitore di server di gioco ha bisogno per essere utilizzabile in una flotta. Amazon GameLift Servers Modifica il contenuto in base alle esigenze del tuo server di gioco. 

```
# Base image
# ----------
  # Add the base image that you want to use over here,
  # Make sure to use an image with the same architecture as the
  # Instance type you are planning to use on your fleets.
FROM public.ecr.aws/amazonlinux/amazonlinux

# Game build directory
# --------------------
  # Add your game build directory in the 'GAME_BUILD_DIRECTORY' env variable below.
  #
# Game executable
# ---------------
  # Add the relative path to your executable in the 'GAME_EXECUTABLE' env variable below.
  # The game build provided over here needs to be integrated with gamelift server sdk.
  # This template assumes that the executable path is relative to the game build directory.
  #
# Launch parameters
# -----------------
  # Add any launch parameters to pass into your executable in the 'LAUNCH_PARAMS' env variable below.
  #
# Default directory
# -----------------
  # The value provided in 'HOME_DIR' below will be where the game executable and logs exist.
  #
ARG GAME_BUILD_DIRECTORY
ARG GAME_EXECUTABLE
ARG LAUNCH_PARAMS

ENV GAME_BUILD_DIRECTORY=$GAME_BUILD_DIRECTORY \
    GAME_EXECUTABLE=$GAME_EXECUTABLE \
    LAUNCH_PARAMS=$LAUNCH_PARAMS \
    HOME_DIR="/local/game"

# install dependencies as necessary
RUN yum install -y shadow-utils bison wget gcc make patchelf tar gzip && \
    yum clean all && rm -fr /var/cache

RUN mkdir -p $HOME_DIR
COPY .$GAME_BUILD_DIRECTORY/ $HOME_DIR

# Change directory to home
WORKDIR $HOME_DIR

# Build glibc 2.35 and patch Unity binaries
RUN GLIBC_VERSION="2.35" && \
    INSTALL_PREFIX="/opt/glibc-${GLIBC_VERSION}" && \
    ARCH=$(uname -m) && \
    if [ "$ARCH" = "x86_64" ]; then \
        INTERPRETER="${INSTALL_PREFIX}/lib/ld-linux-x86-64.so.2"; \
        MONO_ARCH="x86_64"; \
    elif [ "$ARCH" = "aarch64" ]; then \
        INTERPRETER="${INSTALL_PREFIX}/lib/ld-linux-aarch64.so.1"; \
        MONO_ARCH="aarch64"; \
    else \
        echo "ERROR: Unsupported architecture: $ARCH"; exit 1; \
    fi && \
    cd /tmp && \
    wget -q "https://ftp.gnu.org/gnu/glibc/glibc-${GLIBC_VERSION}.tar.gz" && \
    tar -xzf "glibc-${GLIBC_VERSION}.tar.gz" && \
    cd "glibc-${GLIBC_VERSION}" && mkdir glibc-build && cd glibc-build && \
    touch /etc/ld.so.conf && \
    ../configure --prefix="${INSTALL_PREFIX}" && \
    make -s all && make -s install && \
    cd / && rm -rf /tmp/glibc-* && \
    GLIBC_LIB="${INSTALL_PREFIX}/lib" && \
    EXECUTABLE_NAME=$(echo "$GAME_EXECUTABLE" | sed 's/\.[^.]*$//') && \
    DATA_DIR="$HOME_DIR/${EXECUTABLE_NAME}_Data" && \
    patchelf --set-interpreter "$INTERPRETER" "$HOME_DIR/$GAME_EXECUTABLE" && \
    patchelf --set-rpath "$GLIBC_LIB:$HOME_DIR:/lib64:$DATA_DIR/MonoBleedingEdge/$MONO_ARCH" "$HOME_DIR/$GAME_EXECUTABLE" && \
    patchelf --set-rpath "$GLIBC_LIB:/lib64" "$HOME_DIR/UnityPlayer.so" && \
    MONO_LIB="$DATA_DIR/MonoBleedingEdge/$MONO_ARCH/libmonobdwgc-2.0.so" && \
    if [ -f "$MONO_LIB" ]; then patchelf --set-rpath "$GLIBC_LIB:/lib64" "$MONO_LIB"; fi && \
    GAME_ASSEMBLY="$HOME_DIR/GameAssembly.so" && \
    if [ -f "$GAME_ASSEMBLY" ]; then patchelf --set-rpath "$GLIBC_LIB:/lib64" "$GAME_ASSEMBLY"; fi

RUN useradd -m gamescale && \
    echo "gamescale ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \
    chown -R gamescale:gamescale $HOME_DIR

# Add permissions to game build
RUN chmod +x ./$GAME_EXECUTABLE

USER gamescale

# Check directory before starting the container
RUN ls -lhrt .

# Check path before starting the container
RUN echo $PATH

# Start the game build
ENTRYPOINT ["/bin/sh", "-c", "./$GAME_EXECUTABLE $LAUNCH_PARAMS"]
```

## Fase 2: Configurare la distribuzione delle immagini
<a name="unity-plug-in-container-configure"></a>

In questo passaggio, fornisci le informazioni necessarie al plug-in per distribuire l'immagine del container in una flotta di container. Questo passaggio richiede le seguenti informazioni: 
+ La posizione della build del server di gioco, dell'immagine del contenitore o del repository Amazon ECR, in base alle selezioni effettuate nella Fase 1. 
+ Lo scenario da utilizzare per la distribuzione dei container gestiti.
+ Impostazioni di distribuzione opzionali. Questa sezione contiene le impostazioni di configurazione che il plugin utilizza per impostazione predefinita. È possibile modificarli o mantenere i valori predefiniti
  + Per impostazione predefinita, il nome del gioco è impostato sul nome del progetto di gioco. Tutte le AWS risorse create dal plugin fanno riferimento al valore del nome del gioco.
  + L'intervallo di porte, il limite di memoria e il limite di vCPU sono impostazioni di configurazione per la flotta di container. Per ulteriori informazioni sulla personalizzazione di questi valori, consulta [Configurare le connessioni di rete](containers-design-fleet.md#containers-custom-network) l'intervallo delle porte di connessione e [Imposta i limiti delle risorse](containers-design-fleet.md#containers-design-fleet-limits) i limiti delle risorse.
  + Il tag dell'immagine del contenitore viene utilizzato per classificare le immagini del contenitore in Amazon ECR. Il valore predefinito è `unity-gamelift-plugin`.

### Opzioni dello scenario di implementazione
<a name="unity-plug-in-container-configure-scenarios"></a>

#### Flotta di container in un'unica regione
<a name="w2aab9c11b9c21c27c13b7b3b1"></a>

Questo scenario distribuisce il tuo server di gioco su una singola flotta di container. È un buon punto di partenza per testare l'integrazione del server AWS e la configurazione del container. Implementa le seguenti risorse. 
+ Amazon GameLift ServersLa definizione del gruppo di container descrive come distribuire ed eseguire le immagini dei container su una flotta di container. 
+ Amazon GameLift Serversflotta di container (On-Demand) con il container del server di gioco installato e funzionante, con alias.
+ Pool di utenti e client Amazon Cognito per consentire ai giocatori di autenticarsi e iniziare una partita.
+ Autorizzatore API Gateway che collega il pool di utenti con APIs.
+ Elenco di controllo degli accessi Web (ACL) per limitare le chiamate eccessive dei giocatori all'API Gateway.
+ Servizio di backend per effettuare richieste al Amazon GameLift Servers servizio per conto dei client di gioco, ad esempio per richiedere sessioni di gioco e partecipare ai giochi: 
  + API Gateway \$1 funzione Lambda per consentire ai giocatori di richiedere uno slot per la sessione di gioco. Questa funzione chiama `CreateGameSession()` se non sono disponibili slot aperti.
  + API Gateway \$1 funzione Lambda per consentire ai giocatori di ottenere informazioni di connessione per la loro richiesta di gioco.

#### Flotta di container a regione singola con FlexMatch
<a name="w2aab9c11b9c21c27c13b7b3b3"></a>

Questo scenario distribuisce il server di gioco su una flotta di container, configura il posizionamento delle sessioni di gioco, e imposta il matchmaking. FlexMatch Questo scenario è utile quando sei pronto per iniziare a progettare un matchmaker personalizzato per la tua soluzione di hosting. Utilizza questo scenario per creare le risorse di base per questa soluzione, che potrai personalizzare in seguito, se necessario. Implementa le seguenti risorse:
+ Amazon GameLift Serversdefinizione del gruppo di container che descrive come distribuire ed eseguire le immagini dei container su una flotta di container. 
+ Amazon GameLift Serversflotta di container (On-Demand) con il container del server di gioco installato e funzionante, con alias.
+ FlexMatchconfigurazione del matchmaking e regole di matchmaking impostate per accettare le richieste dei giocatori e formare partite.
+ Amazon GameLift Serverscoda di sessione di gioco che soddisfa le richieste di partite proposte trovando la migliore risorsa di hosting possibile (in base a fattibilità, costo, latenza dei giocatori, ecc.) e avviando una sessione di gioco.
+ Pool di utenti e client Amazon Cognito per consentire ai giocatori di autenticarsi e iniziare una partita.
+ Autorizzatore API Gateway che collega il pool di utenti con APIs.
+ Elenco di controllo degli accessi Web (ACL) per limitare le chiamate eccessive dei giocatori all'API Gateway.
+ Servizio di backend per effettuare richieste al Amazon GameLift Servers servizio per conto dei client di gioco, ad esempio per richiedere sessioni di gioco e partecipare ai giochi: 
  + API Gateway \$1 funzione Lambda per consentire ai giocatori di richiedere uno slot per la sessione di gioco. Questa funzione chiama `StartMatchmaking()` se non sono disponibili slot aperti.
  + API Gateway \$1 funzione Lambda per consentire ai giocatori di ottenere informazioni di connessione per la loro richiesta di gioco.
+ Tabelle DynamoDB per archiviare i ticket di matchmaking per i giocatori e le informazioni sulle sessioni di gioco.
+ Argomento Amazon SNS \$1 funzione Lambda per gestire gli eventi. GameSessionQueue

## Implementa una flotta di container
<a name="unity-plug-in-container-deploy"></a>

Quando la configurazione della flotta è completa, scegli il pulsante **Implementa la flotta di container** per avviare l'implementazione. Questo processo può richiedere diversi minuti mentre il plug-in crea un'immagine del container e la invia a ECR, fornisce le risorse di hosting per la flotta di container, distribuisce la flotta e altre AWS risorse per lo scenario della soluzione di hosting selezionata. 

Quando si avvia una distribuzione, è possibile monitorare lo stato di avanzamento di ogni fase. A seconda della configurazione, i passaggi potrebbero includere quanto segue: 
+ Configurazione dell'immagine del contenitore
+ Creazione di un repository Amazon ECR 
+ Creare un'immagine e passare ad Amazon ECR
+ Creazione della definizione di un gruppo di contenitori
+ Creazione di una flotta di container

Per informazioni più dettagliate sulla distribuzione, scegli **Visualizza nella console AWS di gestione**. Quando la flotta di container raggiunge lo stato attivo, utilizza attivamente container con processi server pronti per ospitare sessioni di gioco.

Una volta completata l'implementazione, disponi di una flotta di container funzionante pronta per ospitare sessioni di gioco e accettare connessioni tra giocatori. 

Non puoi interrompere una distribuzione in corso. Se la distribuzione entra in uno stato errato o fallisce, puoi ricominciare da capo utilizzando l'opzione **Reset deployment**.

## Avvia il client
<a name="unity-plug-in-container-launch"></a>

A questo punto, hai completato tutte le attività per avviare e giocare al gioco multiplayer ospitato conAmazon GameLift Servers. Per giocare, scegli **Start Client** per avviare un'istanza locale del tuo client di gioco. 
+ Se hai utilizzato lo scenario a flotta singola, apri un'istanza del client di gioco con un solo giocatore e accedi alla mappa del server per muoverti. Puoi aprire una seconda istanza del client di gioco per aggiungere un secondo giocatore alla stessa mappa di gioco del server.
+ Se hai implementato FlexMatch lo scenario, la soluzione di hosting attende che almeno due client di gioco effettuino richieste di matchmaking. Apri almeno due istanze del tuo client di gioco con un giocatore. I due giocatori verranno abbinati e verrà richiesto di partecipare a una sessione di gioco per la partita. 

## Aggiorna una flotta di container
<a name="unity-plug-in-container-update"></a>

Se hai implementato con successo una soluzione di hosting di container gestiti, puoi utilizzare la funzionalità **Update deployment**. Questa opzione consente di aggiornare le impostazioni di configurazione per una flotta di container distribuita, senza dover creare una nuova flotta. 

Quando aggiorni una distribuzione, puoi distribuire un'immagine del contenitore con una build diversa del server di gioco, modificare il repository Amazon ECR, scegliere uno scenario di distribuzione diverso e personalizzare le impostazioni di configurazione opzionali.

Quando sei pronto per distribuire le modifiche, scegli Aggiorna. Il tempo necessario per un aggiornamento della distribuzione è simile a quello di una distribuzione completa. Per informazioni dettagliate sulla distribuzione, scegli **Visualizza nella console AWS di gestione**.

## Pulisci le risorse distribuite
<a name="unity-plug-in-container-cleanup"></a>

Come best practice, pulisci AWS le risorse per la tua soluzione di container gestiti non appena non ne hai più bisogno. Potresti continuare a sostenere dei costi per queste risorse se non le rimuovi.

Elimina le seguenti risorse:
+ Stack di risorse del contenitore gestito. Le risorse in questo stack dipendono dallo scenario di distribuzione selezionato. Per eliminare l'intero stack, usa la CloudFormation console. Gli stack generati dal Amazon GameLift Servers plugin utilizzano la seguente convenzione di denominazione:. `GameLiftPluginForUnity-{GameName}-Containers` Attendi il completamento del processo di eliminazione dello stack prima di avviare una nuova distribuzione di contenitori gestiti nel plug-in. Per ulteriori informazioni, consulta [Eliminare uno stack dalla console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html). CloudFormation 
+ Repository Amazon ECR. Se hai utilizzato il plug-in per creare un repository per l'immagine del contenitore, potresti voler eliminare tutti i repository che non sono più necessari. Non è necessario eliminare un repository prima di reimpostare la distribuzione di contenitori gestiti. Se aggiorni o ripristini una distribuzione, il plug-in utilizzerà automaticamente lo stesso repository a meno che non venga richiesto di utilizzarne un altro. Per ulteriori informazioni, consulta [Eliminazione di un repository privato in Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-delete.html).