Jump to content
  • Advertisement

Shadax

Member
  • Content Count

    15
  • Joined

  • Last visited

Community Reputation

108 Neutral

About Shadax

  • Rank
    Member
  1. Shadax

    Behavior Trees or FSM?

    Regarding an architectual mix between BTs and FSMs: Crytek uses exactly that approach. Basically the AI's decision making system is a classic BT with all the typical nodes (Sequence, Selector, Loop, Action, custom Decorators, etc.). Plus, it offers a StateMachine node that houses multiple State nodes. These are decorators that in turn house a single BT on their own. Transitions between States of the particular level a BT lives in can be triggered arbitrarily from within that BT by sending a signal. So, instead of having to propagate success or failure all the way up in the hierarchy, a signal can be sent, which gets handled by the StateMachinde by activating different State (i. e. BT).     Cheers!
  2. Shadax

    A.I. Path Following

    Disclaimer: Neither do I have much practical experience doing path following in more complex scenarios.         I think this approach can fall short when the agent has been pushed off his course far enough to end up behind a wall whereas his target position resides exactly on the opposite side of that wall -> steering forces would eventually cancel out each other. And worse: he could then start sliding himself into a dead-end while still trying to reach the target position and avoiding that wall.   Here's what I would try to experiement with: apply a slightly modified Funnel algorithm on a more local basis while moving. You could pass in the target point where your agent intends to steer towards to, then let the algorithm figure out a point that lies withing a valid funnel. If the figured-out point happens to be your target point, just steer straight towards it as your agent won't go off the navmesh. Otherwise, scale the direction from your agent to that point by some amont representing your intended steering force, and move towards that point. Repeat while moving.   Does that make sense?     -- Shadax
  3. Shadax

    Flowgraph AI?

    I have no experience in wrapping a BT by a higher-level GUI (had to build my BTs in XML by hand, and the flowgraph thingy was based on a totally different technology that existed already), but it sounds like something that has been done by other gaming companies - Alex had often mentioned the possibility to expose certain nodes to the game-designer differently than what's going on under the hood.
  4. Shadax

    Flowgraph AI?

    From my experience, one's users (game designers) are more comfortable with flowgraphs, rather than fully-fledged BTs that offer the full spectrum of what can be done with such a system. Most of the time, our designers were using sequence-like nodes in their flowgraphs, and also parallels, though they were not called "parallels", but were rather wrapped by a "synchronization". Also, nodes couldn't fail - just execute and then finish, which simplified their way of thinking. To be able to do branching, a named flag could be set by one node, and be queried by another condition-like node, which had 2 outputs (condition being true or false) that linked to the further nodes. So, things were simplified for the sake of usability by having every node implicitly act as a sequence as well as a parallel without a BT-like fallback mechanism.   So, the flowgraphs were like a Windows OS (get simple things done quickly on a higher level), whereas the BT was more like a Unix-like OS (combine small low-level tools to build really powerful things).   -- Shadax
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!