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

Guia do Lag em Jogos › Problemas que só afetam alguns

Orçamento de envio e prioridade por conexão Per-connection bandwidth budget and priority

ID da causa pt-priority · Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do cliente (Equipe de desenvolvimento)

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

Se o servidor limita quanto envia por conexão e manda primeiro o que está mais perto, o lado com limite mais baixo recebe tarde, ou nunca recebe, os NPCs distantes.

Por quê Em lugares lotados, o servidor envia por ordem de importância dentro do limite de envio de cada conexão → Efeito Uma conexão com estimativa de banda baixa (ex.: janela em segundo plano que confirma o recebimento tarde) continua adiando as entidades do fim da fila → Na tela NPCs distantes aparecem tarde ou não aparecem em um só lado

Sintomas
Invisível / entidade fantasma, Input lag
Fatores
Latência
Quem é afetado
Só um dos clientes no mesmo PC, Local ou canal específico
Quando
Quando junta muita gente
Responsável
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: aumentar com o tempo a prioridade das entidades adiadas (para evitar starvation), garantir um intervalo mínimo de atualização. Cliente: enviar as confirmações de recebimento a tempo mesmo em segundo plano, para a estimativa de banda não cair.
No gráfico
Sobe com a carga · Entidades adiadas por conexão, volume enviado por conexão
Onde olhar
Registrar no servidor, por conexão e por tick, os bytes enviados, o limite de envio (banda estimada), quantas entidades ficaram adiadas sem envio e quanto tempo passou desde o último envio de cada entidade. No Unreal, o Networking Insights mostra o tamanho dos pacotes por conexão e as entidades replicadas em cada um
Confirma se
O NPC invisível é uma entidade adiada há muito tempo nessa conexão, o limite dela é mais baixo que o das outras conexões, e as entidades adiadas aumentam quanto mais lotado o lugar
Descarta se
Sem entidades adiadas e com o NPC enviado a tempo: aponta para etapas depois do envio (buffer de recepção, carregamento, opções de exibição). Todas as conexões encostadas no limite: problema de volume de envio ou de design de visibilidade do servidor inteiro
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo

Fontes

  1. Actor Priority in Unreal Engine Epic Games
    Com a banda saturada, os atores a replicar são escolhidos por prioridade (distância, linha de visão, tempo desde a última replicação). Nem todos os atores são replicados toda vez
  2. State Synchronization Gaffer On Games
    Acumulação de prioridade: entidades que não couberam neste pacote entram primeiro no próximo, e o limite de banda é ajustado em tempo real
  3. Networking Insights in Unreal Engine Epic Games
    Mostra, por conexão, o tamanho dos pacotes enviados e recebidos e as entidades e propriedades replicadas em cada um

Veja também

Mesma camada: Problemas que só afetam alguns

Mesmo sintoma (Invisível / entidade fantasma) em outras camadas

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