Do as I Say, Not as I Do

Scripting is when you tell an agent directly what to do. It is like giving it a screenplay to follow and it is often used by level designers to setup encounters and events in the game. One example is a agent that should run over to the table, flip it over and take cover and shoot at the player as he opens the door. It is not uncommon to use scripting languages to make scripts but they do not have to be. Script here is used in the sense of screenplay. A script can sometimes contain branching paths. If the player has a shotgun do this, if he has a nuke launcher do this.


These scripted sequences need to coexist with the decision systems used in the game. Often the script needs to run to it ends and then the agent should return to it's normal decision system.

Finite-State Machines

Behavior Trees

The script can be in the form of a custom Behavior Trees that is assigned to the agent when the script runs. Another option is that the script goes in and turn on or disable nodes in the agents existing Behavior Trees while it is running.

Utility Systems

The script can be a list of concept and action scales. So it increase the flip table and cover actions enough that it takes over.

The one bad actor

One problem with scripts is that one of the actors, the player, always try to destroy it. If the player runs in directly and stand behind the table the agent will look stupid when he flips the table, kneels by the player and start taking shoots at him.