한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Guia do Lag em Jogos › L1 Processo do jogo no cliente

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)

Abrir o card interativo, com figuras e simulações →

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

Sintomas
Engasgos, Travamento, Desconexão
Fatores
Paralisação
Quem é afetado
Só eu
Quando
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

  1. Using the Anti-Cheat Interfaces Epic 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
  2. PresentMon Capture Application (README-CaptureApplication.md) Intel
    Grava o tempo de cada frame com o FrameTime (tempo de CPU entre frames)

Veja também

Mesma camada: L1 Processo do jogo no cliente

Mesmo sintoma (Engasgos) em outras camadas

Ver o card interativo, com figuras e simulações