As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Integre-se Amazon GameLift Servers com um projeto de servidor de jogos Unity
nota
Este tópico fornece informações para uma versão anterior do Amazon GameLift Servers plug-in para Unity. A versão 1.0.0 (lançada em 2021) 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 Amazon GameLift Servers Anywhere, consulte. Amazon GameLift Serversplugin para Unity (servidor SDK 5.x)
Este tópico ajuda você a preparar seu servidor de jogos personalizado para hospedagemAmazon GameLift Servers. O servidor do jogo deve ser capaz de notificar Amazon GameLift Servers sobre seu status, iniciar e interromper sessões de jogo quando solicitado e realizar outras tarefas. Para obter mais informações, consulte Adicione Amazon GameLift Servers ao seu servidor de jogos.
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 Amazon GameLift Servers plug-in para Unity versão 1.0.0, que usa o SDK do servidor 4.x ou anterior.
Configure a comunicação Amazon GameLift Servers e informe que o processo do servidor está pronto para hospedar uma sessão de jogo.
-
Inicialize o SDK do servidor ao chamar
InitSDK()
. -
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 Amazon GameLift Servers serviço invoca, como,,OnGameSession()
,OnGameSessionUpdate()
.OnProcessTerminate()
OnHealthCheck()
Amazon GameLift Serverspode levar alguns minutos para fornecer um retorno de chamada. -
Amazon GameLift Serversatualiza o status do processo do servidor para
ACTIVE
. -
Amazon GameLift Serversliga
onHealthCheck
periodicamente.
O exemplo de código a seguir mostra como configurar um processo de servidor simples comAmazon 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 Amazon GameLift Servers plug-in para Unity versão 1.0.0, que usa o SDK do servidor 4.x ou anterior.
Depois que a inicialização do jogo estiver concluída, você poderá iniciar uma sessão de jogo.
-
Implemente a função
onStartGameSession
de retorno de chamada. Amazon GameLift Serversinvoca esse método para iniciar uma nova sessão de jogo no processo do servidor e receber conexões de jogadores. -
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 4.x -- Ações.
O exemplo de código a seguir ilustra como iniciar uma sessão de jogo comAmazon 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 Amazon GameLift Servers plug-in para Unity versão 1.0.0, que usa o SDK do servidor 4.x ou anterior.
Notifique 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.
-
Configure uma função chamada
onProcessTerminate
para receber solicitações Amazon GameLift Servers e chamadasProcessEnding()
. -
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 para Amazon GameLift Servers
nota
Este tópico se refere ao Amazon GameLift Servers plug-in para Unity versão 1.0.0, que usa o SDK do servidor 4.x ou anterior.
Depois de integrar seu servidor de jogosAmazon GameLift Servers, carregue os arquivos de compilação em uma frota para que ela Amazon GameLift Servers possa implantá-los na hospedagem de jogos. Para obter mais informações sobre como fazer o upload do seu servidor paraAmazon GameLift Servers, consulteImplemente uma criação de servidor personalizada para Amazon GameLift Servers hospedagem.