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'
RegisterCompute
operazione. 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](images/qs_hosting_flow_anywhere.png)
Argomenti
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.
Creazione di un parco istanze
Usa la GameLift console Amazon
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.
Registra il tuo computer
Per registrare la tua risorsa di calcolo nella flotta che hai creato, usa il register-compute
Sostituiscilo con l'ARN della flotta fleet-id
fleet-id
restituito nel passaggio precedente o trovato nella pagina dei dettagli del tuo parco veicoli nella console. Sostituisci e
con l'indirizzo IP della tua risorsa di elaborazione. ip-address
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-idarn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445
\ --ip-address10.1.2.3
\ --locationcustom-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
-
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
comandiregister-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 ilcompute-name
con il nome del calcolo creato utilizzando ilregister-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-nameHardwareAnywhere
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" }
-
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); -
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
-
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(); }
-
Dal servizio di backend del client di gioco, avvia la sessione di gioco utilizzando il comando
start-matchmaking
start-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
\ --nameGameSession1
\ --maximum-player-session-count2
\ --locationcustom-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'GameSession
oggetto 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. -
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);
-
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