Estoy aprendiendo a crear un motor de juego desde cero en XNA. Estoy buscando ejemplos de motores de juegos muy pequeños, específicamente la arquitectura y estructura de los archivos fuente, etc. Debería incluir un motor de secuencias de comandos. Los artículos también son apreciados.
Más específicamente, tengo un problema para saber cómo conectar el motor de secuencias de comandos al resto del motor del juego, como cargar modelos desde el script.
open-source
Shawn Mclean
fuente
fuente
Respuestas:
los ángel del motor es un motor pequeño y muy bonito, de código abierto escrito en C ++ y OpenGL. Además, tiene una interfaz de script Python. Aunque el motor no está escrito en C #, debería darle algunos consejos e ideas, y por lo poco que he jugado con él, el código es muy limpio y fácil de entender, incluso si no está totalmente en C ++.
fuente
Me gusta el libro Programming Role Playing Games with DirectX (2nd edition) para su sección de secuencias de comandos; Realmente no he visto un tutorial de principio a fin sobre cómo hacer un motor de secuencias de comandos en otro lugar. Y, por supuesto, al ser un libro, te guiará paso a paso creando la parte de scripting del motor (y todo el resto del motor del juego que establece a lo largo del libro, por supuesto). Lamentablemente, el código fuente no está disponible en línea.
Una vez que tenga un motor de secuencias de comandos, mantendría separados los modelos 3D de las secuencias de comandos . Los guiones suelen estar en el lado lógico de las cosas, mientras que los modelos 3D son sin duda el lado de presentación / vista de las cosas, y estos realmente no deberían mezclarse. Cuando una secuencia de comandos ordena a un personaje que "camine hasta (3,5)", no necesita decir "cargar animación de caminata, establecer la velocidad en (-1,1), esperar 3 segundos, establecer la velocidad en cero, cargar inactivo animación"; normalmente solo tendría una
walkTo(x,y)
función disponible para el script, y el código intermedio se encargaría de los modelos 3D, animaciones, etc.Pero bueno, si realmente lo necesita, defina sus propias funciones en su intérprete de secuencias de comandos que obtenga modelos 3D y haga lo que necesite con ellos. Creo que estás pensando demasiado lejos; Preocúpese primero por escribir un intérprete de guión simple, y luego agregue las funciones necesarias al intérprete mientras escribe sus guiones.
fuente