游戏开发的两大超级法宝---协程和树状结构配置

###最近遇到了几个复杂系统的设计,包括:程序员

粒子系统性能优化

技能系统异步

剧情系统编辑器

AI系统性能

UI系统优化

场景系统命令行

###发现这些复杂系统最终都采用了树状结构配置:设计

例如经典的 ogre 火炬之光的粒子系统;协程

rpg游戏的 技能系统,火炬之光,暗黑破坏神;游戏

剧情系统,魔兽争霸3编辑器中的剧情;

AI行为树, 例如 Halo 光晕;

UI树状结构;

场景树,四叉树,八叉树,kdtree;

###树状结构系统的好处是:

业务逻辑互相之间解耦合;

系统容易扩展和修改;

系统模块之间互相访问的方式也是很是规范化;

这样设计的系统,很是优雅,欢迎你们和我多多交流关于 树状结构在游戏设计中的应用。

###而协程是 很是优雅的用于将异步业务逻辑线性化的机制, 经过结合协程和树状结构能够设计很是优雅的系统。

例如AI行为树:

行为树有重要的Action 节点用于执行必定的命令行为,而Action是须要必定时间来执行的,传统的作法是经过Tick 机制,即每帧率更新,可是 存在严重问题是每帧更新会致使 上下文丢失,每次执行都必须从新根据状态来跳转代码;

而协程序好处,即免去写状态机的麻烦,由编译器生成状态机,而程序员只须要设计,业务流程,以及执行等待便可。

虽然忙等待可能会有性能损失,可是带来的开发巨大便捷是很是有优点的, 同时即使须要热点性能优化,只须要手动将 协程改写为 状态机便可。

相关文章
相关标签/搜索