Autoridade do cliente Client-authoritative results
ID da causa sy-client-auth · Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do cliente (Equipe de desenvolvimento)
Quando cada um decide o próprio resultado, sua tela fica fluida, mas os resultados divergem da tela dos outros e o jogo fica vulnerável a hacks.
Por quê O cliente decide posição e acerto, e o servidor só repassa → Efeito Dois jogadores dizem que acertaram primeiro, e o servidor não tem como verificar → Na tela O adversário teleporta ou atravessa paredes, “eu acertei, mas não contou”
Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do cliente (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Servidor: validar por conta própria os resultados importantes (acertos etc.), checar velocidade e distância no movimento. Cliente: ao receber um resultado rejeitado ou corrigido pelo servidor, voltar para esse valor.
No gráfico
Sempre alto desde o início · Reports de velocidade de movimento impossível e de acertos conflitantes
Onde olhar
Gravar no servidor a posição e os acertos exatamente como o cliente reportou, calcular a velocidade de movimento pelos reports de posição consecutivos e contar os reports acima da velocidade máxima e os casos de dois jogadores dizendo que acertaram primeiro
Confirma se
O servidor repassa os reports a outros clientes sem validar, e velocidades impossíveis ou reports de acerto conflitantes aparecem de forma constante, seja qual for o patch ou a região
Descarta se
Se o servidor calcula ou valida os resultados por conta própria, a causa é outra. Nesse caso, para o teleporte, verificar perda de pacotes ou o buffer de interpolação
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo