官术网_书友最值得收藏!

Finite State Machines

Finite State Machines (FSM) can be considered one of the simplest AI models, and they are commonly used in games. A state machine basically consists of a set number of states that are connected in a graph by the transitions between them. A game entity starts with an initial state and then looks out for the events and rules that will trigger a transition to another state. A game entity can only be in exactly one state at any given time.

For example, let's take a look at an AI guard character in a typical shooting game. Its states could be as simple as patrolling, chasing, and shooting:

There are basically four components in a simple FSM:

  • States: This component defines a set of distinct states that a game entity or an NPC can choose from (patrol, chase, and shoot)
  • Transitions: This component defines relations between different states
  • Rules: This component is used to trigger a state transition (player on sight, close enough to attack, and lost/killed player)
  • Events: This is the component that will trigger to check the rules (guard's visible area, distance to the player, and so on)

FSMs are commonly used go-to AI patterns in game development because they are relatively easy to implement, visualize, and understand. Using simple if/else statements or switch statements, we can easily implement an FSM. It can get messy as we start to have more states and more transitions. We'll look at how to manage a simple FSM more in depth in Chapter 2, Finite State Machines and You.

主站蜘蛛池模板: 甘孜| 岳西县| 拉萨市| 怀来县| 永丰县| 沙洋县| 湘阴县| 禹州市| 盱眙县| 乌拉特前旗| 盱眙县| 昆山市| 绥芬河市| 龙游县| 尼勒克县| 曲松县| 西华县| 阜城县| 鹤庆县| 和平县| 鄂托克前旗| 台南县| 靖西县| 兴国县| 辛集市| 济南市| 图木舒克市| 寿光市| 富平县| 建德市| 西乌| 法库县| 玉林市| 福泉市| 民丰县| 鄂托克旗| 莱芜市| 鹤峰县| 贞丰县| 巨鹿县| 永吉县|