Una vez intenté escribir un juego simple con UDP en una semana como prueba de usar y tirar. Fue horrible.
Lo tiré temprano. El principal problema que tuve fue restaurar el estado del juego de todos los jugadores / enemigos / objetos a un estado anterior y avanzar rápidamente el juego hasta el punto en que el jugador está jugando (es decir, medio segundo antes de un salto. hacer que el jugador pierda el salto)
¿Quizás este método no es la forma más fácil? Sospecho que es así, pero lo diseñé mal desde el principio y me di cuenta al final del segundo día. (así que no aprendí demasiado o perdí tanto tiempo)
Para mí y para otros, ¿qué implica un juego UDP simple y cómo escribo uno? ¿O cómo resuelvo el problema de predicción restaurando el estado correctamente?
Marcaré esto como CW bc. Sé que habrá muchas respuestas útiles.
fuente
Desarrollar el suyo puede ser educativo, pero a menudo puede hacer más si puede aprovechar una implementación existente (o al menos comenzar desde allí).
He usado tanto ENet como Raknet . Solo usé Enet en un juego simple pero hizo lo que necesitaba. Enet usa una API de nivel inferior que Raknet. Raknet fue utilizado en un proyecto más grande. Raknet es extremadamente poderoso, pero quiere hacerte estructurar tu juego alrededor del marco de Raknet.
Enet:
Raknet:
fuente
Si tiene tiempo y energía, puede descargar la fuente Quake 3 y estudiarla. Es bastante fácil de comprender si te sientes cómodo con C e igualmente fácil de jugar.
¿Qué otros juegos multijugador tienen fuente disponible y usan UDP?
fuente
Si te vuelves casero (como lo hice yo) aprenderás toneladas, también sobre cosas que no querías saber. Como el NAT transversal. Según caspin, Enet se está perdiendo eso, pero siempre puedes encontrar algún código STUN de código abierto que funcione en la mayoría de las situaciones.
fuente