Por lo que yo entiendo, la mayoría de los grandes juegos usan un tiempo fijo para tener una simulación estable.
Con respecto al servidor del juego , ¿qué "velocidad de fotogramas" imponen? O dicho de otra manera, ¿qué paso fijo tienden a usar?
Sé que muchos dirían: "Tan rápido como puedan salirse con la suya". Me gustaría saber qué tan rápido es eso, si tienes experiencia directa de MMORPG establecido.
mmo
fixed-timestep
Fabio
fuente
fuente
Respuestas:
Second Life implementa física en el lado del servidor usando Havok, y bloquea las actualizaciones a 45 por segundo.
https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120
Las versiones anteriores alrededor de 2005-2006 permitieron que las actualizaciones físicas fuesen tan altas como lo permitiera el servidor. Una región sin complicaciones con pocos objetos con secuencias de comandos podría ejecutarse a 800 actualizaciones por segundo ... Para una mejor eficiencia y consistencia, luego la bloquearon a 45.
(En Second Life, la velocidad de fotogramas depende de la CPU y la potencia de gráficos de cada cliente. La precisión mundial depende del rendimiento de la red).
fuente
He trabajado en un par de servidores de juegos, incluido un conjunto de ellos para un MMO.
En general, no tienen física en absoluto. En las pocas situaciones en las que la física es necesaria (saltando, principalmente), dejamos que los clientes calculen su propia física, y simplemente negamos cualquier cosa que sea demasiado extravagante (los jugadores se mueven demasiado rápido durante demasiado tiempo, yendo mucho más alto de lo que deberían haber podido saltar, etc)
Los servidores tampoco suelen tener "tiempos". Normalmente no piensan en "cuadros por segundo" en absoluto. En cambio, sabemos cuándo escuchamos por última vez a alguien y qué estaban haciendo en ese momento, y luego, cuando volvemos a escuchar de ellos un poco más tarde, escuchamos lo que están haciendo ahora, por lo que actualizamos nuestro estado interno para que coincida. . No hay necesidad de simular rigurosamente todo el lado del servidor; simplemente podemos grabar las cosas que los clientes nos dicen y hacer algunas comprobaciones para asegurarnos de que lo que dicen los clientes que sucedió nos parece plausible.
fuente
perTick * ticksSinceLastUpdated
: simple, eficiente.Además de las otras buenas respuestas dadas, quiero agregar el hecho de que parte de la física comúnmente no es impulsada por el servidor o ni siquiera por el servidor, y es un truco común para hacer que el mundo parezca más rico sin agregar sobrecarga a la red o al servidor procesamiento lateral.
Por ejemplo, puede haber escombros que puede patear en el suelo o soplar en el viento que interactúa con otros objetos, o tal vez puede empujar a los cuerpos muertos.
Si la física es puramente decorativa, y no afecta el movimiento o el juego de ninguna manera, puede hacer que suceda por completo en el lado del cliente.
Los diferentes jugadores verán las cosas de manera diferente (por ejemplo, si disparas una lata en el suelo y se va volando, es posible que otros jugadores no vean que puede volar) pero hay muchos casos en los que eso no importa que la experiencia no sea Es lo mismo para todos los jugadores, y tener simulaciones físicas del lado del cliente realmente puede mejorar la apariencia del juego en línea.
fuente
EVE Online, un MMO con un solo fragmento y hasta varios miles de jugadores en grandes batallas espaciales ejecuta su física en un tic de 1 Hz, llamado el tic del "destino".
http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/
El llamado "Baño de sangre de B-R5RB" es la pelea de jugadores emergentes más grande que haya tenido lugar en un juego en línea hasta la fecha ("el conflicto de 21 horas de duración involucró a más de 7,548 personajes en total y un máximo de 2,670 jugadores en el sistema B-R5RB"). a la vez ", de acuerdo con https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).
fuente