Actualmente estoy trabajando en un juego orientado a la física para un jugador en el que me gustaría simular la física del lado del servidor. Esto se debe a que el juego tendrá tablas de clasificación, progresión persistente del jugador, etc.
Sin embargo, el problema es que el juego probablemente será jugado por cientos (quizás miles) de personas al mismo tiempo. Esto me preocupa, ya que probablemente matará la potencia de procesamiento del servidor si tengo que hacer y mantener cientos de estados al mismo tiempo.
No tendría problemas para mover todas las simulaciones físicas al lado del cliente, pero realmente necesitaría una forma de validar si el resultado de una simulación del cliente es válido. Sin embargo, no puedo entender cómo.
He pensado ejecutar la simulación del lado del servidor de vez en cuando para validar si el cliente todavía está jugando limpio, pero realmente quiero que el servidor tenga la menor tensión posible.
La física se volverá tan compleja como la demostración de GDC 2011 de Glenn Fiedler , tal vez incluso más simple. Sin embargo, muchos más cuerpos rígidos que siempre chocan estarán en una sola escena y todos serán visibles a la vez.
Me resulta difícil obtener una respuesta a este caso en particular, ya que la mayoría de los recursos en la web, una vez más, el sitio Glenn Fiedlers es excelente, habla sobre física en red a pequeña escala (por ejemplo, un FPS con 30 jugadores, como Halo).
Cualquier consejo, sitios web, documentos o similares sobre el tema serán muy apreciados.
Un resumen de las preguntas a las que me gustaría una respuesta:
- ¿Qué tan factible es un modelo cliente-servidor? ¿Mi preocupación por el poder de procesamiento del servidor es legítima y está fundada?
- ¿Es posible validar de manera confiable una simulación física ejecutada por el cliente en el servidor? ¿Si es así, cómo?