Estou desenvolvendo um mecanismo de jogo simples (em C #, se for o caso) e não consigo pensar em uma maneira decente o suficiente para implementar scripts em termos de arquitetura.
É uma estratégia simples baseada em turnos, com animações personalizadas e independentes da lógica para batalhas. Possui uma camada de arquitetura global para sistema / coisas de baixo nível e, mais importante, dois módulos principais - lógica e visual de jogo - que se comunicam usando um gerenciador de eventos.
E o fato é que eu realmente gostaria que os scripts influenciassem tanto as coisas relacionadas à lógica do jogo (alteração dos parâmetros das unidades, etc.) quanto as relacionadas à visualização do jogo, como animações / diálogos especiais para batalhas que podem depender de um certo gatilho com script.
(Para ser sincero, o ideal é que eu queira que o script controle o fluxo do jogo, deixando apenas a mecânica / gráficos principais para a lógica / exibição, mas sou novo nisso, então não tenho certeza se posso fazê-lo agora)
Eu estive pensando em três opções:
Apenas deixe o script viver na lógica, mas informe-o sobre o lado gráfico do jogo. Mas isso tornaria a divisão lógica / visão muito vaga, não é ...
Torne o script um módulo separado que trocará eventos com os outros usando o mesmo gerenciador de eventos. Mas isso exigiria muito cuidado com a sincronização de eventos, eu acho ... e também adicionaria muitos tipos de eventos ao gerente. (Ainda, favorito pessoal)
Faça do script um módulo acima de tudo, para que ele possa influenciar / chamar diretamente as funções da lógica / exibição. Isso permite uma funcionalidade inerentemente mais ampla, com o custo de estragar todo o esquema de troca de eventos e com medo de que o script possa quebrar coisas, mesmo quando realmente não deveria.
Portanto, não posso decidir sobre um deles nem pensar em uma maneira melhor de inserir o módulo de script ... Alguma sugestão ou link útil?
Obrigado!
Ps obrigado por migrar a pergunta, não sabia que havia uma seção especializada para gamedev