Configura il gioco per i test locali con Amazon GameLift Anywhere - 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à.

Configura il gioco per i test locali con Amazon GameLift Anywhere

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

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

Imposta il tuo profilo

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'AWSaccount 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 GameLift menu Amazon e scegli Imposta profili AWS account.

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

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 GameLift servizio Amazon 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

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.

  2. Vai al GitHub repository aws/ amazon-gamelift-plugin-unity e apri il percorso. Samples~/SampleGame/Assets/Scripts/Server

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

Il codice di esempio include questi elementi minimi richiesti, che utilizzano l'SDK del server Amazon GameLift C# (versione 5):

  • Inizializza un client Amazon GameLift API. La InitSDK() chiamata con i parametri del server è necessaria per una flotta Amazon GameLift Anywhere. Queste impostazioni vengono impostate automaticamente per l'uso nel plug-in.

  • Implementa le funzioni di callback richieste per rispondere alle richieste del GameLift servizio Amazon, tra cui OnStartGameSessionOnProcessTerminate, e. onHealthCheck

  • Chiamate ProcessReady() con una porta designata per notificare al GameLift servizio Amazon quando il processo del server è pronto per ospitare sessioni di gioco.

Se desideri personalizzare il codice server di esempio, consulta queste risorse:

Integra il codice del tuo cliente

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. Usa le API del GameLift servizio Amazon (nell'AWSSDK) per ottenere informazioni sulle sessioni 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 GameLift servizio Amazon. Quando sviluppi il tuo gioco per il cloud hosting o se prevedi di utilizzare le flotte 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

Per GameLift integrare Amazon nel tuo codice cliente, usa 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 riportate in Aggiungi Amazon GameLift al tuo client 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'AWSSDK per. GameLift Il client di gioco utilizza queste credenziali per autenticare le richieste al servizio Amazon GameLift .

Nota

Il profilo delle credenziali viene generato dal plug-in 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

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'AWSaccount 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 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

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.

  2. Scegli Register compute. Puoi tenere traccia dello stato di avanzamento di questa richiesta nel registro di output dell'editor Unreal.

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 verifica di potersi connettere al computer e restituisce informazioni sull'elaborazione appena registrata.

Avvia il gioco

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 plug-in utilizza questa risorsa per memorizzare determinate informazioni di cui il client di gioco ha bisogno per connettersi al GameLift servizio Amazon.

    1. Se non hai importato e inizializzato il gioco di esempio, crea una nuova GameLiftClientSettings risorsa. Nel menu principale dell'editor di Unity, scegli Risorse, Crea GameLift, Impostazioni client. Se crei più copie del GameLiftClientSettings tuo progetto, il plugin lo rileva automaticamente e ti notifica quale risorsa verrà aggiornata dal plug-in.

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

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

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

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

  4. 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 stai usando 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.

  2. Ottieni un token di autenticazione a breve termine chiamando il comando AWS CLI get-compute-auth-tokencon 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]
  3. 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]