1. 后端用纯erlang解析行为树
2. 前后端共用一个编辑器, 如果编辑器导出的行为树的存储格式只是直接适用于前端, 而不能直接适用于后端, 那么后端自己制作一个转换工具,将其转换成后端想要的格式, 后端只基于自己想要的格式去解析行为树。
即使万一前端以后更换为使用另一种编辑器,以至于导出的存储格式变了,那么后端解析行为树的代码也不需修改,只需修改转换工具。
3. 尽量做到节点类型在前后端都通用,前后端对节点的解析逻辑是一致的。
即:对于约定好定出的一棵树,那么无论是前端还是后端,给予相同的输入,那么输出(决策结果)就应该是一致的。
4. 有时为了提高性能, 那么前后端可以约定特别增加定制一种节点类型,这种节点类型比较hack,利用这种节点定出来的树,解析和执行起来比较高效。
5. 部分节点类型,可能只有前端需要用到,后端不需要用到,如果真是这样,后端可以暂时不解析它(减少一定开发量), 反之亦然。
6. 解析行为树的逻辑要严谨(必要时做一定的防范),特别要注意死循环。
策划在配置时也要注意,工具层面上如果能检测出策划配置的行为树是否有误, 则更好。
7. 怎么使用编辑器, 要对策划做培训。
程序最好能够提供相应的模板给策划参考,以有效避免策划出错
ps: (1)对于第1点, 可以继续探究下:如果使用第三方的c/c++的解析行为树的开源库,然后erlang层调用c/c++,是否更可行?
(2)对于第2点, 如果编辑器能够支持直接导出后端想要的格式, 则更好。