CARTA DOS DESENVOLVEDORES: SOLUÇÕES CONTRA TRAPAÇA E PLANOS DE MELHORIA DE DESEMPENHO PARA 2020

E aí, pessoal?

Aqui é TaeSeok Jang, produtor executivo do PUBG para PC.

Em primeiro lugar, considerando a ameaça global da COVID-19, quero começar desejando muita saúde a vocês e a seus entes queridos. Como todos, nós das equipes do PUBG no mundo todo tivemos que adaptar nossos esquemas de trabalho, mas estamos nos empenhando para continuar a lançar novidades e manter o serviço no ar.

2019 foi um ano bem cheio, com muitas novidades, atualizações aos mapas e ajustes feitos para facilitar a vida de vocês. Embora a comunidade tenha recebido várias das novidades de braços abertos, sabemos bem que certos esforços não surtiram o efeito esperado. Tivemos algumas dificuldades em apontar a causa de certos erros persistentes e passamos um bom tempo enfrentando a investida obstinada de programas de trapaça. Esses são alguns dos assuntos de que eu pretendo falar aqui hoje.

O ano passado foi cheio de crescimento e mudança nas nossas equipes. Essa jornada de crescimento com toda a certeza teve os seus tropeços, e o pior erro foi não termos conseguido nos comunicar direito com os jogadores durante a expansão considerável das nossas equipes. O resultado foi a impressão de que não estávamos prestando atenção ou, pior, de que não nos importávamos. É disso que mais me arrependo, pois é só graças ao amor e à paixão da comunidade que o PUBG pôde crescer até chegar onde está. Foi essa dedicação que nos motivou por esses três anos de serviço, e eu quero reafirmar para toda a comunidade hoje que vamos nos concentrar nas questões mais importantes para vocês, os jogadores, e continuar a melhorar o jogo por anos a fio.

Temos um bocado a falar em cada categoria, então, mais para a frente, escreverei outras cartas para comentar mais assuntos importantes. Na carta de hoje, pretendo abordar alguns dos nossos principais focos, como as soluções contra trapaça e o desempenho e a estabilidade do jogo. O texto pode conter vários termos técnicos, mas fizemos o possível para deixar tudo bem compreensível. Também é importante salientar que, principalmente na área das trapaças, revelamos o possível dos nossos planos e do andamento dos esforços sem revelar demais para os infratores que estamos tentando deter. 

Bora lá, então.

  • Soluções contra hackers e programas de trapaça
      • Melhorar medidas preventivas
      • Fortalecer o monitoramento e a confiabilidade dos banimentos
  • Melhorias de desempenho e estabilidade
      • Melhorias de desempenho
      • Melhorias de estabilidade
      • Melhorias à rede

Soluções contra hackers e programas de trapaça

Nosso embate contra os trapaceiros jamais termina, mas estamos nos empenhando muito para encontrar uma solução. Passamos boa parte do ano passado trabalhando em medidas para bloquear programas de trapaça, principalmente dificultando a vida dos desenvolvedores desses softwares para impedi-los de criar trapaças lucrativas. Esses programadores se adaptam muito rápido aos nossos esforços, então mantivemos tudo às escondidas para adiar a reação deles na medida do possível. A parte ruim dessa tática é que, para a comunidade, parece que não estamos tomando atitude nenhuma contra essa questão crucial. Em 2020, estamos desenvolvendo melhorias para que cada jogador possa sentir o impacto do nosso trabalho.

Melhorias às medidas preventivas

Ações preventivas contra trapaça são as que impedem o funcionamento dos softwares infratores antes mesmo que o trapaceiro possa executá-los. Para isso, tentamos obstruir o desenvolvimento dos programas para tornar a empreitada trabalhosa demais. Confiram algumas das abordagens:

  • Sistema de autenticação de dois fatores 
  • Recebemos inúmeros tickets de suporte de jogadores cujas contas do Steam acabaram banidas em definitivo depois de serem invadidas e usadas em conjunto com programas de trapaça. Os vendedores dos programas em geral comercializam essas contas, já que os clientes precisam trocar de conta com frequência. Na grande maioria das vezes, as contas invadidas não ativaram o Steam Guard e ficaram suscetíveis a roubo de credenciais em sites falsos que atraem jogadores com a promessa ilusória de itens gratuitos.
  • Para evitar invasões e melhorar a segurança do sistema, vamos implementar uma autenticação via SMS e um sistema de autenticação secundária com uma senha de uso único. Todas as contas precisarão usar autenticação de dois fatores para poderem participar de partidas ranqueadas, de modo a garantir o ambiente de jogo mais justo possível.
  • Redução da vulnerabilidade a invasões no código
  • Programas de trapaça em geral visam fatores específicos para manipular o nosso código. Vamos empregar a seguinte abordagem para evitar a manipulação de armas, veículos e movimento de personagens:
    • Armas
        • Reforçar o sistema de autenticação do servidor para informações de armas (o ângulo de disparo, o coice, a trajetória balística etc.).
        • Analisar e corrigir as vulnerabilidades da lógica da mira no cliente.
    • Veículos
        • Reforçar o sistema de autenticação do servidor para informações de veículos (a velocidade, o ângulo de deslocamento, o período em que ele pode permanecer no ar etc.).
        • Essas medidas não só vão resultar no banimento das contas infratoras como também vão obstruir as ferramentas de trapaça em tempo real, expulsar trapaceiros das partidas e emitir banimentos imediatos. 
    • Movimento dos personagens
        • Reforçar o sistema de autenticação do servidor para informações de personagens (a velocidade de deslocamento, o período em que podem permanecer no ar etc.).

Melhorias à detecção de trapaças e aos banimentos

Até o momento, banimos milhões de contas pelo uso de programas de trapaça. No entanto, mesmo com a imensa escala dos banimentos, os trapaceiros ainda conseguem se insinuar em jogos e, às vezes, permanecer por muito mais tempo do que deveriam. Em 2020, nosso foco é melhorar a detecção do nosso sistema de banimento automatizado e os sistemas de banimento de hardware.

 

  • Expansão do alcance da detecção

 

         (Tendência na detecção de programas ilegais)                                                                                                                                                                                                       

      • Nossas equipes continuarão a ampliar o alcance da detecção para deter mais e mais programas de trapaça. Nossos primeiros esforços surtiram resultados bastante positivos, mas os desenvolvedores desses softwares logo descobriram como contornar os métodos de detecção. Trabalhamos bastante para reduzir a gravidade da situação com atualizações regulares. Os programas também começaram a visar domínios de kernel para passar despercebidos. Então, para corrigir essa vulnerabilidade, vamos expandir o foco, permitindo que as soluções contra trapaça tenham mais autoridade para detectar e impedir as infrações mais persistentes.

 

  • Análise automática

 

      • A desvantagem da análise manual é a necessidade de atualizações constantes às medidas, já que os programas de trapaça são atualizados com frequência para se manter adiante dos nossos esforços. Vimos, por exemplo, o desligamento automático de computadores quando nossos programas começam a autenticar uma conta suspeita.
      • Nosso objetivo é encontrar automaticamente os clientes que estejam usando programas de trapaça. Para isso, precisamos procurar diferenças exatas nos valores entre os ambientes legítimos e os fraudulentos, bloqueando a conta automaticamente caso detectemos a presença de fraudes. No momento, pretendemos implementar essa função em julho de 2020.

 

  • Amplificação dos banimentos de hardware

 

      • Quando emitimos um banimento por ID de hardware, o sistema registra os dados de componentes específicos dentro do computador infrator para que os servidores saibam qual é a máquina mesmo com o uso de uma nova conta, seja comprada ou roubada. Quanto mais dados coletamos, mais preciso é o banimento, mas o método acaba fácil de contornar, já que às vezes a troca de um único componente basta para evitar a detecção. Além disso, os desenvolvedores de programas de trapaça descobriram meios de falsificar os dados de ID de hardware, reduzindo bastante a eficácia dos nossos esforços.
      • Reconhecemos as limitações do sistema atual de banimento de hardware e estamos desenvolvendo métodos para fortalecê-lo. As melhorias buscarão as informações de hardware a níveis do usuário e do kernel, empregando algoritmos específicos para que seja possível bloquear o programa de trapaça mesmo que ele tente evitar a detecção. Assim deve ficar mais fácil banir contas e computadores infratores. 

 

  • Fortalecimento dos banimentos 

 

      • As denúncias enviadas por jogadores também ajudam a detectar os trapaceiros. Se percebemos evidências diretas de trapaça, banimos a pessoa de imediato, enquanto suspendemos por 24 horas os casos que exijam investigação.
      • Na maior parte dos casos, os usuários suspensos temporariamente acabam banidos de vez, mas alguns poucos são inocentados, seja por falta de evidência ou por descobrirmos que a conta foi falsamente acusada.
      • Queremos evitar banimentos injustos sempre que possível, então somos cautelosos ao tomar atitudes contra uma conta; no entanto, percebemos que cautela excessiva pode prejudicar muito mais gente do que só o dono da conta suspeita. Portanto, decidimos mudar os nossos métodos de investigação, agindo com mais severidade contra contas suspensas sob suspeita de trapaça.
      • Além disso, vamos passar a monitorar essas contas suspeitas. Quem for suspenso pelo menos uma vez entrará numa lista para investigação futura, que pode incluir monitoramento de jogos em tempo real.
      • Se uma conta for suspensa várias vezes sob suspeita de trapaça, vamos prolongar automaticamente a suspensão para podermos investigar as acusações. Também queremos automatizar o processo de investigação para que usuários declarados inocentes possam logo voltar ao jogo. Para isso, vamos acumular evidências em várias contas inocentes para servir de referência.
      • Vamos precisar repensar nossa política para efetuar essas medidas, com previsão de implementação em junho de 2020.

Melhorias de estabilidade e desempenho

Agora que já falamos dos nossos planos contra trapaceiros, vamos passar para outros assuntos bem importantes: desempenho e estabilidade.

Sabemos que o ano foi turbulento nesses aspectos até o momento, com vários problemas persistentes de conexão, servidor e cliente de jogo. Queremos muito poder proporcionar sempre um serviço de alta qualidade, mas certos erros duraram demais e ofuscaram as melhorias que implementamos. Engasgos e travamentos ficaram mais frequentes e persistiram nos últimos meses. Estamos cientes de todo o feedback, que foi cem por cento justificado.

Há pouco tempo, lançamos uma correção que reduziu consideravelmente os engasgos para muitos jogadores. Também desfizemos as alterações ao sangue da Atualização 5.3, porque percebemos que estavam ocasionando travamentos para alguns jogadores. Embora estejamos felizes por termos resolvido essas questões, sabemos que precisamos de mais agilidade para detectá-las quando ocorrem no jogo — e, ainda mais importante, antes que elas cheguem ao jogo de fato. Estamos nos empenhando para melhorar a eficiência dos nossos testes pré-lançamento.

No caso dos problemas nos servidores do jogo, a causa principal foi uma série de ataques de negação de serviço (DDoS) que persistiram por vários meses. No começo do ano, instalamos uma defesa para ajudar a reduzir o efeito dos ataques. Deu certo. Agora que o sistema está no ar, vamos continuar a aprimorá-lo onde possível para garantir que esses ataques não prejudiquem a experiência de ninguém.

Melhorias de desempenho

 

  • Otimização de carregamentos e engasgos

 

      • Otimizar o arquivo pak para melhorar o Tempo de Busca necessário para encontrar conteúdos no pacote.
          • Arquivo pak: um arquivo de “pacote” com conteúdo do jogo comprimido (armas, veículos, construções, trajes etc.).
      • Reduzir e otimizar o carregamento de níveis para melhorar o desempenho.
          • Fusão do cenário → redução no impacto do carregamento de níveis e da coleta de lixo → redução nos engasgos.
      • Melhorar problemas com engasgos ocasionados por carregamento e descarregamento de informações gráficas.
          • Mudança no método de carregamento de níveis (de “carregar gráficos para um quadro” para “carregar separadamente por quadro”) para reduzir engasgos.
      • Lista de melhorias para problemas de travamento.
          • Quando jogadores abrem o inventário.
          • Quando jogadores ativam a pré-visualização de personagem.
          • Quando jogadores equipam armas.
          • Quando jogadores matam alguém.
          • Quando jogadores arremessam itens.
          • Quando jogadores abrem a interface (opções, missão etc.).
          • Minimizar a quantidade de tipos de fonte no jogo para melhorar a otimização.
          • Otimizar vários visuais exibidos no jogo — itens (armas, personagem).
            • Mais especificamente, carregar em assincronia os visuais de armas que demoram para carregar, de modo a reduzir engasgos. 

 

  • Otimização da GPU

 

      • Usar mais HLOD para otimizar e melhorar o desempenho da GPU. 
        • HLOD (nível de detalhe hierárquico) é um sistema que combina vários atores estáticos num único se visto de uma grande distância. Reduzir o número de atores renderizados na cena resulta em menos carregamento por quadro e na melhora do desempenho.
      • Aprimorar as estruturas do cenário para melhorar a otimização.

 

  • Otimização das animações

 

      • Otimizar as animações para que seja possível ajustar os cálculos com base na prioridade do jogo, reduzindo problemas de sobrecarga quando há muitos personagens na mesma cena ou ações demais acontecendo ao mesmo tempo.

 

  • Melhorias para computadores com especificações baixas

 

    • Detectamos casos do jogo ficando inutilizável devido a problemas de desempenho em vários computadores. Para minimizar os problemas, vamos aperfeiçoar o jogo para ajustar automaticamente o nível de otimização com base no uso do processador, de modo a estabilizar o programa em configurações mais modestas. Além disso, estamos trabalhando para reduzir o impacto do processamento de animações em máquinas com processadores mais fracos.

Melhoria na estabilidade

Ainda presenciamos casos de travamentos intermitentes no lobby, no jogo, na tela de carregamento etc. Nossos desenvolvedores estão se empenhando para melhorar os processos de verificação interna e usar mais relatos de travamento para reduzir a ocorrência dos problemas.

 

  • Corrigir travamentos do cliente sem demora

 

      • Travamentos do cliente ocorrem principalmente por perda de memória, então estamos intensificando nossos processos de verificação na criação de novas versões do jogo.
      • Arquivamento contínuo de memória para acabar com as ocorrências de memória desperdiçada. 
      • Otimizar recursos de arte usados mais do que o necessário.
      • Aplicar refatoramento de código para otimizar métodos de carregamento de conteúdo em geral.
      • Implementar perfilamento em tempo real para evitar vazamento de memória.
        • Essas medidas devem evitar erros causados por sessões de jogo muito longas.

 

  • Melhorar o processo de verificação de versões

 

    • Implementar uma ferramenta de verificação automática e melhorar os métodos manuais.
    • Implementar sistemas de checagem para monitorar o estado do programa.
  • Ferramenta para verificar vazamento de memória.
  • Ferramenta para verificar uso de memória. 
  • Ferramenta para verificar danos à memória, detectando travamentos causados por acessos inesperados à memória. 
  • Verificação de engasgos.
  • Verificação de estado do processador e da GPU.
    • Criar um ambiente de teste com 100 usuários controlados por IA.
  • Testes de desempenho já ocorrem com 100 jogadores numa partida, mas a quantidade de jogadores e os resultados podem variar.
  • Usaremos IA para realizar testes de grande escala similares ao ambiente convencional de jogo sempre que precisarmos.

Melhorias à rede

 

  • DDoS 

 

    • Ataques de negação de serviço distribuída, chamados de DDoS, cedo ou tarde afetam a maioria dos jogos online mais populares. Quando o servidor se depara com ataques de DDoS, todos os usuários no servidor sofrem erros de conexão, como atraso na rede, latência alta e perda de pacotes. A frequência desses ataques aumentou muito desde novembro de 2019 e se tornou um problema grave em fevereiro de 2020. Para enfrentar o problema, nossas equipes instalaram soluções externas enquanto desenvolviam nossa própria defesa contra DDoS. Graças a esses esforços, agora conseguimos barrar a maioria dos ataques. Vamos falar mais das medidas tomadas numa carta futura.

 

  • Perda de pacotes 

 

    • Logo que aplicamos algumas das soluções externas para combater os ataques, começamos a receber relatos de um aumento na perda de pacotes de jogadores na América do Norte e na Europa. Reduzimos a gravidade da situação, mas o problema ainda persiste. São vários os erros que podem contribuir para a perda de pacotes, então estamos nos dedicando a descobrir as causas possíveis e a otimizar a rota dos pacotes para melhorar o ambiente geral da rede e resolver a questão.

Considerações finais

Sabemos que, quando não nos comunicamos direito, o instinto natural é presumir que não ligamos para os problemas. Estamos nos empenhando muito para melhorarmos não só na comunicação, mas na resolução dos problemas descritos na carta.

Além do mais, temos uma tonelada de conteúdo planejado para o ano e queremos que todos possam curtir o jogo sem ficar pensando em erros ou travamentos. Já falei demais para uma carta só, então fiquem de olho em mais cartas abordando outros assuntos no futuro. Muito obrigado pela paciência enquanto preparávamos este texto. Decidimos que era bom tirar um tempo a mais para articular com cuidado tudo em que estamos trabalhando e quais serão as nossas próximas prioridades. 

A equipe de desenvolvimento do PUBG sabe muito bem da importância de criar um ambiente estável. Agradecemos o feedback e a paciência de toda a comunidade.

Obrigado pela atenção e se cuidem,

TaeSeok Jang, produtor executivo do PUBG

Discuta este artigo
Compartilhar este artigo