Implementar a compensação de atraso de rede é difícil, como evitá-lo?
Talvez seja possível usar truques e criar mecânica de jogo de tal maneira que o atraso seja percebido como uma parte não crítica ou até natural do jogo?
Quais são essas técnicas e existem jogos existentes (MMORPG, Estratégias, ...) que usam essas técnicas?
ATUALIZAR:
Jogos baseados em turnos não exigem compensação de atraso, mas seria interessante ver abordagens em tempo real (ou apenas uma impressão em tempo real, a parte importante - o usuário não deve ser bloqueado e forçado a esperar).
A principal razão para eu evitar a compensação de atraso é a simplicidade.
Respostas:
É comum que o cliente implemente algum tipo de feedback para que o jogador saiba imediatamente que sua ação escolhida foi registrada, por exemplo:
Isso pode ocorrer enquanto as informações estão sendo transportadas para o servidor, para que o jogador não perceba que sua ação ainda não foi iniciada. Enquanto o servidor responder prontamente e a ação começar em breve, o jogador poderá não perceber o atraso.
Esses truques funcionam em jogos em que as entradas do jogador são bastante raras e, portanto, a quantidade de tempo que você gasta esperando a entrada em vigor é uma proporção relativamente pequena do tempo total gasto jogando. Portanto, você gostaria de encontrar maneiras de estruturar o jogo para que o jogador faça menos insumos. Isso provavelmente significa tornar as ações dos jogadores mais abstratas e fazer com que o jogo implemente o comportamento de baixo nível. Exemplos:
fonte
Pensamentos aleatórios:
Então sim, trapaceie bastante.
fonte
A resposta é bastante simples - basta criar jogos que não possuem seções de tempo crítico. Você está procurando evitar a implementação desses tipos de interpolações por um motivo específico, pelo que entendi, o que significa que você não está preocupado com a jogabilidade estremecida e rápida. Isso é perfeitamente aceitável para muitos jogos, incluindo o Civilization (que é um jogo de estratégia). No entanto, entenda que isso NÃO é aceitável para um jogo de estratégia em TEMPO REAL , no qual você precisa passar muitos dados pela rede em tempos variáveis. Se você deseja criar um jogo em uma rede de latência muito alta, considere o seguinte:
Espero que isso ajude pelo menos um pouco; sem conhecer suas idéias exatas de jogo, é difícil. Presumo que você tenha suas razões para querer criar seu jogo com base nesse padrão (simplicidade, economia de largura de banda, complexidade de rede reduzida)
fonte
Você também pode fazer com que o lag faça parte de sua jogabilidade por "realismo". Digamos que seus jogadores pretendam controlar alguns robôs à distância, você pode forçar o atraso a ser de pelo menos 500ms ou 1s (você precisaria implementar algum sistema dinâmico de preenchimento de lag).
fonte
Também é um bom truque para simplesmente esconder as ações dos jogadores. Muitos jogos de FPS fazem exatamente isso. Eles não mostram nenhum visual da maioria das balas, apenas sons são tocados e você obtém o resultado na forma de dano causado aos jogadores.
Eu joguei alguns jogos de FPS em que armas de alta precisão (atiradores de elite e outros) tinham efeitos visuais muito claros, e você podia ver que o outro jogador atirou atrás de você, mas por causa da compensação de atraso, você foi morto.
fonte