211service.com
'É simplesmente impossível': desenvolvedores explicam por que grandes jogos online sempre parecem quebrar no lançamento
Entre o lançamento fragmentado de Hino , o lançamento surpresa de Apex Legends e o próximo lançamento de A Divisão 2 , o início de 2019 está repleto de grandes jogos online. Como os últimos e inúmeros jogos anteriores da BioWare demonstraram, os jogos multiplayer desse escopo raramente são lançados em um estado brilhante. Parece que todo jogo online tem algum problemas técnicos no lançamento, sejam eles menores, como os bugs da primeira semana em Apex Legends, ou quebradores de jogo, como os problemas de conexão que inicialmente prejudicaram Diabo 3 .
Tivemos lançamentos problemáticos desde que tivemos jogos online, mas parece que a conversa sobre os problemas de lançamento não foi a lugar nenhum. Vemos as mesmas perguntas aparecerem todas as vezes. Por quê isso aconteceu? Por que os desenvolvedores não anteciparam isso? Por que demorou tanto para consertar? Com tantos grandes jogos online sendo lançados tão próximos, com a ascensão dos jogos como serviço na indústria, agora parecia um bom momento para trazer algumas dessas perguntas aos desenvolvedores na esperança de desmistificar o temido tempo de inatividade do dia do lançamento. Por que continuamos vendo os mesmos problemas quando os jogos são lançados e como os desenvolvedores lidam com eles?
'A capacidade raramente é o problema'

Sempre que os jogos ficam inativos ou demoram para se conectar, muitos assumem que é porque ficaram sem espaço no servidor. Que os desenvolvedores subestimaram quantos jogadores fariam login e, como resultado, seus servidores falharam sob a pressão. Nesse caso, tudo o que eles precisam fazer é pagar por mais servidores, certo? Bem, não, não necessariamente; como é frequentemente o caso ao fazer jogos, não é tão simples.
'Uma das mentalidades que você vê muito online é: 'Por que a Empresa A não tem mais servidores?'' Alex Mann, gerente de desenvolvimento e ex-analista de controle de qualidade da EA, nos diz. “No lançamento, você vê a maior quantidade de tráfego nesses jogos. Todo mundo está empolgado, a equipe de marketing fez seu trabalho bem, todo mundo está muito animado para ficar online, e no momento em que o jogo aparece, todo mundo clica em 'Ir'. Mas você notará que com o ciclo de vida da maioria dos jogos, você tem essa explosão massiva e depois diminui. Se todas as empresas de jogos comprassem o hardware para cobrir tudo o que precisavam naquela explosão inicial, duas semanas depois eles teriam 50% de seu hardware parado nunca usado.'
'Isso não é sobre 'Vamos jogar muito dinheiro nisso e torná-lo maior.''
Alex Mann
Isso torna difícil para os desenvolvedores se prepararem para o lançamento sem gastar demais e comprar muitos servidores. Felizmente, os desenvolvedores agora têm acesso a servidores virtuais por meio de empresas como a Amazon Web Services, e eles podem ser ativados ou desativados conforme necessário. Esses tipos de servidores também se tornaram necessários à medida que os jogos se distanciaram das conexões ponto a ponto – o tipo que suportava jogos como Halo 2 em 2004 – para servidores dedicados que suportam jogos massivos e persistentes como Destino 2 e Hino. No entanto, os servidores virtuais não são uma cura milagrosa e têm seus próprios problemas.

'A capacidade não é necessariamente sobre o número de servidores', diz Mann. “Mesmo que esperemos milhões de jogadores e tenhamos os servidores, não esperamos que todos cheguem ao portal de login ao mesmo tempo. Trata-se de ter pistas suficientes na auto-estrada para as pessoas passarem. Você tem dois países conectados via ponte, e ambos os países têm muito espaço neles, mas para passar do país do cliente para o país do servidor, qual o tamanho dessa ponte? Não se trata de 'Vamos jogar muito dinheiro nisso e torná-lo maior'. No final das contas, geralmente é um gargalo baseado na tecnologia e no mecanismo que você está usando.'
Equívocos comuns 
Um equívoco que Mann frequentemente vê tem a ver com a forma como as equipes de desenvolvimento operam - especificamente, a ideia de que qualquer um pode consertar qualquer coisa.
'Quando você está lidando com bases de código complexas que abrangem vários arquivos criados por 200 pessoas, se eu olhar para meus codificadores e eles construíram isso, o codificador A não conhece todo o projeto', explica ele. “Existe esse conceito de que todo mundo sabe tudo sobre o código do jogo, então o artista de nível deve ajudar com a correção da arquitetura de nível. Você sabe, gerentes de comunidade não consertam bugs.'
Ouvi a mesma coisa de Fredrik Brönjemark, diretor de serviços ao vivo da Massive Entertainment, o estúdio por trás de The Division. 'Grandes jogos online são peças de software extremamente complexas, contando com uma enorme infraestrutura de servidor online para suportá-lo', explica Brönjemark. 'Além disso, você também tem a camada adicional de serviços primários, então há muitas maneiras diferentes pelas quais as coisas podem dar errado! Para nós da The Division, os principais tipos de incidentes que poderiam causar tempo de inatividade ou problemas de conectividade eram instabilidade no software do jogo em execução nos servidores ou problemas no provedor de hospedagem. Ficar sem capacidade do servidor raramente é o problema. Em The Division 2, nossos servidores são dimensionados automaticamente dependendo do número de jogadores que desejam jogar o jogo.'
Qualquer número de coisas pode dar errado no dia do lançamento e, na maioria das vezes, a contagem de jogadores é relativamente baixa na lista de observação. Pode haver um vazamento de memória, uma linha única, mas catastrófica de código incorreto, ou um ponto de atraso enterrado em algum lugar no enorme pipeline do servidor. Um jogo pode ter um problema com um determinado ISP ou, como Brönjemark mencionou, os serviços primários dos quais um jogo depende podem cair. O problema pode estar em qualquer lugar, mas não importa onde esteja, é um problema de todos. Ninguém é uma ilha quando se trata de jogos online, e isso pode tornar a resposta a problemas incrivelmente difícil e demorada.
'Cada lançamento é diferente'

Todos os desenvolvedores com quem conversei descreveram um processo de triagem semelhante para corrigir problemas. Mann ofereceu uma visão geral de como uma correção pode ser do início ao fim. Primeiro, um desenvolvedor precisa analisar os sintomas do problema para identificar a causa real. Em seguida, eles trazem as pessoas responsáveis por essa área do jogo para encontrar uma solução. É algo que eles podem atualizar do lado deles ou eles precisam emitir um patch? Depois de encontrar uma solução, eles terão que testá-la para garantir que não quebre mais nada, especialmente se for um patch.
'Há uma verificação antes que qualquer coisa seja lançada', diz Mann. 'Há muitas idas e vindas com os detentores de plataformas [como Sony e Microsoft] para garantir que estamos trabalhando juntos para o sucesso; temos que passar pelas etapas de controle de qualidade. E enquanto estamos passando por esse patch, se reagirmos instintivamente e corrigirmos isso agora, mas meia hora depois tivermos que fazer um segundo patch no mesmo dia, será uma bagunça. Então temos que dizer: 'Estamos fazendo este patch; que outros problemas críticos podemos corrigir como parte disso? Que outras coisas estão erradas? Você não pode simplesmente fazer um patch em meia hora. Você precisa ter certeza de que está sendo inteligente com a forma como está corrigindo esse conteúdo.'
Uma vez feito tudo isso, se o universo permitir, os desenvolvedores podem enviar o patch e começar a monitorá-lo e comunicar seus efeitos por meio de seus canais sociais. Mas 'não há meia hora de volta', diz Mann, acrescentando, 'talvez centenas de pessoas vão tocar nisso antes de sair'.

Frank Sanchez, ex-representante da comunidade da BioWare e Gazillion Entertainment com experiência em engenharia, conhece bem esse paradigma. Como alguém que passou muito tempo reunindo respostas e redigindo notas de patch, ele viu os dois lados do processo de atualização, desde o feedback do jogador até o envio do patch. Ele também sabe melhor do que a maioria como as correções podem se tornar complicadas e como os problemas de lançamento podem ser frustrantes para jogadores e desenvolvedores.
'Somos as últimas pessoas que querem ver um servidor subir e duas horas depois ficar tão lento que as pessoas não conseguem fazer login', explica Sanchez. 'Eu garanto a você que se [os desenvolvedores] trouxerem um servidor para um beta e ele não funcionar direito, isso provavelmente está no final de alguém que colocou um tempo além do que já estava processando para chegar a um estado em que poderia lançar. Então, quando alguém online diz 'Bem, eles são apenas preguiçosos', isso é completamente e descaradamente falso. O trabalho é feito, o desafio é como responder aos problemas e comunicar aos jogadores quando eles acontecem. É uma ciência imperfeita… cada lançamento é diferente. Mesmo que dois jogos sejam desenvolvidos no Unity ou qualquer outra coisa, mesmo que o gênero seja o mesmo, o processo é diferente. Você não pode dizer 'Este jogo foi bom, qual é o problema com este jogo', porque há muita singularidade em cada jogo.'
Você não pode dizer 'Este jogo foi bom, qual é o problema com este jogo', porque há muita singularidade em cada jogo.
Frank Sanchez
Os comentários de Sanchez abordam outra pergunta comum que surge na época do lançamento: por que você não previu isso? Talvez o jogo X tenha tido problemas há alguns meses. Certamente os desenvolvedores do jogo Y poderiam ver isso e tomar medidas para evitar esses mesmos problemas, certo?
Diferenças em jogos individuais à parte, todos com quem falei disseram que alguns problemas não podem ser antecipados. Testes internos só podem fazer muito, e nunca podem realmente se comparar ao lançamento de um jogo.
'Simplesmente não há simulação para live'

'Você não pode planejar [jogadores simultâneos] ao vivo', continua Sanchez. 'É simplesmente impossível. Não há substituto. Já vi todos os métodos de teste de estresse de algo internamente antes de colocá-lo lá fora, e simplesmente não há simulação ao vivo.'
É aqui que os testes de estresse pré-lançamento e os períodos beta entram em jogo. Eles não são perfeitos, mas são a melhor maneira de avaliar como será o lançamento de um jogo e o que precisa ser corrigido antes do horário nobre. 'Betas são extremamente úteis', diz Mann. 'Você não pode obter o tamanho e a escala que você faz com um teste beta internamente. Você simplesmente não pode contratar tantas pessoas para atingir seus servidores. A melhor maneira de testar ao vivo é estar ao vivo. Se você observar muitos alfas e betas, há esse conceito de que não há servidores suficientes, que há bugs e outros problemas, mas em uma semana eles foram triados e a versão mais recente ou final não tem esses problemas . Isso é apenas porque é experimentado [ao vivo] e investigado durante esses betas.'
“Recentemente, um estúdio executou uma versão beta para seu jogo e um monte de amigos meus entraram empolgados para jogar, e encontraram um bug em que ficaram presos no tutorial porque um item-chave não apareceu no servidor, diz Mann. me, observando como pode ser complicado antecipar falhas no lançamento de um jogo online. 'Eu garanto que em todos os testes de controle de qualidade daquele jogo, aquele item sempre esteve lá. A única maneira de descobrir isso é testando esse fluxo em grande escala. Suspeito que esses caras agora estão bem cientes disso e de todo esse problema para consertá-lo para o lançamento, tudo por causa desse trabalho beta.'
Você não pode consertar tudo

Se os betas são tão bons, por que os desenvolvedores não os mantêm mais e por que não os mantêm meses antes do lançamento? Como costuma acontecer nos jogos, a tecnologia e o tempo nem sempre permitem que os desenvolvedores façam exatamente o que querem. Devido à maneira como a maioria dos jogos são feitos, eles não se juntam até o final, e geralmente é por isso que os betas parecem tão próximos do lançamento. E independentemente do que os desenvolvedores aprendam com um beta, não importa quais problemas isso possa revelar, eles não podem atrasar seu jogo de forma realista em resposta a eles. Um provedor de serviços da Web não deseja que uma equipe perca a data de início do servidor mais do que um editor deseja perder a data de lançamento. É por isso que, assim como alguns problemas não podem ser antecipados, alguns bugs simplesmente não podem ser corrigidos a tempo do lançamento.
Betas da Divisão 2 
O Divisão 2 beta o cronograma foi bastante abrangente, com betas privados e abertos, bem como um teste de estresse mais direcionado. Nem todos os jogos podem mudar isso, mas aqueles que o fazem se beneficiam imensamente do que Brönjemark chama de 'ensaio final'. Seu primeiro beta aberto está planejado para 1 a 4 de março, duas semanas antes do lançamento.
'Eu adoraria enviar sem bugs', considera Sanchez, um comentário que você ouvirá de qualquer desenvolvedor que passou pelo inferno e voltou para realmente lançar um produto. “Mas qualquer time dirá que isso é muito difícil de fazer. Essa é apenas a realidade disso. A lista de coisas que precisam ser corrigidas está sempre mudando. Você tem que entender que quando se trata de bugs, existem bugs que são potencialmente enviados, e há bugs descobertos após o lançamento. Tudo isso precisa ser priorizado, planejado e discutido. É triagem. Os lançamentos mais sortudos são aqueles que têm bugs, mas não têm bugs incapacitantes.'
Além disso, fazer uma versão beta pode ser uma tarefa demorada e trabalhosa. Os desenvolvedores não podem simplesmente cortar um pedaço de seu jogo e carregá-lo no Xbox Live ou na PlayStation Network. Betas geralmente são desenvolvidos separadamente (mas em conjunto com) um jogo, o que leva mais tempo e dinheiro. É por isso que problemas que foram corrigidos há muito tempo na versão principal de um jogo ainda podem estar presentes em sua versão beta. Vimos isso nas demos de Anthem e na última versão beta de The Division 2, por exemplo.

“Muitas vezes ouço as pessoas dizendo que acham que os testes beta são apenas campanhas de marketing, e os desenvolvedores não podem aprender nada com eles de qualquer maneira, pois o jogo já está terminado nesse ponto”, me diz Brönjemark. 'Eu gostaria de dissipar esse mito. Mesmo quando o jogo já está impresso em disco e o patch do primeiro dia já está pronto, ainda há uma quantidade enorme de coisas que podemos resolver no lado do servidor, tanto em termos de tecnologia, mas também em termos de jogabilidade e balanceamento .'
Por outro lado, diz Sanchez, “os cronogramas de publicação e os cronogramas de desenvolvimento de jogos são muito agressivos, às vezes muito agressivos. Quando algo é lançado, quanto financiamento resta, há quanto tempo você está em desenvolvimento. Às vezes, o sucesso do lançamento realmente depende de quantas vezes você teve que adiar seus marcos, quantas vezes você atrasou seu lançamento porque tinha algo para polir. Alguns jogos só podem ser enviados com uma certa quantidade de polimento. Você não pode dizer que está completa e absolutamente bem quando se torna ouro. Há casos em que um jogo será lançado em um estado pronto para lançamento, mas pode haver um pouco de polimento que precisa ser feito.'
Um lançamento é mais do que o primeiro dia

Tanto os desenvolvedores quanto os jogadores querem que seus jogos funcionem perfeitamente na primeira vez que os iniciam, mas a realidade do desenvolvimento de jogos é que há tantas partes móveis e tantas limitações imóveis que alguns problemas estão prestes a passar despercebidos, e o as chances disso só aumentam à medida que os jogos ficam cada vez maiores. Sanchez acredita que é por isso que precisamos olhar para lançamentos como esses de forma holística. O desempenho de um jogo no dia do lançamento é importante, mas não é tudo.
'Não são os problemas, esses sempre vão acontecer', diz Sanchez. 'É como você lida com essas questões. Se você for lento ou não lidar com eles adequadamente, ou se for hostil com seus jogadores, isso vai ficar com eles. Se há uma coisa que eu gostaria que os jogadores entendessem, é que os problemas acontecem independentemente de quão bem você planeja para eles. Você deve responsabilizar os desenvolvedores por como eles são respondidos. Se você tiver um problema uma semana após o lançamento, coloque os pés no fogo e diga 'Ei, não estou tendo uma boa experiência, é por isso que estou preocupado que esses problemas não sejam corrigidos.' Essas são as coisas que queremos ouvir.
Problemas acontecem independentemente de quão bem você planeja para eles.
Frank Sanchez
Nenhum jogo inicia perfeitamente. Isso simplesmente não acontece. Como Sanchez coloca, 'qualquer coisa que você considere um lançamento tranquilo é apenas algo que nunca subiu ao nível em que um jogador percebeu que algo estava errado'. Há sempre uma confusão acontecendo nos bastidores. Mann descreveu isso como um grupo de desenvolvedores reunidos em uma 'sala de guerra' observando uma parede de monitores em busca de feedback e possíveis problemas. Às vezes, eles detectam esses problemas mais cedo, às vezes não aparecem por algumas horas e às vezes não podem ser corrigidos por mais algumas horas ou até alguns dias.
A questão é que jogos online massivos sempre terão alguns problemas técnicos no lançamento. Inferno, todos os jogos modernos têm alguns problemas no lançamento. Essa é apenas a natureza da tecnologia de hoje e da indústria de hoje. Isso não significa que os jogadores devem ceder cegamente a jogos que são lançados com design catastrófico ou outros problemas, mas coloca o lançamento médio em perspectiva. Um jogo pode ter pequenos problemas que nem notamos ou pode ter quebras de jogo óbvias. De qualquer forma, tudo o que qualquer um pode fazer é esperar o melhor, preparar-se para o pior e chamar a atenção para os problemas quando eles inevitavelmente surgirem.