¿Con qué frecuencia los grandes MMORPG actualizan la física? [cerrado]

12

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.

Fabio
fuente
No deberías prestar demasiada atención a lo que hacen los demás. Lo que funciona para otra persona no necesariamente tiene que funcionar para usted.
Philipp
66
EVE Online actualiza su simulación una vez por segundo, pero su sistema es inusual. Consulte la primera parte de este artículo para obtener más detalles: themittani.com/features/understanding-eve-online-server-tick
Ross Ridge
1
¿Entonces esta es una pregunta de "preguntar por curiosidades sobre los juegos de otras personas que ya existen" en lugar de una pregunta sobre el desarrollo de un juego?
Trevor Powell
2
No llamaría a esto una trivia, es bastante importante. El hecho de que algunos juegos puedan usar ticks de 1 segundo, que yo no conocía, o que no usan física en absoluto, es muy importante para mí (y debería serlo para cualquier desarrollador). Al mismo tiempo, mi respuesta a Philipp se debió a su implícita implicación de que estaba preguntando esto porque quería decidir sobre mis FPS. Eso no tendría sentido porque mi motor tiene muchas limitaciones y ya conozco el límite de FPS que puedo usar (límites inferior y superior).
Fabio
1
Recuerdo haber leído un artículo sobre Blizzard cambiando la velocidad de procesamiento del servidor WoW para eventos de combate de una vez cada 400 MS a "cada vez que entran". Sin embargo, eso no está relacionado con la física, ya que WoW realmente no tiene mucho de física debido a su antigüedad. Tampoco puedo encontrar una fuente para esto.
Nzall

Respuestas:

7

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).

David Van Brink
fuente
De hecho, esto parece razonable. Incluso he descubierto que hasta 30 FPS hacen un trabajo decente si el integrador es bueno y la detección de colisiones es lo suficientemente inteligente. ¿Conoces otros MMO con física adecuada y sus tiempos?
Fabio
2
Aceptado como el único que proporciona un ejemplo en el mundo real, pero todos fueron un buen alimento para el pensamiento. Gracias chicos.
Fabio
24

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.

Trevor Powell
fuente
44
Esto solo funcionaría si el entorno no realiza ninguna simulación sin jugadores registrados, ¿verdad? De hecho, estaba suponiendo que generalmente lo hacía , pero probablemente eso no sea importante para la mayoría de los MMO, ya que no está realmente "vivo". Gracias, esta fue una respuesta inesperada.
Fabio
2
@Fabio La mayoría de los MMO no hacen nada cuando no hay observador, incluso Ultima Online, que solía tener una economía real (y ecológica) real, lo dejó pasar antes de ser lanzado (aunque no por razones técnicas). Hay juegos donde ocurren cosas incluso cuando no juegas (por ejemplo, Haven and Hearth), pero el truco es que no pasa nada hasta que se observa: cada elemento activo recuerda la última vez que se observó y calcula lo que sucedió en Mientras tanto, en el momento en que lo ves de nuevo. Entonces, en lugar de un valor que actualiza cada tick, lo hace perTick * ticksSinceLastUpdated: simple, eficiente.
Luaan
1
No me malinterpretes; Los servidores MMO a menudo tendrán tareas periódicas que ejecutarán. Comprueba si hay monstruos que deben reaparecer, considera nodos de recursos de desove y haz una copia de seguridad del estado del juego. Quizás incluso algo más elegante si tu juego tiene alguna actividad de procedimiento. Pero no es como la física donde estás corriendo 'x' veces por segundo, incluso cuando no hay nadie cerca. Puede buscar monstruos en desove varias veces por minuto, como máximo (o más probablemente, tener un programa externo que lo haga, y simplemente empuja al servidor para informarle que es el momento, para que el servidor pueda concentrarse en manejar las solicitudes de los clientes) .
Trevor Powell
11

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.

Alan Wolfe
fuente
En algunos juegos, si eso puede volar lo suficientemente rápido, puede matar a alguien. He visto videos de juegos de Halo donde alguien es asesinado por un cono de tráfico impulsado por una explosión.
Random832
Si quieres que la lata afecte el juego, puedes agregarla al mundo de la física sincronizada, ¡pero también puedes tener un mundo de la física no sincronizada en el mismo espacio! Básicamente, el mundo de la física no sincronizada puede verse afectado por el jugador y el mundo de la física sincronizada, pero no puede afectarlos de nuevo (:
Alan Wolfe
3

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 ).

Poligoma
fuente