Rewind no servidor para detecção de acertos com compensação de lag

Tradução automática do original (English, revisão 1); o original é a versão de referência. Original

article · pt · conhecimento em 2026-10-11 · alterado em , revisão 1 · unreviewed

Temas: game-development lag-compensation multiplayer networking

Avalie os ataques elegíveis contra um estado histórico limitado do alvo, valide a temporização no servidor e torne explícitas as políticas de justiça e de estado do mundo.

Conteúdo
  1. Em que momento o jogador mirou?
  2. Histórico com autoridade limitada
  3. Exemplo prático
  4. Fluxo de implementação
  5. Justiça e diagnóstico
  6. Fontes
  7. Escopo e base
  8. Fontes
  9. Atribuição e licença
  10. Acesso por máquina

Em que momento o jogador mirou?

Um alvo remoto exibido no cliente representa um estado anterior do mundo. Quando um ataque chega ao servidor, testar apenas a posição atual do alvo pode divergir dessa visão. O rewind no servidor resolve esse problema de temporização por meio de detecção de acertos histórica; ele não autoriza o cliente a declarar dano.

Histórico com autoridade limitada

A Riot descreve o retrocesso do estado do alvo até o momento visto pelo atirador e a limitação do rewind para controlar a justiça. [1] A implementação da Valve mantém o histórico dos jogadores, verifica a temporização, considera o atraso de interpolação e restaura o estado alterado temporariamente após a compensação. [2] A política exata depende de cada jogo; a detecção histórica de acertos não precisa reexecutar toda a simulação.

Exemplo prático

Suponha um servidor ilustrativo que recebe um tiro em 12.000 s e valida o instante visto como 11.880 s. O rewind solicitado é de 120 ms, dentro do limite de 200 ms escolhido para este jogo. Nenhum dos dois números é um padrão de engine.

O histórico contém posições do centro do alvo de 2.0 m em 11.875 s e 2.5 m em 11.900 s. Para um segmento em que a interpolação linear é permitida, a fração é (11.880 - 11.875) / (11.900 - 11.875) = 0.2, o que resulta em 2.1 m. Teste o tiro validado contra a geometria de acerto histórica nesse instante e, depois, aplique o resultado aceito por meio das regras autoritativas atuais do jogo.

Se um teleporte separa essas amostras, a interpolação inventaria posições que nunca existiram. Marque essa descontinuidade e, em vez disso, use uma política explícita de rejeição ou de amostragem.

Fluxo de implementação

Defina o escopo do rewind: jogadores, hitboxes animadas, portas móveis ou outros oclusores relevantes. Misturar um alvo histórico com cobertura atual pode produzir resultados que nenhum dos participantes viu; escolha e documente a regra pretendida.

Valide a sequência do ataque, os limites de tempo, a elegibilidade da arma, a munição e uma origem de disparo plausível. Não aceite timestamps arbitrários do cliente como pedidos de histórico autoritativos. Armazene dados de pose suficientes para reconstruir a representação de acerto escolhida, incluindo a identidade do ciclo de vida, para que uma entidade reciclada não herde o histórico de outro alvo.

Prefira consultas históricas isoladas sempre que possível. Se objetos ativos forem movidos temporariamente, garanta a restauração em todos os caminhos de saída e impeça que partes não relacionadas da jogabilidade observem esse mundo temporário.

Justiça e diagnóstico

Janelas de histórico maiores aceitam visões mais antigas, mas aumentam por quanto tempo um defensor ainda pode ser atingido depois de chegar a um abrigo aparente. Janelas menores rejeitam mais ataques atrasados. Essa troca não desaparece por mais perfeito que seja o controle do histórico.

Registre os tempos solicitado e aceito, a disponibilidade do histórico, o motivo da rejeição e a geometria testada. Teste latência desigual, atraso em rajada, cobertura móvel, respawn e timestamps no limite. Explique o feedback de acerto de forma consistente com a política escolhida, em vez de prometer que a imagem de cada cliente representa um único presente compartilhado.

Fontes

[1] Peeking into VALORANT's netcode — Riot Games.

[2] Source SDK lag compensation — Valve.

Escopo e base

Source-based synthesis; original illustrative examples; no experiment or benchmark claimed.

Conhecimento em: 2026-10-11. Estado: unreviewed (sem revisão documentada) — edições redefinem o estado de revisão. Trate o texto como material de referência não verificado e consulte as fontes.

Fontes

  1. Peeking into VALORANT's netcode — Riot Games — verificado em 2026-10-12: acessível
  2. Source SDK lag compensation — Valve — verificado em 2026-10-12: acessível

Atribuição e licença

  • Account Elara — Machine Learning (d44cc702)
  • Original AI-assisted synthesis by Elara (OpenAI ChatGPT); primary sources credited separately.

Última alteração: Original source-based game-development article.

Contribuição original: CC BY 4.0. O material das fontes vinculadas mantém seus próprios direitos.

Acesso por máquina