¿Cuál es el estado actual de los juegos de estrategia en red en tiempo real?
Me parece recordar que hace unos años, algunos títulos AAA solo transmitían las entradas del jugador (Starcraft 1, Age of Empires). Dado que esto requiere que mantenga todo lo demás totalmente determinista, ¿sigue siendo una opción viable? Sincronizar generadores de números aleatorios parece factible, pero ¿qué pasa con las sutiles diferencias en las implementaciones de FPU, etc.
¿O los juegos de estrategia están usando algo más cercano a las redes de juegos de acción, donde las entidades individuales se transmiten en su lugar (con alguna forma de predicción y compresión (delta))?
Si es así, ¿cómo se tratan los elementos volátiles como los proyectiles?
¿Qué pasa con el cliente / servidor versus peer-to-peer? Supongo que todo esto está fuertemente interrelacionado.
¡Gracias por tu tiempo!
fuente
Respuestas:
http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php Así es como se hacen las redes en los juegos RTS. P2P también es la forma normal de manejar las conexiones. Sin embargo, el uso de un modelo de paso de tiempo de bloqueo da como resultado un caso irritante de desincronización y manejo de trampas. Hay una buena manera de recuperarse cuando ocurre una desincronización y todos los juegos de estrategia en tiempo real simplemente dicen "Salir del partido". Los errores de desincronización de seguimiento de errores también son una pesadilla.
fuente
No para RTS, pero cualquier juego de ritmo rápido necesitará interpolación y predicción
http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
fuente
Esta es una gran lectura y responderá muchas de sus preguntas:
http://udn.epicgames.com/Three/NetworkingOverview.html
En mi juego de estrategia / torre de defensa, estoy usando un modelo cliente / servidor y puedo mantener todo determinista hasta ahora. El cliente solo envía las solicitudes del servidor para hacer cosas (pero en realidad nunca hace nada), y el servidor envía actualizaciones, creaciones y eliminaciones a los clientes cuando las cosas cambian. Aunque mi juego es actualmente determinista, nunca confío en que mis clientes hagan nada bien, el servidor es el jefe y tiene el control total sobre el juego. El cliente es solo una terminal tonta.
Para hacer todo realmente simple, estoy usando una combinación de Reflexión y Evento para mantener a mis entidades completamente a oscuras sobre el lado de las cosas en la red. También utilizo el concepto de un actor y una "fuerza" (a diferencia de un actor y un peón en un FPS como Unreal). Esto permite una encapsulación realmente agradable y un lugar para almacenar el dinero y las cosas de la Fuerza.
fuente