Crea una GameLift Anywhere flotta Amazon - Amazon GameLift

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

Crea una GameLift Anywhere flotta Amazon

Usa Amazon GameLift per integrare l'hardware del tuo ambiente nel tuo hosting di GameLift giochi Amazon. Amazon GameLift Anywhere registra il tuo hardware presso Amazon GameLift in una Anywhere flotta. Puoi integrare Anywhere e gestire le flotte EC2 nelle code dei matchmaker e delle sessioni di gioco per gestire il matchmaking e il posizionamento delle partite.

Per ulteriori informazioni su come testare i server di gioco con Amazon GameLift Anywhere, consultaTesta la tua integrazione utilizzando le GameLift Anywhere flotte Amazon.

Per iniziare, utilizza la Supporto allo sviluppo con Amazon GameLift versione 5 o successiva e consulta i seguenti concetti per l'utilizzo di una GameLift Anywhere flotta Amazon.

Posizioni personalizzate

GameLift AnywhereLe flotte Amazon utilizzano posizioni personalizzate per rappresentare le ubicazioni fisiche della tua infrastruttura.

Registrazione del dispositivo

Per consentire a una GameLift Anywhere flotta Amazon di comunicare con le tue risorse di elaborazione, devi prima registrare il dispositivo. Puoi completare la registrazione del dispositivo da Amazon GameLift AWS SDK utilizzando l'RegisterComputeoperazione. Questa operazione utilizza l'indirizzo IP del dispositivo per associarlo a una posizione della flotta e comunicare con Amazon GameLift.

Token di autenticazione

Quando inizializzi un server di gioco sul tuo computer, l'Amazon GameLift Server SDK utilizza un token di autenticazione per autenticare il tuo server di gioco su Amazon. GameLift Puoi riutilizzare lo stesso token di autenticazione per tutti i server di gioco sullo stesso computer, fino alla scadenza del token di autenticazione. Per recuperare il token di autenticazione, chiama il comando (). get-compute-auth-token AWS Command Line Interface AWS CLI Passa il token a ciascun server di gioco secondo necessità.

Sessioni di gioco

Ogni sessione di gioco su un computer utilizza lo stesso token di autenticazione creato durante la registrazione del calcolo in una postazione della flotta.

Il diagramma seguente mostra una coda di sessioni di gioco che utilizza FlexMatch matchmaking e più flotte. Le flotte includono una flotta EC2 con istanze C5, una flotta con un laptop di sviluppo e una Anywhere flotta con un server rack ospitato dal cliente. Anywhere

Un diagramma di una coda di sessioni di gioco che utilizza una flotta EC2 gestita e due flotte. Anywhere

Crea una posizione personalizzata

Per iniziare a ospitare giochi sulle tue risorse di elaborazione, crea una posizione personalizzata che descriva dove risiede il tuo computer.

Console
Per creare una posizione personalizzata
  1. Apri la GameLift console Amazon.

  2. Nel pannello di navigazione, sotto Hosting, scegli Sedi.

  3. Nella pagina Locations (Posizioni) scegliere Create location (Crea posizione).

  4. Nella finestra di dialogo Crea posizione, procedi come segue:

    1. Immettete il nome di una località. Indica la posizione del tuo hardware che Amazon GameLift utilizza per eseguire i tuoi giochi nelle Anywhere flotte. Amazon GameLift aggiunge il nome della tua sede personalizzata con custom-.

    2. (Facoltativo) Aggiungi tag come coppie chiave-valore alla tua posizione personalizzata. Scegli Aggiungi nuovo tag per ogni tag che desideri aggiungere.

    3. Scegli Crea.

AWS CLI

Crea una posizione personalizzata utilizzando il create-locationcomando. location-nameIndica la posizione dell'hardware GameLift utilizzato da Amazon per eseguire i giochi nelle Anywhere flotte. Quando crei una località personalizzata, il nome della località deve iniziare concustom-.

aws gamelift create-location \ --location-name custom-location-1

Output

{ "Location": { "LocationName": "custom-location-1", "LocationArn": "arn:aws:gamelift:us-east-1:111122223333:location/custom-location-1" } }

Creazione di un parco istanze

Usa la GameLift console Amazon o il AWS CLI per creare una Anywhere flotta.

Dopo aver creato una nuova Anywhere flotta, lo stato della flotta passa da NEW aACTIVE. Quando raggiunge lo ACTIVE stato, la flotta è pronta per ospitare sessioni di gioco. Per assistenza in caso di problemi con la creazione del parco istanze, consulta Esegui il debug dei problemi relativi alla GameLift flotta Amazon.

Console
Per creare una Anywhere flotta
  1. Apri la GameLift console Amazon.

  2. Nel pannello di navigazione, sotto Hosting, scegli Fleets.

  3. Nella pagina Fleets (Parchi istanze) scegliere Create (Crea).

  4. Nella fase Tipo di calcolo, scegli Anywhere, quindi scegli Avanti.

  5. Nella fase Dettagli della flotta, definisci i dettagli, quindi scegli Avanti.

  6. Nella fase Posizioni personalizzate, seleziona la posizione personalizzata che hai creato, quindi scegli Avanti. Amazon seleziona GameLift automaticamente la casa Regione AWS come regione in cui stai creando la flotta. Puoi utilizzare la regione d'origine per accedere e utilizzare le tue risorse.

  7. Completa i passaggi rimanenti per la creazione della flotta, quindi scegli Invia per creare la tua Anywhere flotta.

AWS CLI

Crea una Anywhere flotta usando il create-fleetcomando. Includi la tua posizione personalizzata inlocations. Amazon GameLift crea la flotta nella tua regione di residenza e nelle località personalizzate che fornisci. Nell'esempio seguente, sostituisci FleetName e custom-location-1 con le tue informazioni. La variabile custom-location-1 è il nome della posizione creata nel Crea una posizione personalizzata passaggio.

aws gamelift create-fleet \ --name FleetName \ --compute-type ANYWHERE \ --locations "Location=custom-location-1"

Output di esempio

{ "FleetAttributes": { "FleetId": "fleet-cebb4da2-52a8-4c27-9b85-587f945c6445", "FleetArn": "arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445", "Name": "HardwareAnywhere", "CreationTime": "2023-02-23T17:57:42.293000+00:00", "Status": "ACTIVE", "MetricGroups": [ "default" ], "CertificateConfiguration": { "CertificateType": "DISABLED" }, "ComputeType": "ANYWHERE" } }

Registra il tuo computer

Per registrare la tua risorsa di calcolo nella flotta che hai creato, usa il register-computecomando. fleet-idSostituiscilo con l'ARN della flotta fleet-id restituito nel passaggio precedente o trovato nella pagina dei dettagli del tuo parco veicoli nella console. Sostituisci e ip-address con l'indirizzo IP della tua risorsa di elaborazione. compute-name

Nota

Ti consigliamo di chiamare entrambi i get-compute-auth-token comandi register-compute e da uno script o da un gestore di processi diverso dal server di gioco.

aws gamelift register-compute \ --compute-name HardwareAnywhere \ --fleet-id arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445 \ --ip-address 10.1.2.3 \ --location custom-location-1

Output di esempio

{ "Compute": { "FleetId": "fleet-cebb4da2-52a8-4c27-9b85-587f945c6445", "FleetArn": "arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445", "ComputeName": "HardwareAnywhere", "ComputeArn": "arn:aws:gamelift:us-east-1:111122223333:compute/HardwareAnywhere", "IpAddress": "10.1.2.3", "ComputeStatus": "Active", "Location": "custom-location-1", "CreationTime": "2023-02-23T18:09:26.727000+00:00", "GameLiftServiceSdkEndpoint": "wss://us-east-1.api.amazongamelift.com" } }

Esegui un processo sul server

  1. Ottieni il token di autenticazione per la tua risorsa di calcolo dalla flotta che hai creato.

    Il tuo server di gioco utilizza il token di autenticazione per l'autenticazione con Amazon GameLift. Ogni token di autenticazione ha una scadenza. Per continuare a utilizzare la risorsa di calcolo per ospitare il server di gioco, recupera un nuovo token di autenticazione prima della scadenza.

    Nota

    Amazon GameLift consiglia di chiamare entrambi i get-compute-auth-token comandi register-compute e da uno script o un gestore di processi separato dal server di gioco.

    Nell'esempio seguente, sostituisci il fleet-id con l'ARN o l'ID flotta del parco veicoli creato nei passaggi precedenti. Sostituisci il compute-name con il nome del calcolo creato utilizzando il register-compute comando in un passaggio precedente.

    aws gamelift get-compute-auth-token \ --fleet-id arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445 \ --compute-name HardwareAnywhere

    Output di esempio:

    { "FleetId": "fleet-cebb4da2-52a8-4c27-9b85-587f945c6445", "FleetArn": "arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445", "ComputeName": "HardwareAnywhere", "ComputeArn": "arn:aws:gamelift:us-east-1:111122223333:compute/HardwareAnywhere", "AuthToken": "0c728041-3e84-4aaa-b927-a0fb202684c0", "ExpirationTimestamp": "2023-02-23T18:47:54+00:00" }
  2. Esegui un'istanza del file eseguibile del tuo server di gioco.

    Per far funzionare il server di gioco, inizializza il server di gioco chiamandolo InitSDK() e passandogli i parametri del server. Per ulteriori informazioni, consulta ServerParameters.

    Ingresso SDK del server:

    //Define the server parameters ServerParameters serverParameters = new ServerParameters( webSocketUrl=wss://us-east-1.api.amazongamelift.com, processId=PID1234, hostId=HardwareAnywhere, fleetId=arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445, authToken=0c728041-3e84-4aaa-b927-a0fb202684c0); //InitSDK establishes a connection with GameLift's websocket server for communication. var initSDKOutcome = GameLiftServerAPI.InitSDK(serverParameters);
  3. Quando il processo server è pronto per ospitare una sessione di gioco, chiama Amazon ProcessReady() dal server di gioco GameLift. Per ulteriori informazioni sui parametri di processo, consulta ProcessParameters

    // Set parameters and call ProcessReady var processParams = new ProcessParameters( this.OnStartGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnUpdateGameSession, port=1024, new LogParameters(new List<string>() // Examples of log and error files written by the game server { "C:\\game\\logs", "C:\\game\\error" }) ); var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams);

Creare sessioni di gioco

  1. Aggiungi la logica al tuo server di gioco in modo che il processo del server risponda al onStartGameSession() messaggio conActivateGameSession(). Questa operazione non ha parametri, ma invia una conferma ad Amazon GameLift che il tuo server ha ricevuto e accettato il messaggio di creazione della sessione di gioco.

    void OnStartGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); }
  2. Dal servizio di backend del client di gioco, avvia la sessione di gioco utilizzando il comando start-matchmakingstart-game-session-placement, o. create-game-session

    aws gamelift create-game-session \ --fleet-id arn:aws:gamelift:us-east-1:682428703967:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445 \ --name GameSession1 \ --maximum-player-session-count 2 \ --location custom-location-1

    Output di esempio:

    GameSession { FleetId = arn:aws:gamelift:us-east-1:682428703967:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445, GameSessionId = 4444-4444, Name = GameSession1, Location = custom-location-1, IpAddress = 10.2.3.4, Port = 1024, ... }

    Amazon GameLift invia un onStartGameSession() messaggio al processo del tuo server registrato. Il messaggio contiene l'GameSessionoggetto del passaggio precedente con le proprietà del gioco, i dati delle sessioni di gioco, i dati del matchmaker e altro ancora sulla sessione di gioco.

  3. Quando la sessione di gioco è completa, termina il processo del server di gioco.

    Ingresso SDK del server:

    var processEndingOutcome = GameLiftServerAPI.ProcessEnding(); if (processReadyOutcome.Success) Environment.Exit(0); // otherwise, exit with error code Environment.Exit(errorCode);
  4. Avvia un altro processo del server di gioco ProcessReady(processParams) chiamando.

Esegui la migrazione a EC2 gestito

Dopo aver sviluppato il server di gioco e aver completato la preparazione per la produzione, puoi affidare la GameLift gestione dell'hardware ad Amazon. Per migrare a una flotta EC2 gestita, carica la tua build su Amazon GameLift e crea una flotta EC2 gestita. Per ulteriori informazioni sul caricamento della build e sulla configurazione di una flotta, consulta e. Carica un server personalizzato su Amazon GameLift Crea una flotta GameLift gestita da Amazon