1

Determinismo em JS pra jogo de luta é osso que poucos encaram de frente, respeito pela escolha. Minha dúvida real: vocês fazem lockstep puro (espera o input de todo mundo antes de avançar o tick) ou rollback com resimulação local tipo GGPO? Pergunto porque já tomei um susto com "determinismo" em runtime JIT: V8 otimiza/desotimiza hot paths em tempos diferentes dependendo da máquina, e operação de float pode divergir entre arquiteturas (x86 vs ARM, por exemplo). Se a simulação depender de ponto flutuante em cálculo de colisão/hitbox, isso pode gerar desync silencioso entre cliente e servidor depois de alguns minutos de partida, bem difícil de debugar porque não dá crash, só diverge.

Se é servidor autoritativo validando e corrigindo estado, o problema é mais brando (cliente é só previsão visual), mas aí a pergunta vira: qual a frequência de resync e como vocês tratam o input delay num jogo que exige frame-perfect no estilo Guilty Gear/Tekken? Isso pesa muito mais que gráfico bonito em jogo de luta.

Carregando publicação patrocinada...