Pular para o conteúdo principal
O jogo ao vivo

Esta página ainda não foi traduzida: mostrando a versão em inglês.

Como mostrar outros jogadores

Ninguém prevê os outros jogadores — eles são exibidos. Você recebe o estado deles em intervalos e desenha algo entre um e outro. Um erro aqui custa um tranco visível, não uma vida, e por isso este mecanismo tem declarações próprias em vez de compartilhar as da predição.

O modo de exibição é declarado

Para as entidades que não são suas, a sala (room) declara como preencher o intervalo entre os estados que chegam: interpolar entre os estados que você tem ou extrapolar além do mais recente. É uma declaração na entidade, então a resposta é a mesma em todos os clientes e não depende de quem implementou o renderizador.

O atraso de interpolação também é declarado. Mostrar os outros jogadores com suavidade significa mostrá-los um pouco atrasados, numa quantidade declarada. Você ajusta esse número para o seu gênero.

A extrapolação para em vez de inventar

WHAT ARRIVES their state, at intervals WHAT YOU DRAW a smooth path through what arrived, held a little behind carried on stopped not invented
Os estados chegam em intervalos; você desenha um caminho suave entre eles e, quando o próximo não chega, o movimento para

A janela de extrapolação é declarada e, depois dela, a entidade deixa de ser mostrada em movimento em vez de continuar no chute. Extrapolar sem limite faz o jogador mirar num alvo que nunca esteve ali, e ele não tem como perceber — um congelamento visível é a falha da qual dá para se recuperar.

Por que isto é separado da predição do próprio movimento

Os três mecanismos de predição têm autoridades e modos de falha diferentes. Se uma só palavra valesse para os três, ajustar um mudaria os outros dois sem ninguém perceber.

MecanismoOnde rodaQuando erra
prever o próprio movimentoo clienteuma correção, reaplicada e suavizada
mostrar outros jogadoreso clienteum tranco visível
Lag Compensationo servidoralguém morre injustamente

Essa divisão também explica por que existe um preset observer só com este mecanismo: um espectador não tem input próprio para prever, então as configurações de predição ajustariam algo que ele não faz.