Advertisement

what cana be replacement of state machines

Started by March 05, 2016 09:11 PM
5 comments, last by AlexMekhed 8 years, 8 months ago

hi.

i recently read a article on http://aigamedev.com/open/article/fsm-age-is-over/ that says age of fsm is over. i always for implementing of behavior of my ai use state machines but can really it be used replaced with other kind of programing. in advanced best developers on AAA games use state machines or it canbe something compeletly different?

thankyou for helping

Judging on the last paragraph the author is talking about "goal oriented action planning". It indeed can simplify part of character AI that decides what action to take. But how do you implement concrete actions and behaviours is not less important.

To learn what AAA devs use just google some titles + ai. For example "Fear AI" gives the following:

http://alumni.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.pdf

Advertisement
State machines as an explicit structure for AI never really were all that good. They have many problems especially at large numbers of states/transitions, and can be extremely fragile and problematic to maintain.


The ideas of states and transitions - the underpinnings of FSM design - are universal patterns and will never go away. Every single AI technique can be described in terms of states and transitions at some level.


I don't buy the notion that GOAP is a drop-in FSM replacement, because they model very different things.


Last but not least, it is important to decide what the appropriate tools are for the specific problems you are trying to solve. Just because some web article says FSMs are "over" doesn't mean they are no longer useful tools. In general, understand the tools and what they do - you will be far better equipped to make these decisions than if you drive your process by what seems to be the current fad.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

I was about to say that the "age of state machines" has been over for about 10 years. And then I saw that the article was written in 2007. So yeah... it's been dead for a long time.

Here's a description and analysis of what all is available and in use.

http://intrinsicalgorithm.com/IAonAI/2012/11/ai-architectures-a-culinary-guide-gdmag-article/

Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play

"Reducing the world to mathematical equations!"

I was about to say that the "age of state machines" has been over for about 10 years. And then I saw that the article was written in 2007. So yeah... it's been dead for a long time.

Here's a description and analysis of what all is available and in use.

http://intrinsicalgorithm.com/IAonAI/2012/11/ai-architectures-a-culinary-guide-gdmag-article/

thankyou for your answer. but dont you think some article you gave something like goal oriented action planning is much like states machines? but instead of using states it has some state steps of goals that it should pass to get the goal state. state machines i think is still good because you can simply write clean code using them.

i recently read a article on http://aigamedev.com/open/article/fsm-age-is-over/ that says age of fsm is over. i always for implementing of behavior of my ai use state machines but can really it be used replaced with other kind of programing. in advanced best developers on AAA games use state machines or it canbe something compeletly different?

I think the main point is that "use a state machine for everything" is obsolete nowadays.

It doesn't make state machines obsolete, it just means that for some parts, different techniques are considered to be better.

For example, a "goal oriented action planner" is basically an A* search over available actions. You can, in theory, express that in a state machine (you can literally code anything in a state machine). However, if you provide the actions to a path finder instead, and say to it "give me a path to this goal", the A* path finder will do the same in much less and much simpler code.

On the other hand, if I know the path already, for example, because there is exactly one possible solution, it's nonsense to ask the path finder to find the path, since you already know what the answer is going to be! In such a case, you can instead simply program a state machine for it.

Advertisement
thankyou for your answer. but dont you think some article you gave something like goal oriented action planning is much like states machines? but instead of using states it has some state steps of goals that it should pass to get the goal state. state machines i think is still good because you can simply write clean code using them.

Not at all. First, contrary to FSM, there is no predefined graph of actions/states/goals in GOAP and thus you dont need to manage it. Just a set of states, goals entailed by states and actions that influence the state in some way (and fullfill the goals).

Second, and the most important is how you treat the state of an object in GOAP. In FSM states of a bot are like: idle, patroling, pursuiting target, searching for food, etc. And there are some transitions between those states. But actually all these states are not a states of a bot in reality. In reality, state of a bot is his health, his awareness of surroundings, his equipment, etc. And there are no transition between the states. This is how you treat state in GOAP. Bots state entails goals. If bot has low health, he needs to restore it, if bot is hungry, it needs to eat some food. Bot assess his state and generate goals he needs to achieve. Then he evaluates the best way (most suitable action in present moment) to fullfill his goals, to satisfy his desires, to minimize his discontent. There are numerous ways to do such evaluation. GOAP is not about A* actually, although A* is the most advanced planning technique.

This topic is closed to new replies.

Advertisement