Meses de problemas de áudio do Apex Legends causados ​​por 'uma única linha de código', confirma Respawn

Meses de problemas de áudio do Apex Legends causados ​​por 'uma única linha de código', confirma Respawn

Nó Fonte: 2627193

Hoje em dia, a notícia “fazer videogames é difícil”: a jornada da Respawn para rastrear um bug que causou meses de problemas de áudio no Apex Legends. Granadas que não explodem, armas que não disparam, danos sem origem e meses de investigação agonizante – tudo aparentemente causado por uma única linha de código adicionada na atualização da 16ª temporada do Apex Legends.

Conforme descrito em um postagem completa no Reddit (abre em uma nova guia) pela gerente da comunidade Respawn, Amy Thiessen, o problema começou no início da temporada 16, em fevereiro. O estúdio começou a receber relatos de “nades desaparecendo” no Apex. A Respawn logo determinou que as granadas não estavam exatamente “desaparecendo”, mas às vezes não explodiam, apesar de causar danos aos jogadores.

“Isso não ocorreu durante nossos testes de jogo da 16ª temporada, não pôde ser reproduzido internamente após os relatórios iniciais e foi muito difícil de definir usando vídeos de jogo ao vivo, já que a causa raiz nem sempre era mostrada no ponto de vista do jogador”, diz o post.

A Respawn conseguiu lidar melhor com o problema depois de receber relatórios semelhantes sobre a falta de efeitos sonoros de armas e efeitos de partículas. “Após uma investigação preliminar, descobriu-se que o principal suspeito é o sistema que nossos servidores usam para enviar comandos ‘iniciar’/’parar’ para vários efeitos (por exemplo, certos sons, sistemas de partículas, impactos físicos, rastreadores de balas, explosões).”

Atualização da equipe de desenvolvimento: atualização de áudio da r / apexlegends

Essencialmente, algo estava acontecendo durante uma partida que poderia sobrecarregar o limite do servidor para efeitos sonoros ou partículas, fazendo com que alguns sons e efeitos fossem eliminados.

“A partir daí, a teoria era que algo poderia estar inundando essa limitação do motor, solicitando milhares de efeitos a cada segundo!” diz a postagem. “Mas esta era uma questão sistêmica ou poderia ser uma entidade única agindo? Cada atualização de temporada inclui milhares de alterações em recursos, código, script e níveis. O que significava encontrar uma agulha num palheiro.”

A Respawn recorreu às métricas para ajudar a resolver o problema, mas nada na telemetria indicava um problema claro. Isso sugeriu à Respawn que esse bug era uma situação única que seus sistemas não haviam visto anteriormente.

“Isso nos deixou com um problema complexo que sabíamos que estava impactando nossa comunidade, mas que era difícil de reproduzir, apesar dos relatórios detalhados, tinha pistas internas mínimas e não havia métricas para provar definitivamente que esse limite estava sendo atingido.”

Onde você vai a partir daí? A Respawn decidiu testar sua teoria de efeitos sobrecarregados quebrando intencionalmente os servidores Apex Legends. A equipe criou uma versão de teste e gerou 50 personagens que dispararam armas ao mesmo tempo e usaram habilidades infinitamente para levar a carga de efeitos do servidor ao limite. Funcionou: a equipe finalmente conseguiu reproduzir quedas de áudio semelhantes aos relatos de bugs, mas como isso acontecia com jogadores reais ainda era um mistério.

“Isso nos deu provas de que o FX seria abandonado, mas apenas com casos de teste completamente irrealistas. Vários aspectos do desempenho do nosso servidor foram investigados, mas nada definitivo foi encontrado.”

A Respawn manteve um olhar atento sobre o assunto enquanto a 16ª temporada avançava. A equipe finalmente percebeu que os relatórios de áudio perdidos tendiam a vir de jogos de alto nível. Isso lhes deu a ideia de implantar uma atualização de servidor que permitisse ao Respawn rastrear novas métricas em um subconjunto menor de partidas, o que levou instantaneamente a um avanço.

“Enquanto a atualização do servidor estava sendo finalizada, nós o encontramos. Uma única linha de código foi identificada como a causa raiz do problema. A nova arma da 16ª temporada.”

Essa arma é o Nemesis, o mais novo rifle de assalto de energia de explosão da Apex. O Nemesis tem uma mecânica única onde causar dano irá “carregar” a arma e fazê-la disparar mais rápido (como demonstraram (abre em uma nova guia) pelo YouTuber Dazs acima). Este efeito de carga é representado visualmente na arma por um arco elétrico dentro do cano. Respawn diz que uma linha de código destinada a dizer a esse efeito para “parar” enquanto a arma não estava carregada ou no coldre estava se repetindo indefinidamente para todos os jogadores que possuíam um Nemesis em seu inventário.

“Isso significa que cada jogador com um Nemesis descarregado criaria um efeito de ‘partícula de parada’ no servidor a cada quadro, e essa linha de código estava sendo chamada mesmo quando a arma estava no coldre.”

Curiosamente, isso também explica por que as quedas de áudio aconteciam com mais frequência em jogos de alto nível. “14 clientes com um Nemesis rodando a 180 fps seriam suficientes para fazer com que o FX começasse a cair.” Pela primeira vez, foram os jogadores de PC de ponta que tiveram um desvantagem.

A Respawn diz que isso também explica por que seus testes internos não encontraram o bug.

“As compilações usadas para testes podem não ter Nemesis no coldre suficiente em jogo, ter uma correlação mais rara com FX ausente ou não ter clientes suficientes naquele fps – algo que devemos ter em mente e melhorar para testes futuros.”

Um patch implantado na semana passada finalmente eliminou o bug para sempre. E aí está – um bug de áudio intrometido com uma causa raiz complicada que, no longo prazo, ajudará o Respawn a detectar bugs semelhantes antes que cheguem aos jogadores. A Respawn concluiu a postagem com um aparte sobre os testes, lembrando aos jogadores que “um minuto de jogadores jogando Apex equivale a 10 testadores jogando o jogo por um ano!”

Carimbo de hora:

Mais de PC Gamer