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

Guia do Lag em Jogos › Design de sincronização

Espera dupla de tick Double tick quantization

ID da causa sy-double-tick · Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento)

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

Se a requisição espera até o próximo tick para ser processada e o resultado também só sai no tick seguinte, o intervalo entre ticks se soma duas vezes.

Por quê Requisições recebidas são processadas no próximo tick → Efeito O resultado também espera o próximo tick de envio para sair junto com os outros → Na tela Ping da conexão baixo, mas a resposta atrasa sempre cerca de 1,5 vez o intervalo entre ticks. Em um servidor de 10 ticks, 0,15 s em média e 0,2 s no pior caso

Sintomas
Input lag
Fatores
Latência
Quem é afetado
Servidor inteiro
Quando
Sempre
Responsável
Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Responder no mesmo tick em que a requisição foi processada, aumentar o tick rate, enviar na hora as respostas importantes.
Números de referência
Em um servidor de 10 ticks, cada tick dura 100 ms, então só a espera de tick soma 150 ms em média e 200 ms no pior caso. Esperando uma vez só, a média é de 50 ms.
No gráfico
Sempre alto desde o início · Tempo entre a chegada da requisição e o envio da resposta
Onde olhar
Em uma captura de pacotes no servidor, medir o intervalo entre a chegada do pacote de requisição e a saída do pacote de resposta enquanto uma conta de teste repete a mesma ação (ex.: usar um item). Com logs no servidor, ver o horário de chegada da requisição, o número do tick que a processou e o horário de envio da resposta
Confirma se
O tempo dentro do servidor fica em cerca de 1,5 vez o intervalo entre ticks em média e 2 vezes no máximo, constante seja qual for o RTT
Descarta se
Tempo no servidor por volta de metade do intervalo entre ticks: há uma só espera de tick. Tempo maior que o intervalo entre ticks e irregular: verificar estouro do tick
Como verificar
Ferramentas de infra (sem precisar do código do jogo)

Fontes

  1. Peeking into VALORANT's Netcode Riot Games
    O input que chega espera até um tick inteiro pela próxima fronteira de tick, e aplicar e enviar leva mais um frame. Quanto maior o tick rate, menor esse tempo
  2. VALORANT's 128-Tick Servers Riot Games
    Parte da latência vem da rede, e parte, do tick rate do servidor
  3. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    Mudanças em NetworkVariable não são enviadas na hora; são acumuladas e enviadas a cada tick de rede

Veja também

Mesma camada: Design de sincronização

Mesmo sintoma (Input lag) em outras camadas

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