Header Ads

Como começar com o AWS GameLift

GameLift é uma plataforma criada pela AWS, criada especificamente para a execução de servidores de videogame. Ele foi criado para economizar custos, dimensionando automaticamente o número de instâncias com base na demanda flutuante, e também pode lidar com a correspondência para você.

O que é o GameLift?

Cada partida disputada online deve ter um servidor em execução para hospedá-la, o que pode ficar caro muito rapidamente. Para piorar a situação, a demanda por servidores de jogos geralmente aumenta drasticamente ao longo do dia, tornando o horário de pico &’ demanda muito maior do que o necessário durante a noite.

O GameLift lida com o dimensionamento da arquitetura do servidor automaticamente, assim como o EC2 Autoscaling. Ele pode lidar com partidas básicas e classificar seus jogadores em lobbies com base na latência. O GameLift também suporta regras personalizadas de organização de partidas, que podem classificar os jogadores por nível de habilidade e se livrar da necessidade de criar e executar um sistema separado de organização de partidas.

O GameLift possui um SDK e plugins para o Unity e o Unreal. Você pode usar isso para se comunicar diretamente com o GameLift e colocar jogadores em filas ou solicitar novas sessões dentro do seu jogo.

O GameLift tem dois tipos de servidores: "Realtime" ” servidores e “ Personalizado ” servidores de jogos. Servidores em tempo real destinam-se a jogos que não precisam de servidores personalizados complexos, executando uma cópia decapitada do mecanismo de jogo. Pense em jogos para celular que realmente precisam apenas de um banco de dados e de alguma lógica básica. Você os programa usando o Script em tempo real, baseado em C #.

Embora sejam interessantes, eles também parecem bastante complicados e realmente exigem que você construa todo o seu jogo em torno dele, mas pode ser muito mais barato se o seu jogo puder ser equipado para rodar na plataforma. O “ Personalizado ” A opção server permite fazer upload do seu próprio servidor binário, o que oferece muito mais flexibilidade. Com esse tipo de servidor, o GameLift atua como uma versão sofisticada do dimensionamento automático do EC2, que é o que este artigo aborda e o que a maioria das pessoas provavelmente estará usando de qualquer maneira.

Alternativas ao GameLift

Se você não quiser usar o GameLift, você tem algumas opções. Primeiro, você pode executar seus servidores simplesmente no EC2 e usar o dimensionamento automático padrão do EC2. Se você não está usando as regras de dimensionamento personalizadas do GameLift, usar o dimensionamento automático de EC2 padrão não é muito diferente do GameLift. No entanto, há uma grande desvantagem aqui no dimensionamento automático regular do EC2, você deseja usar instâncias spot para minimizar os custos, pois elas são muitas vezes várias vezes mais baratas do que alugar capacidade sob demanda. >

O GameLift também usa Instâncias Spot, mas no GameLift existem precauções extras para garantir que seu servidor não seja encerrado se ele estiver sendo usado atualmente para hospedar um jogo. E, se precisar ser desligado, o GameLift pode sinalizar para o servidor executar o processo de desligamento normalmente. Estatisticamente falando, as interrupções da Instância spot são razoavelmente raras, mas serão melhor tratadas no GameLift.

Mesmo assim, o Auto-Scaling do EC2 é provavelmente a melhor alternativa ao GameLift na plataforma da AWS. Se você souber o número de linha de base dos players que precisará apoiar, poderá comprar instâncias reservadas por muito mais barato que as instâncias sob demanda e, em seguida, usar instâncias sob demanda para dimensionar durante o horário de pico.

Outra opção é simplesmente fazer com que o cliente hospede o servidor. Alguns tipos de jogos, principalmente jogos sem classificação por turnos ou casuais, podem fazer com que um dos clientes na partida atue como servidor de escuta, com todos os outros se conectando a esse cliente. No entanto, isso não é uma boa idéia para a execução de jogos classificados, porque se o servidor de escuta fechar, poderá cortar a conexão com todos os outros. Também abre a possibilidade de trapaça pesada, pois o cliente tem controle total do servidor (se ele estiver selecionado para hospedar o servidor de escuta). Apesar de tudo, esse tipo de rede pode ser usado para partidas entre amigos ou para pequenos jogos independentes, sem a capacidade de hospedar servidores dedicados para todos.

Criando e enviando uma compilação

O primeiro passo do uso do GameLift é a compilação. Você deve empacotar seu servidor em uma única compilação que possa ser carregada na AWS e executada em uma frota de servidores. A construção inclui seus binários, dependências e script de instalação. Pode ser executado no Windows ou Linux; normalmente o Linux será mais barato, pois há menos sobrecarga de memória e sem custos de licenciamento. No entanto, muitos jogos não são criados para Linux, portanto você pode ficar com o Windows. O script de instalação será um arquivo no diretório raiz da compilação do servidor de jogos chamado install. bat ou install. sh, dependendo da plataforma. O próprio servidor será instalado em C: \ game \ ou / local / game /.

Você pode fazer upload apenas de compilações da CLI da AWS. Para fazer isso, use o comando gamelift upload-build:

 aws gamelift upload-build --name < o nome da sua compilação > --build-version < seu número de compilação > --build-root < local build build > - sistema operacional WINDOWS_2012 - região us-east-1 

O processo de criação e execução depende da configuração do seu jogo. Portanto, se você quiser apenas testar os recursos do GameLift sem passar por esse processo, a AWS fornece um servidor de jogo de amostra que você pode enviar usando o console do GameLift.

Dê um nome à sua amostra e clique em fazer upload. Para usá-lo, você terá que criar uma "Frota". que usa essa compilação. As frotas são como grupos de dimensionamento automático - eles são configurados para executar o servidor de jogo e as sessões de host em instâncias separadas. Você pode criar uma nova frota clicando na compilação e selecionando “ Criar frota a partir da compilação ” ou você pode criar a frota de amostra a partir do passo a passo, clicando em "Criar frota". ” A frota e a compilação aparecerão no seu console agora, embora a frota provavelmente demore cerca de meia hora para criar e validar.

Se você clicar na frota, poderá visualizar informações sobre ela, como o número atual de sessões e jogadores ativos e todos os eventos do ciclo de vida da frota.

Você também pode editar as configurações da frota. Você encontrará opções para usar instâncias spot, alterar o tipo de instância e especificar o executável que é iniciado (e os parâmetros com os quais é iniciado).

Nesse painel de configurações, você também pode configurar sua frota para executar várias sessões de jogo em um único servidor. Se você souber quantas sessões um servidor pode suportar, defina-o aqui.

Depois que a frota de amostras concluir a validação, você poderá fazer o download do cliente de jogo de amostra (construído com o mecanismo de jogo Lumberyard da AWS, um fork do CryEngine) e conectar-se a ele usando o token fornecido a você no tutorial.

No que diz respeito ao uso de sua frota, você desejará criar uma Fila, 8211 que classifica os jogadores em partidas com base na latência. Você pode especificar regras para tentar encontrar correspondências de baixa latência antes de tentar correspondências de latência mais alta e selecionar a frota para a qual deseja direcionar os usuários.

A fim de proporcionar um bom casamento para todos, você precisará de servidores em todo o mundo. Os preços da AWS em outras regiões podem ficar caros, mas se você optar por alguns mais baratos, poderá reduzir seus custos.

Via: How to Geek

Nenhum comentário