Lançamento acelerado com o Amazon GameLift (Estudo de caso de cliente)

Fundado em 2012 por cinco veteranos da indústria de jogos, o Proletariat, com sede em Boston, é uma empresa de jogos independentes focada na construção de experiências multiplayer inovadoras. Eles são os mentores por trás do premiado World Zombination, um enorme jogo on-line onde os jogadores trabalham em conjunto para criar estratégias com exércitos de zumbis ou seres humanos para atacar e defender as cidades. Seu mais novo jogo para vários jogadores, o Streamline, foi criado para a interação do público-alvo e permite que as emissoras de streaming e os espectadores alterem as regras de jogo em tempo real durante uma partida.

O desafio 

O time de desenvolvimento da empresa
anunciou a Streamline na GDC 2016 em março e tinha planejado desvendar seu beta em setembro no TwitchCon 2016, o principal evento para streamers de jogos. Mas, quando a Amazon se aproximou deles com a oportunidade de ser incluída no lançamento público do Twitch Prime no TwitchCon 2016, o Proletariat decidiu acelerar seu desenvolvimento para tornar o Streamline disponível para todos jogarem. O Proletariado estava animado, mas preocupado com o fato de que sua solução de servidor de jogos customizada já era muito demorada para gerenciar e não possuía a funcionalidade necessária para suportar a demanda crescente dos jogadores.

A solução de nuvem personalizada da Proletariat foi construída em torno do AWS Elastic Container Service (ECS), um serviço de gerenciamento de contêineres que facilita o gerenciamento de aplicativos em instâncias do AWS EC2. Eles operavam manualmente as funcionalidades básicas do servidor de jogos, como executar verificações de integridade do servidor e conectar os jogadores aos servidores de jogos disponíveis. Esses processos funcionavam para a carga de seus jogadores, mas seriam muito demorados para gerenciar uma vez que a Streamline se tornasse publicamente disponível. Sua solução de nuvem personalizada também não conseguia identificar quais servidores de jogos tinham sessões de jogos ativas. Isso significava que, embora estivessem escalando manualmente a capacidade do servidor, eles poderiam acidentalmente reduzir uma sessão de jogo ativa e desconectar os jogadores do Streamline. Também foi difícil simplificar os testes porque eles não poderiam executar vários processos de servidor de jogo em uma única instância do EC2. Cada servidor de jogos precisava de uma porta pública exclusiva, mas a equipe não conseguiu recuperar o número da porta pública de dentro do seu contêiner.

“Para a equipe da Proletariat Inc., a escolha foi bastante simples – contratar uma equipe de engenheiros para passar meses construindo nossa infraestrutura de nuvem, ou implantar com o Amazon GameLift em poucos minutos”, disse Seth Sivak, CEO da Proletariat Inc.

A implementação

A Proletariat baixou o SDK do Amazon GameLift Server para C ++, integrou-o à sua compilação do servidor de jogos Unreal Engine e carregou o servidor de jogos para o Amazon GameLift. Para alojar seu servidor de jogo Unreal Engine, o Proletariado precisava decidir qual dos 5 tipos de instância do Amazon GameLift seria melhor atender às suas necessidades. “Sendo um jogo em tempo real, precisávamos de instâncias Amazon GameLift optimizadas para a rede, por isso escolhemos c4.xlarge.gamelift para a nossa frota”, disse Cauê Waneck, Engenheiro Líder da Streamline. “O Amazon GameLift nos permite definir nossa configuração de tempo de execução para suportar quatro servidores de jogos em cada instância, o que é perfeito porque nossos servidores são de thread único. Isso nos permite aproveitar um processo de servidor de jogos por vCPU, o que simplifica muito nossos processos de teste e iteração. ”

A Proletariat usou o AWS JavaScript SDK com o Amazon GameLift para gerenciar a criação de novas sessões de jogos entre seu sistema de matchmaking Node.js customizado e seus servidores de jogos C ++ no Amazon GameLift. Eles também usaram dados de sessão de jogos específicos para encontrar servidores de jogos com capacidade disponível para partidas rápidas. Esses dados ajudaram a classificar se um servidor deveria aceitar novos jogadores e identificar quais sessões de jogo tinham slots de player disponíveis. “O Amazon GameLift tornou tão fácil para nós combinar grandes volumes de jogadores e reduzir o tempo de espera. Amazon GameLift é super fácil de implementar e funciona muito bem “, disse Waneck. “Ele também nos ajudou a dar aos nossos jogadores a capacidade de hospedar jogos de jogos personalizados, porque poderíamos associar uma sessão de jogo com um líder do partido. ”

A equipe também ativou a proteção de sessão de jogos integrada do Amazon GameLift para evitar que instâncias com jogos ativos diminuíssem e levassem os jogadores offline. “O Amazon GameLift é como uma apólice de seguro – isso nos deu tranqüilidade sobre a escalabilidade do servidor, especialmente no lançamento”, disse Waneck. “Foi fácil de configurar e monitorar usando o console Amazon GameLift. Também podemos ativar facilmente a escala automática do servidor quando precisamos disso também. ”

A AWS Command Line Interface (CLI) com o Amazon GameLift tornou mais fácil lançar novas frotas e reutilizar comandos ao implementar a lógica no sistema de construção do Proletariado. Durante a implantação das atualizações do cliente do jogo, o Proletariado usou o sim. O Proletariado queria continuar usando a comprovada infraestrutura da AWS para hospedar seus servidores de jogos, mas levaria milhares de horas para construir a funcionalidade de que precisavam. Com o TwitchCon 2016 se aproximando rapidamente, o Proletariado foi introduzido no Amazon GameLift; Um serviço gerenciado AWS que simplifica a hospedagem de servidores de jogos e escala a capacidade do servidor em minutos.

Fonte:
Documentação técnica da AWS GameLift – Tradução simultânea.

This entry was posted in Amazon Game Studios, Amazon Lumberyard, AWS, Engines, GameLift. Bookmark the permalink.