Integrar o Amazon GameLift Servers com um projeto de servidor de jogo do Unity - Amazon GameLift Servers

Integrar o Amazon GameLift Servers com um projeto de servidor de jogo do Unity

nota

Este tópico fornece informações para uma versão anterior do plug-in do Amazon GameLift Servers para Unity. A versão 1.x usa o SDK do servidor para Amazon GameLift Servers 4.x ou anterior. Para obter a documentação sobre a versão mais recente do plug-in, que usa o SDK 5.x do servidor e é compatível com recursos mais recentes, como Amazon GameLift Servers Anywhere e hospedagem de contêineres gerenciados, consulte Amazon GameLift ServersPlug-in para Unity (SDK 5.x de servidor).

Este tópico ajuda você a preparar seu servidor de jogos personalizado para hospedagem no Amazon GameLift Servers. O servidor de jogos deve poder notificar o Amazon GameLift Servers sobre seu status, iniciar e interromper sessões de jogos quando solicitado e executar outras tarefas. Para ter mais informações, consulte .  Integre o Amazon GameLift Servers ao seu servidor de jogos com o SDK do servidor..

Pré-requisitos

Antes de integrar o servidor de jogos, execute as tarefas a seguir:

Configure um novo processo de servidor

nota

Este tópico se refere ao plug-in do Amazon GameLift Servers para Unity versão 1.0.0, que usa o SDK 4.x ou anterior do servidor.

Configure a comunicação com o Amazon GameLift Servers e informe que o processo do servidor está pronto para hospedar uma sessão de jogo.

  1. Inicialize o SDK do servidor ao chamar InitSDK().

  2. Para preparar o servidor para aceitar uma sessão de jogo, chame ProcessReady() com a porta de conexão e os detalhes da localização da sessão de jogo. Inclua os nomes das funções de retorno de chamada que o serviço do Amazon GameLift Servers invoca, como OnGameSession(), OnGameSessionUpdate(), OnProcessTerminate(), OnHealthCheck(). O Amazon GameLift Servers pode levar alguns minutos para fornecer um retorno de chamada.

  3. O Amazon GameLift Servers atualiza o status do processo do servidor para ACTIVE.

  4. O Amazon GameLift Servers chama o onHealthCheck periodicamente.

O exemplo de código a seguir mostra como configurar um processo de servidor simples com o Amazon GameLift Servers.

//initSDK var initSDKOutcome = GameLiftServerAPI.InitSDK(); //processReady // Set parameters and call ProcessReady var processParams = new ProcessParameters( this.OnGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnGameSessionUpdate, port, // Examples of log and error files written by the game server new LogParameters(new List<string>() { "C:\\game\\logs", "C:\\game\\error" }) ); var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams); // Implement callback functions void OnGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); } void OnProcessTerminate() { // game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup var ProcessEndingOutcome = GameLiftServerAPI.ProcessEnding(); } bool OnHealthCheck() { bool isHealthy; // complete health evaluation within 60 seconds and set health return isHealthy; }

Iniciar uma sessão de jogo

nota

Este tópico se refere ao plug-in do Amazon GameLift Servers para Unity versão 1.0.0, que usa o SDK 4.x ou anterior do servidor.

Depois que a inicialização do jogo estiver concluída, você poderá iniciar uma sessão de jogo.

  1. Implemente a função de retorno onStartGameSession. O Amazon GameLift Servers invoca esse método para iniciar uma nova sessão de jogo no processo do servidor e receber conexões de jogadores.

  2. Para ativar uma sessão de jogo, chame ActivateGameSession(). Para obter mais informações sobre o SDK, consulte SDK do servidor C# para Amazon GameLift Servers 4x – Ações.

O exemplo de código a seguir ilustra como começar uma sessão de jogo com o Amazon GameLift Servers.

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(); }

Encerrar uma sessão de jogo

nota

Este tópico se refere ao plug-in do Amazon GameLift Servers para Unity versão 1.0.0, que usa o SDK 4.x ou anterior do servidor.

Notifique o Amazon GameLift Servers quando uma sessão de jogo estiver terminando. Como melhor prática, desligue os processos do servidor após a conclusão das sessões de jogo para reciclar e atualizar os recursos de hospedagem.

  1. Configure uma função chamada onProcessTerminate para receber solicitações do Amazon GameLift Servers e chame ProcessEnding().

  2. O status do processo muda para TERMINATED.

O exemplo a seguir descreve como finalizar um processo para uma sessão de jogo.

var processEndingOutcome = GameLiftServerAPI.ProcessEnding(); if (processReadyOutcome.Success) Environment.Exit(0); // otherwise, exit with error code Environment.Exit(errorCode);

Crie a compilação do servidor e faça o upload do servidor para Amazon GameLift Servers

nota

Este tópico se refere ao plug-in do Amazon GameLift Servers para Unity versão 1.0.0, que usa o SDK 4.x ou anterior do servidor.

Depois de integrar seu servidor de jogos com o Amazon GameLift Servers, faça o upload dos arquivos de compilação para uma frota para que o Amazon GameLift Servers possa implantá-los para hospedagem de jogos. Para obter mais informações sobre como fazer o upload de seu servidor para o Amazon GameLift Servers, consulte Criar uma compilação personalizada do servidor de jogos para o Amazon GameLift Servers.