Tanto quanto eu entendo, a maioria dos grandes jogos usa o timestep fixo para ter uma simulação estável.
Em relação ao servidor do jogo , qual "taxa de quadros" eles impõem? Ou, dito de outra maneira, que passo fixo eles tendem a usar?
Eu sei que muitos diriam: "O mais rápido que puderem". Eu gostaria de saber o quão rápido é isso, se você tem experiência direta com o MMORPG estabelecido.
mmo
fixed-timestep
Fabio
fonte
fonte
Respostas:
O Second Life implementa a física no lado do servidor usando o Havok e bloqueia as atualizações para 45 por segundo.
https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120
As versões anteriores, por volta de 2005-2006, permitiam que as atualizações físicas flutuassem tão alto quanto o servidor permitir. Uma região não complicada, com poucos objetos com script, pode ser executada a 800 atualizações por segundo ... Para obter melhor eficiência e consistência, eles posteriormente a bloquearam em 45.
(No Second Life, a taxa de quadros depende da CPU e da potência gráfica de cada cliente. A precisão do mundo depende do desempenho da rede.)
fonte
Eu trabalhei em alguns servidores de jogos, incluindo um conjunto deles para um MMO.
Em geral, eles não têm física. Nas poucas situações em que a física é necessária (pulando, principalmente), permitimos que os clientes calculem sua própria física e negamos qualquer coisa que seja muito estranha (jogadores se movendo rápido demais por muito tempo, indo muito mais alto do que deveriam), etc).
Os servidores também normalmente não têm 'timesteps'. Eles normalmente não pensam em "quadros por segundo". Em vez disso, sabemos quando ouvimos falar de alguém pela última vez e o que eles estavam fazendo naquela época, e quando ouvimos falar um pouco mais tarde, ouvimos sobre o que eles estão fazendo agora e, portanto, atualizamos nosso estado interno para corresponder . Não há necessidade de simular rigorosamente tudo do lado do servidor; podemos apenas registrar o que os clientes nos dizem e fazer algumas verificações para garantir que o que os clientes dizem que aconteceu nos pareça plausível.
fonte
perTick * ticksSinceLastUpdated
- simples, eficiente.Além das outras boas respostas, quero acrescentar o fato de que alguma física geralmente não é dirigida pelo servidor ou mesmo conhecida pelo servidor e é um truque comum para fazer o mundo parecer mais rico sem sobrecarregar a rede ou o servidor. processamento lateral.
Por exemplo, pode haver detritos que você pode chutar no chão ou soprar no vento que interage com outros objetos, ou talvez você possa empurrar cadáveres.
Se a física é puramente decorativa e não afeta o movimento ou a jogabilidade de nenhuma maneira, você pode fazer com que isso aconteça completamente no lado do cliente.
Jogadores diferentes verão as coisas de maneira diferente (por exemplo, se você atirar uma lata no chão e ela voar para longe, outros jogadores podem não ver que podem voar), mas há muitos casos em que isso não importa que a experiência não seja ' o mesmo para todos os jogadores, e ter simulações de física do lado do cliente pode realmente melhorar a aparência do jogo online.
fonte
O EVE Online, um MMO com um único fragmento e até vários milhares de chapas em grandes batalhas espaciais, executa sua física em um tick de 1 Hz, chamado de "destino".
http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/
O chamado "Banho de Sangue de B-R5RB" é a maior luta emergente de jogadores já realizada em um jogo online até o momento ("o conflito de 21 horas envolveu mais de 7.548 caracteres no total e um máximo de 2.670 jogadores no sistema B-R5RB" de uma só vez ", de acordo com https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).
fonte