我正在开发一个简单的游戏引擎(如果重要的话,请使用C#),但我想不出足够好的体面的方法来实现架构方面的脚本。
这是一种简单的基于回合的策略,带有用于战斗的自定义,独立于逻辑的动画。它具有用于系统/低级内容的全局体系结构层,最重要的是,两个主要模块-逻辑和游戏视图物-使用事件管理器进行通信。
事实是,我真的很想让脚本同时影响与游戏逻辑相关的内容(更改单位参数等)和与游戏视图相关的内容,例如用于战斗的特殊动画/对话可能取决于某些脚本触发器。
(说实话,理想情况下,我希望脚本控制游戏流程,只将核心机制/图形留给逻辑/视图,但是我对此并不陌生,所以我不确定现在是否可以这样做)
我一直在想三个选择:
只是让脚本保留在逻辑中,但让它了解游戏的图形方面。但这会使逻辑/视图划分非常模糊,不是吗?
将脚本编写为一个单独的模块,该模块将使用同一事件管理器与其他模块交换事件。但是,我想这需要非常小心事件同步,并且还要向管理器中添加大量事件类型。(仍然,个人最爱)
首先将脚本编写为模块,这样它就可以直接影响/调用逻辑/视图的功能。这允许固有地更广泛的功能,但要以某种方式破坏整个事件交换方案的代价,并且担心脚本即使在实际上不应该破坏的情况下也可能破坏东西。
因此,我既无法决定其中之一,也无法想出插入脚本模块的更好方法...有任何建议或有用的链接吗?
谢谢!
ps感谢您移植问题,不知道有专门针对gamedev的部分