Pequeños motores de juegos de código abierto disponibles para tutorial [cerrado]

8

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.

Shawn Mclean
fuente
Solo por interés, ¿por qué necesita un motor de secuencias de comandos? C # en sí ya resuelve casi todos los problemas que un motor de secuencias de comandos se utiliza para resolver. Y XNA ya es un "motor de juego muy pequeño" que puede cargar modelos.
Andrew Russell
El tipo con el que estoy trabajando dijo que quiere un motor de secuencias de comandos para no tener que volver a compilar el juego cada vez que algo cambia en la historia.
Shawn Mclean
Para que lo sepas, hay soluciones puras de C # para ese problema: stackoverflow.com/questions/1353456/… (el compilador de C # es parte del tiempo de ejecución).
Andrew Russell

Respuestas:

2

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

Muttley
fuente
4

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.

Ricket
fuente