Estoy desarrollando un motor de juego simple (en C #, si es importante), y no puedo pensar en una forma lo suficientemente decente para implementar scripts en términos de arquitectura.
Es una estrategia simple por turnos con animaciones personalizadas e independientes de la lógica para las batallas. Tiene una capa de arquitectura global para el sistema / cosas de bajo nivel y, lo que es más importante, dos módulos principales, lógica y vista de juego, que se comunican mediante un administrador de eventos.
Y la cuestión es que realmente me gustaría que los guiones influyan tanto en las cosas relacionadas con la lógica del juego (cambio de parámetros de la unidad, etc.) como en las cosas relacionadas con la vista del juego, como animaciones / diálogos especiales para batallas que pueden depender de un cierto disparador con guión.
(Para ser honesto, idealmente quiero que el script controle el flujo del juego, dejando solo la mecánica / gráficos centrales a la lógica / vista, pero soy nuevo en esto, así que no estoy seguro de poder hacerlo ahora)
He estado pensando en tres opciones:
Simplemente deje que las secuencias de comandos vivan en la lógica, pero hágale saber sobre el lado gráfico del juego. Pero esto haría que la división lógica / vista sea muy vaga, ¿no es así?
Convierta las secuencias de comandos en un módulo separado que intercambiará eventos con los demás utilizando el mismo administrador de eventos. Pero supongo que esto debe ser muy cuidadoso con la sincronización de eventos, y también agregar una gran cantidad de tipos de eventos al administrador. (Aún así, favorito personal)
Convierta el script en un módulo sobre todo, para que pueda influir directamente / llamar a las funciones de la lógica / vista. Esto permite una funcionalidad inherentemente más amplia a costa de enroscar todo el esquema de intercambio de eventos y temer que el script pueda romper cosas incluso cuando realmente no debería.
Por lo tanto, no puedo decidir sobre uno de estos ni pensar en una mejor manera de insertar el módulo de secuencias de comandos ... ¿Alguna sugerencia o enlaces útiles?
¡Gracias!
Ps gracias por migrar la pregunta, no sabía que había una sección especializada para gamedev