在工作于 MeloDancer期间,我将更多的游戏逻辑移至一个清晰的后端风格模拟中。最大性能收益并不是来自一个复杂的算法,而是减少了重复的工作。
1. 批量更新而不是立即变化
游戏不会让每个对象立即改变世界。
首先收集动作,然后在一个受控的更新步骤中解决。
移动、冲突、地砖变化和游戏命令都经过同样的管道。
这样世界状态就更加可预测,并避免了许多小的散布式重新计算。
2. 缓存频繁答案
后端存储游戏经常询问的数据。
例如:
- 占据的地砖
- 访问过的地砖
- 可见的地砖
- 实体的细胞
如果没有缓存,游戏将反复搜索世界来回答相同的问题。
有缓存时,它直接读取准备好的数据。
重要的规则:缓存必须与真实状态同步。
如果实体移动,其位置和地砖占用必须同时更新。
3. 只处理相关区域
许多系统不需要整个地图。
光照、视觉、交互、AI检查和地砖效果通常只与玩家附近或动作来源附近有关。
因此后端限制计算到实际可能受到影响的区域。
这是尤其适用于网格游戏和大地图的。
世界越大,避免触及不能当前关心的细胞就越重要。
4. 分离后端模拟与视觉
后端决定发生了什么。
视觉层决定如何显示它。
模拟产生事件,如:
- 实体移动
- 地砖变化
- 对象生成
- 命令失败
- 效果触发
然后呈现层播放动画、VFX、UI反馈、声音和突出。
这样游戏规则与视觉独立,并防止视觉系统引起额外的模拟工作。
评论 (0)