大家好,我希望你们都很好!我花了几个月时间开发了一款类似文明系列的战略游戏,基于hex地图的回合制游戏。 我正在使用Monogame进行渲染。 由于我正在处理系统,我发现游戏架构可以变得非常复杂。 将系统连接起来所需的抽象层次正在变得疯狂。 目前,我希望游戏速度快,所以所有计算都被分解为使用投影的delta。 从每个回合的资源数量到雾障和其他机制。 这意味着系统中的小变化会保持投影的准确性,并且移动时会有很小的开销,而不需要重新计算整个地图的hex。 首先,我使用管道,以便可以在特定方法中添加分离步骤而不扩展逻辑。 然后,管道是变异的入口: 当玩家移动单位时,变异请求会在管道中发生。 管道(我试图)将变异的责任单独分开,如果其他系统受到影响,它将发布一个事件。 然后,从pub/sub层,事件被处理,并且对于每个系统,正确的代码被调用(当单位移动时,雾障处理程序将更新玩家和单位的雾障)。 然后还有变异本身: 我添加了足迹。 每个处理程序都会发布需要更新投影的变化(例如,添加,删除,零总影响,重新计算)。 这样我就可以跟踪变化并在投影更新时验证它们。 例如,在我的游戏中,单位具有影响,所以当单位移动时,之前的hex会获得-影响,而移动到的hex会获得+影响。 这些总和为0,所以我可以在整个管道结束时验证它。 我没有经验在开发游戏,正在 wondered 如果战略游戏需要那么复杂,还是我在某些地方过度工程。 或者最大的问题: 我是否应该期待其他架构块/抽象层次没有实现? 我知道我有很多雄心勃勃的机制,但仍然。 有人可以分享他们的经验吗?