将行为树用于玩家移动的想法有多好?
How good is the idea to use behavior tree for player movement?
我用 Unity 开发游戏。现在我实现了一个玩家跑酷(运动)系统,所以我尝试选择有助于我长期保持架构清洁并轻松添加新状态的模式。
我尝试使用 状态机模式 ,但我意识到,它变得越来越大。
所以我放弃了这个解决方案,决定使用行为树模式。但现在我开始注意到,这种架构越来越深,并行状态的条件变得难以控制。我认为这不是创建玩家跑酷(运动)系统的最佳方式。
所以我的问题是:有没有更好的方法来创建玩家移动系统,使用行为树会有多难?也许行为树中存在我没有注意到的陷阱? 我正在寻找能够让我按条件执行并行状态(或模拟)并且易于维护的体系结构。
我的原型现在是这样的(不要注意get keys,只是架构的快速规划):
使用行为树编码的行为模型过于严格,很容易给您带来麻烦。 FSM(有限状态机)是适用于游戏任何部分的简单但更完整和灵活的架构。行为树可以适应 NPC 典型的简单大脑功能,但绝对不能适应 human-driven 玩家。
有一篇很好的文章可以让你深入了解行为树。
行为树在各方面都优于FSM。它是可扩展的,逻辑上易于阅读。
https://www.gamasutra.com/blogs/ChrisSimpson/20140717/221339/Behavior_trees_for_AI_How_they_work.php
我用 Unity 开发游戏。现在我实现了一个玩家跑酷(运动)系统,所以我尝试选择有助于我长期保持架构清洁并轻松添加新状态的模式。 我尝试使用 状态机模式 ,但我意识到,它变得越来越大。
所以我放弃了这个解决方案,决定使用行为树模式。但现在我开始注意到,这种架构越来越深,并行状态的条件变得难以控制。我认为这不是创建玩家跑酷(运动)系统的最佳方式。
所以我的问题是:有没有更好的方法来创建玩家移动系统,使用行为树会有多难?也许行为树中存在我没有注意到的陷阱? 我正在寻找能够让我按条件执行并行状态(或模拟)并且易于维护的体系结构。
我的原型现在是这样的(不要注意get keys,只是架构的快速规划):
使用行为树编码的行为模型过于严格,很容易给您带来麻烦。 FSM(有限状态机)是适用于游戏任何部分的简单但更完整和灵活的架构。行为树可以适应 NPC 典型的简单大脑功能,但绝对不能适应 human-driven 玩家。
有一篇很好的文章可以让你深入了解行为树。 行为树在各方面都优于FSM。它是可扩展的,逻辑上易于阅读。 https://www.gamasutra.com/blogs/ChrisSimpson/20140717/221339/Behavior_trees_for_AI_How_they_work.php