Verificações do anti-cheat (módulo de segurança do jogo) Anti-cheat scan and heartbeat
ID da causa cg-anticheat · Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do servidor (Equipe de desenvolvimento)
Para impedir trapaças, um módulo de segurança roda junto com o jogo e faz verificações periódicas. Se a verificação for pesada ou se o heartbeat (sinal periódico de que o cliente está ativo) trocado com o servidor de segurança atrasar, o jogo engasga ou a conexão cai.
Por quê O módulo de segurança verifica periodicamente a memória do jogo, os programas em execução e os drivers → Efeito Durante a verificação, a thread do jogo para ou o heartbeat não sai a tempo → Na tela Engasgos em intervalos regulares e, nos casos graves, desconexão com uma mensagem de erro de segurança
Em intervalos regulares, Logo após login ou manutenção, Aleatoriamente, de vez em quando
Responsável
Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do servidor (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Cliente: rodar as verificações pesadas fora da thread do jogo, divididas em partes pequenas, comparar estatísticas de engasgos e quedas do jogo por versão do módulo de segurança (se aumentarem logo após uma atualização, repassar ao fornecedor do módulo). Servidor: tolerar um ou dois heartbeats atrasados.
Números de referência
Uma verificação leve costuma levar menos de 1 ms, mas uma verificação pesada que roda na thread do jogo pode ocupar de dezenas a centenas de ms por vez, dependendo da implementação.
No gráfico
Picos em intervalos regulares · Frame time, kicks do anti-cheat
Onde olhar
Medir os intervalos dos picos no frame time do PresentMon e agregar, por versão do módulo de segurança e por configuração de hardware, os motivos de kick do anti-cheat recebidos pelo servidor (no EOS, AuthenticationFailed / Authentication Timed Out etc. em ClientActionReason)
Confirma se
Pausas curtas se repetem em intervalos regulares, sem relação com o que acontece no jogo, e, logo após uma atualização do módulo de segurança, engasgos e kicks por timeout de autenticação aumentam em certas configurações de hardware
Descarta se
Mesmo intervalo em todas as configurações, sem relação com a versão do módulo de segurança: “Coleta de lixo (GC) no cliente” ou “Processos em segundo plano ocupando a CPU”
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo
Saiba mais
O módulo de segurança fica instalado no fundo do SO como driver e às vezes entra em conflito com antivírus, overlays ou o módulo de segurança de outros jogos. Se, logo após uma atualização do módulo, os reports de engasgos e quedas do jogo se concentrarem em certas configurações de hardware, ele é o primeiro suspeito.
Fontes
Using the Anti-Cheat InterfacesEpic Games Se o servidor não recebe a mensagem do anti-cheat do cliente dentro do tempo definido (RegisterTimeout), ele expulsa o cliente por timeout de autenticação (causa comum: cliente parado em um carregamento); se o problema vier de uma atualização recente do módulo, voltar para o módulo anterior