Posted On: 2022-03-07
Last post I introduced the topic of Autonomous Agent Movement (AAM for short), explaining what it is. In this post, I'd like to dive a bit deeper into the benefits of using it: what value does AAM provide, and why am I so convinced I need it for my project, specifically.
As explained previously, AAM allows an individual character to make decisions about and navigate through the space it inhabits. There are (so far as I can tell) two main reasons why a developer whould want characters navigating through their space: either to interact successfully with a simulated system, or to enrich storytelling moments. As the first of these two is a more common motivation, I'll start exploring that one first.
The first, and most common, motivation for using AAM is for game mechanics. Often games involve a significant amount of agent movement, whether that be the player directly controlling a single character, or instructing multiple seperate characters to move about and accomplish different tasks. While the former often does make use of some kind of agent-based movement (ie. enemies finding cover in a shooter), it's much less clear compared to the latter case. When a player plays the role of some director or manager, telling characters their destinations rather than walking them through every step, the systems that enable AAM are on full display for the player to see. What path the character chooses to follow, and how they avoid any newly discovered obstacles along the way, determine how much of the game's challenge comes from its core mechanics (ie. planning an economy or building and army) versus ancillary distractions (ie. having to stop base-building to manually instruct troops to detour around an obvious roadblock.)
The second motivation for using AAM in a game is for narrative benefits. Games often rely on character performances to convey narrative information, and when that performance involves moving about the game world (such as pacing while thinking or moving towards a cupboard to open it), it often benefits from AAM. As mentioned in part 1, one could potentially write these performances without any AAM systems (ie. by explicitly stating every step), but the more dynamic the environments or interactions, the less convincing the performance becomes.
Consider, for example, a character walking a short distance before delivering a speech. If the environments is static and pre-designed by developers, they can hand-author that character's movements: walk six paces to the east, turn 90 degrees and then begin speaking. If, however, environment is unpredictable (such as allowing the player to plant and grow trees anywhere,) then a hand-authored performance won't handle every case as neatly. If a tree is growing two paces to the east of the character, it will distract from the performance - specifically because the performance doesn't take the tree into account*. If, however, the game uses AAM to control its character performances, then the character will be able to account for changes to the environment. Then, instead of walking in a specific direction, the character could walk to a specific place - which would allow the character to avoid any obstacles found along the way (ie. walking around the tree.) With some more complex AAM systems, one could even allow new performances to supercede/influence ongoing ones - such as having the character take a brief detour in order to shake hands with a friend who happened to be standing nearby (perhaps they both needed to walk around the same tree.)
Combining the two motivations creates a third (and imho, more interesting) reason to use AAM. When a game's mechanics enable characters to perform actions that alter various aspects of their (or others') state of being, it creates the opportunity to use mechanics as a means of expressing characterization. For example, if a character's favorite food is a character trait the writers want to express, then the game design could include a hunger system and different kinds of foods. In such a system, an AAM would enable the character to express the character's personality through locomotion: ie. travelling a longer distance to acquire the preferred food.
The expression of such character traits is by no means limited to small details: humans reveal all kinds of information about themselves and their societies through thier movement. When passing strangers on the street, who do they look at? Who do they avoid? Which people or groups do they confront? Do they travel alone, or prefer to go places with others? All of these questions are opportunities to tell the player about how individuals or their society operates - and, when paired with AAM, the expression of these details can emerge automatically - provided that the systems built on top of AAM are robust enough to generate the correct behavior in every situation (ie. if a character is afraid of someone, but travelling with a group of confident peers, having the character avoid by the fear source by seperating from the group might seem out of place, while something more subtle, like speeding up to stay very close to their strongest friend would better convey the nuances of character and social behavior at play in that moment*.)
As you can see, Autonomous Agent Movement can be quite useful. It may be used as the foundation for many mechanics/game systems, or for responsive character performances in dynamic enviornments. For me personally, however, it's the storytelling capabilities that come from combining these two motivations that makes it worth the effort. How much effort, you may ask? That is the topic of next post - why AAM is particularly tricky for my project. I hope you'll join me then.