我正在Java平台上开发一个实时战略游戏克隆,我有一些概念性的问题关于放置在哪里以及如何管理游戏状态。游戏使用Swing/Java2D作为渲染。在目前的开发阶段,没有模拟,也没有人工智能,只有用户可以改变游戏的状态(例如,build/拆除建筑物、增减生产线、组装车队和设备)。因此,游戏状态操作可以在事件分派(dispatch)线程中执行,无需任何渲染查找。游戏状态还用于向用户显示各种聚合信息。但是,由于我需要引入模拟(例如,建筑进度、人口变化、舰队移动、制造过程等),在Timer和EDT中更改游戏状态肯定会减慢渲染速度。假设模拟/AI操作每500毫秒执行一次,我使用SwingWorke