BehaviorTree:国内很多正式商用项目确实用了,不管RTS,还是RPG,而且用的还行,毕竟写AI一大半时间在调试上,有图形化的界面,调试起来更方便点,有的项目策划可以直接来写AI。值得花时间封装的东西,你做出一套来,以后其他项目都可以用,但是两个人一个多月的时间是最起码的,一个人写一个GUI编辑器,另一个人写 BehaviorTree的运行时,用你们熟悉的语言来写。包括若干基类,运行跟踪,状态单步,以及可以脱离游戏环境的调试方式。如果找到称手的AI框架,拿过来, 比如你可以评估下 U3D的 BehaviorTree的库和编辑器是否可以,能否集成到你的项目?我自己没有用过,我们用自己之前的一个实现。
NaviMesh:大部分情况最好不用,现在国内大部分游戏都是显示3D,但是内部数据还是2D的,比如地图,还是用的格子,在这种情况下,引入NaviMesh会逼迫你客户端使用全3D数据结构,并且逼迫你服务端从2D计算升级到3D计算,主要是 NaviMesh实现起来起码也要一个多月,然后要调试很久。确实很优秀,但是不要为了用它来增加整体项目复杂度,我同事之前实现过 NaviMesh,但是仅仅在试验项目里用了,正式线上产品开发时,我们还是选择用纯2D地图,上传统寻路。
综上:如果是强AI游戏,有1-2个人力,1-2个月的时间,准备投入到AI上,那么把时间花在 BehaviorTree上是值得的,用途比 NaviMesh广很多,就像装修,FSM是锤子,BehaviorTree是钉子枪,NaviMesh顶多算是个喷漆一样。买不起钉子枪,靠锤子也可以钉钉子,但是既没有锤子,也没有钉子枪,你光拿个喷漆在那,是装修不了的。
如果没有太多时间留给AI,那么上FSM吧,至少先把游戏搞出来,现在游戏成功率那么低,花那么多时间在AI上,项目不成就傻了,如果运气好,项目成了,看着那么多用户,数着那么多钱,你加班加点用 BehaviorTree 重构一遍,我相信你心理面都是笑开花的,边加班边笑。