Avanço rápido em servidor que processa tudo ao chegar Event-driven processing of bursty inputs
ID da causa pt-event-server · Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do cliente (Equipe de desenvolvimento)
Em um servidor que processa e avisa assim que cada pacote chega, as ações agrupadas de um jogador com lag são executadas imediatamente, uma atrás da outra.
Por quê Requisições de skill e movimento do jogador com lag chegam agrupadas → Efeito O servidor executa em ordem assim que recebe e avisa todos na hora → Na tela Na tela dos outros, essa pessoa usa várias skills no mesmo instante ou se move como em avanço rápido
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: executar respeitando o intervalo entre os horários de input das ações (aceitando o horário só dentro de uma margem), ou executar em sequência as ações agrupadas, sem rejeitá-las, espaçadas pelo intervalo mínimo (cooldown global); não checar o cooldown só pelo horário de chegada (inputs normais acabam ignorados). Cliente: enviar as ações com o horário do input.
No gráfico
Alto só em alguns · Intervalo de execução das ações por jogador
Onde olhar
Registrar no log do servidor, por jogador, o horário de chegada e de execução de cada ação e o horário de input colocado pelo cliente (se houver), e comparar o intervalo de execução com o intervalo de input. Ver também o intervalo de chegada dos pacotes desse jogador em uma captura de pacotes no servidor
Confirma se
O intervalo de input é normal, mas os intervalos de chegada e execução no servidor estão espremidos em poucos ms, e esses momentos coincidem com o horário dos reports de avanço rápido dos outros jogadores
Descarta se
Intervalo de input já espremido: aponta para o cliente ou para macro. Execução no servidor regular, mas agrupada só na tela dos outros: conexão de quem está vendo
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo