Difference between revisions of "Algorithmic Agents"

From gdp3
Jump to: navigation, search
(Relations)
(Narrative Aspects)
 
(55 intermediate revisions by the same user not shown)
Line 6: Line 6:
  
 
=== Examples ===
 
=== Examples ===
Already most of the earliest computer games, including OXO (a computerized version of [[Tic-Tac-Toe]]), [[Asteroids]], [[Space Invaders]], and the [[Bomberman Series]] made use of algorithms to control opponents to the players. It is still used in many games, e.g. in the [[Assassin's Creed Series|Assassin's Creed]], [[God of War series|God of War]], [[Need for Speed Series|Need for Speed]], [[Doom series|Doom]], [[Quake series|Quake]], and [[Civilization (video games) series|Civilization]] series. In some of these cases (i.e. [[Tic-Tac-Toe]], [[Need for Speed Series|Need for Speed]], [[Civilization (video games) series|Civilization]], and, somewhat paradoxically, multiplayer versions of [[Doom series|Doom]], [[Quake series|Quake]]), the [[Algorithmic Agents]] replaces human opponents while in other cases being part of the game world. The [[Left 4 Dead Series]] uses [[Algorithmic Agents]] not only for the infected that attack the players' characters, but also to control other player characters if there are not four people available. In all these case the [[Algorithmic Agents]] are also used to provide opponents but in games such as [[Fable II]], [[Fallout Series]], [[NetHack]], and [[Torchlight]] the [[Algorithmic Agents]] also control animals that accompany the players' characters.
+
Already most of the earliest computer games, including [[Nim|Nimatron]], OXO (a computerized version of [[Tic-Tac-Toe]]), [[Asteroids]], [[Space Invaders]], and the [[Bomberman series]] made use of algorithms to control opponents to the players. It is still used in many games, e.g. in the [[Assassin's Creed series|Assassin's Creed]], [[God of War series|God of War]], [[Need for Speed series|Need for Speed]], [[Doom series|Doom]], [[Quake series|Quake]], and [[Civilization (video game) series|Civilization]] series. In some of these cases (i.e. [[Tic-Tac-Toe]], [[Need for Speed series|Need for Speed]], [[Civilization (video game) series|Civilization]], and, somewhat paradoxically, multiplayer versions of [[Doom series|Doom]], [[Quake series|Quake]]), the [[Algorithmic Agents]] replaces human opponents while in other cases being part of the game world. The [[Left 4 Dead series]] uses [[Algorithmic Agents]] not only for the infected that attack the players' characters, but also to control other player characters if there are not four people available. In all these case the [[Algorithmic Agents]] are also used to provide opponents but in games such as [[Fable II]], [[Fallout series]], [[NetHack]], and [[Torchlight]] the [[Algorithmic Agents]] also control animals that accompany the players' characters.
  
[[Algorithmic Agents]] are also used to provide a basis of behaviors to agents in a game which players can then modify, as for example in the [[Lemmings Series|Lemmings]] and [[Sims Series]], or indirectly control, of which the  [[Black & White series]] is an example. Games such as [[RoboRally]] and [[Space Alert]], where players have to choose several actions together before they are enacted, can also be seen as examples of games that use [[Algorithmic Agents]] even if players create the algorithms/instructions and the outcomes are fixed unless some external factor is changed (e.g. the position of the other robots in [[RoboRally]]. MUDs<ref name="MUDs"/> typically give experienced players privileges to modify the game environment, and for those supporting more generic coding such as LPMUDs<ref name="LPMUDs"/> this can be in the form of independent entities capable of initiative and adaptive responses. In contrast, programming games such as [[Crobots]] and [[P-Robots]] challenge players to create better algorithms than other players before gameplay begins.
+
[[Algorithmic Agents]] are also used to provide a basis of behaviors to agents in a game which players can then modify, as for example in the [[Lemmings series|Lemmings]] and [[Sims series]], or indirectly control, of which the  [[Black & White series]] is an example. Games such as [[RoboRally]] and [[Space Alert]], where players have to choose several actions together before they are enacted, can also be seen as examples of games that use [[Algorithmic Agents]] even if players create the algorithms/instructions and the outcomes are fixed unless some external factor is changed (e.g. the position of the other robots in [[RoboRally]]. MUDs<ref name="MUDs"/> typically give experienced players privileges to modify the game environment, and for those supporting more generic coding such as LPMUDs<ref name="LPMUDs"/> this can be in the form of independent entities capable of initiative and adaptive responses. In contrast, programming games such as [[Crobots]] and [[P-Robots]] challenge players to create better algorithms than other players before gameplay begins.
  
 
== Using the pattern ==
 
== Using the pattern ==
 
The use of [[Algorithmic Agents]] by necessity require game designer to consider what [[Agents]] should exist in the game and what algorithms control their behavior. Which algorithms to use is not only a question of creating them, but also considering who can create them. The most common case is that they are created in advance by game designers but another possibility is to allow players to create the algorithms. The simplest form of this is [[Action Programming]] (as for example in [[RoboRally]]) and can be seen more as command sets in that they do not take input from the environment while being executed. Examples of games supporting actual coding include both pure programming games, such as [[Crobots]] and [[P-Robots]], as well as MUDs, which use it to provide user-created content.  
 
The use of [[Algorithmic Agents]] by necessity require game designer to consider what [[Agents]] should exist in the game and what algorithms control their behavior. Which algorithms to use is not only a question of creating them, but also considering who can create them. The most common case is that they are created in advance by game designers but another possibility is to allow players to create the algorithms. The simplest form of this is [[Action Programming]] (as for example in [[RoboRally]]) and can be seen more as command sets in that they do not take input from the environment while being executed. Examples of games supporting actual coding include both pure programming games, such as [[Crobots]] and [[P-Robots]], as well as MUDs, which use it to provide user-created content.  
  
The types of [[Agents]] available depends primarily on how they relate to players and their goals. [[Enemies]] have [[Preventing Goals]] compare to the players' goals and are typically [[Units]] or [[Boss Monsters]] but [[Algorithmic Agents]] can also be used to control [[Avatars]] or [[Characters]], thereby creating [[AI Players]]. The latter can also be used to create [[Companions]] so [[Teams]] can be created with players (examples include various humans characters in the [[Fallout Series]] and animals in [[NetHack]] and [[Fable II]]), either through having [[Mutual Goals]] or having individual [[Continuous Goals| Continuous]] and [[Supporting Goals]] in relation to the players' goals. [[Enemies]] and [[Companions]] may both be [[NPCs]] but these may also have their [[Own Agendas]] independent of player goals. [[Agents]] may of course also change what role they have during gameplay, either due to [[Narration Structures]] which may in turn cause [[Surprises]] or as effects of players' actions through use of the pattern [[Actions Have Social Consequences]]. One example of this can be found in the [[Fallout series]], where players' [[Companions]] may abandon or attack players who start behaving differently than when they started to cooperate.  
+
The types of [[Agents]] available depends primarily on how they relate to players and their goals. [[Enemies]] have [[Preventing Goals]] compare to the players' goals and are typically [[Units]] or [[Boss Monsters]] but [[Algorithmic Agents]] can also be used to control [[Avatars]] or [[Characters]], thereby creating [[AI Players]] as long as they at least seem to have their [[Own Agenda|Own Agendas]]. The latter can also be used to create [[Companions]] so [[Teams]] can be created with players (examples include various humans characters in the [[Fallout series]] and animals in [[NetHack]] and [[Fable II]]), either through having [[Mutual Goals]] or having individual [[Continuous Goals| Continuous]] and [[Supporting Goals]] in relation to the players' goals. [[Enemies]] and [[Companions]] may both be [[NPCs]] but these may also have their [[Own Agenda|Own Agendas]] independent of player goals. [[Agents]] may of course also change what role they have during gameplay, either due to [[Predetermined Story Structures]] which may in turn cause [[Surprises]] or as effects of players' actions through use of the pattern [[Actions Have Diegetically Social Consequences]]. One example of this can be found in the [[Fallout series]], where players' [[Companions]] may abandon or attack players who start behaving differently than when they started to cooperate. What constitutes relevant behavior for all these types of [[Algorithmic Agents]] depend on what ambitions for [[Thematic Consistency]] exist.
  
However, players may not perceived [[Enemies]], [[Companions]], or [[NPCs]] as [[Agents]] if their behavior is too predictable<ref name="Lankoski2007"/> even if the entities diegetically convey that relation and behavior. Instead, players may reduce them to [[Converters]], [[Containers]], [[Obstacles]], or [[Traps]]. Although this may be impossible to hinder if players achieve [[Game Mastery]] or simply play long enough, there are many ways to make this take longer time. [[Initiative]] and [[Contextualized Conversational Responses]] can all make the [[Algorithmic Agents]] function more in relation to the current context in their [[Game Worlds]], while [[Awareness of Surroundings]] and [[Actions Have Diegetically Social Consequences]] forces players to consider what the [[Algorithmic Agents]] can sense. [[Emotional Attachment]], [[Own Agenda]], [[Sense of Self]], and [[Goal-Driven Personal Development]] all show ways of how to prolong the time until the [[Algorithmic Agents]] are no longer seen as [[Agents]]. For games aiming at [[Replayability]], [[Open Destiny]] can also be required since otherwise overarching patterns for the [[Algorithmic Agents]] may be found and their apparent agency might lessen. Many of these solutions require the development of AI systems and require extensive testing to ensure their functionality is what is intended. A complementary approach to this creating [[Unpredictable Behavior]] through the use of [[Randomness]] or [[Ambiguous Responses]] (the latter famously used for the same reason in the computer program ELIZA<ref name="ELIZA"/>).
+
However, players may not perceived [[Enemies]], [[Companions]], or [[NPCs]] as [[Agents]] if their behavior is too predictable<ref name="Lankoski2007"/> even if the entities diegetically convey that relation and behavior. Instead, players may reduce them to [[Converters]], [[Containers]], [[Obstacles]], [[Self-Service Kiosks]], or [[Traps]]. Although this may be impossible to hinder if players achieve [[Gameplay Mastery]] or simply play long enough, there are many ways to make this take longer time. [[Initiative]], [[Context Dependent Reactions]], and [[Contextualized Conversational Responses]] can all make the [[Algorithmic Agents]] function more in relation to the current context in their [[Game Worlds]], while [[Awareness of Surroundings]] and [[Actions Have Diegetically Social Consequences]] forces players to consider what the [[Algorithmic Agents]] can sense. [[Memory of Important Events]], [[Own Agenda]], [[Sense of Self]], and [[Goal-Driven Personal Development]] all show ways of how to prolong the time until the [[Algorithmic Agents]] are no longer seen as [[Agents]] (often this include an application of [[Enforced Agent Behavior]] in comparison to other similar [[Agents]]). Since it is algorithms that create these behaviors, [[Algorithmic Agents]] both instantiate these patterns and are affected by them.  
  
A less common use of [[Algorithmic Agents]] is to interweave it with a player's control of an [[Avatar]] or [[Character]]. Some games, e.g. the [[Super Mario series]] and [[Fable II]], use them when players' have not provided input for extended periods of time to indicate diegetically that the [[Avatar]] or [[Character]] is becoming bored but return control to the players as soon as input is provided. Other games, e.g. the [[Lego Star Wars Series]] and the [[Left 4 Dead Series]], have them as backup [[AI Players]] that can step in when [[Game Pauses]] are desired, and by doing so enable [[Drop-In/Drop-Out]] gameplay. Concurrent shared control between human players and [[Algorithmic Agents]] has been discussed in research<ref name="Eladhari"/> for affecting the behavior [[Characters]] in general, and exists in FPS games through ''aimbots''<ref name="Aimbot"/>  
+
For games aiming at [[Replayability]], [[Open Destiny]] can also be required since otherwise overarching patterns for the [[Algorithmic Agents]] may be found and their apparent agency might lessen. Both these may be created through the use of giving the [[Algorithmic Agents]] the ability to have [[Goal-Driven Personal Development]]. Many of these solutions require the development of AI systems and require extensive testing to ensure their functionality is what is intended. A complementary approach to this creating [[Unpredictable Behavior]] through the use of [[Randomness]] or significantly complex rules controlling the behavior. [[Ambiguous Responses]] can also be used to make the illusion of intentionality last longer since players have more possibilities to read intentionality into the actions (an approach made famously by the computer program [[ELIZA]]<ref name="ELIZA"/>).
 +
 
 +
A less common use of [[Algorithmic Agents]] is to interweave it with a player's control of an [[Avatar]] or [[Character]]. Some games, e.g. the [[Super Mario series]] and [[Fable II]], use them when players' have not provided input for extended periods of time to indicate diegetically that the [[Avatar]] or [[Character]] is becoming bored but return control to the players as soon as input is provided. Other games, e.g. the [[Lego Star Wars series]] and the [[Left 4 Dead series]], have them as backup [[AI Players]] that can step in when [[Game Pauses]] are desired, and by doing so enable [[Drop-In/Drop-Out]] gameplay. Concurrent shared control between human players and [[Algorithmic Agents]] has been discussed in research<ref name="Eladhari"/> for affecting the behavior [[Characters]] in general, and exists in FPS games through ''aimbots''<ref name="Aimbot"/>  
  
 
=== Diegetic Aspects ===
 
=== Diegetic Aspects ===
Line 23: Line 25:
  
 
=== Interface Aspects ===
 
=== Interface Aspects ===
In [[Meta Games]] focused upon creating [[Algorithmic Agents]] it is necessary to include interfaces for this, often including functionality to ensure that the algorithms are properly expressed and the possibility to test them. In games with [[Companions]] controlled by [[Algorithmic Agents]] it may be necessary to provide specific interface components so that players can modifying their behavior, something which exist for example in the [[Fallout Series]].
+
In [[Meta Games]] focused upon creating [[Algorithmic Agents]] it is necessary to include interfaces for this, often including functionality to ensure that the algorithms are properly expressed and the possibility to test them. In games with [[Companions]] controlled by [[Algorithmic Agents]] it may be necessary to provide specific interface components so that players can modifying their behavior, something which exist for example in the [[Fallout series]].
  
=== Narrative Aspects ===
+
=== Narration Aspects ===
[[Algorithmic Agents]] are necessary if players are to be able to interact with [[NPCs]] that exist in a [[Narration Structure]], and in this case it is important that they maintain the game's [[Diegetic Consistency]] if one aims at evoking an [[Emotional Attachment]] to the unfolding storyline.
+
[[Algorithmic Agents]] are necessary if players are to be able to interact with [[NPCs]] that exist in [[Narration Structures]], and in this case it is important that they maintain the game's [[Diegetic Consistency]] if one aims at evoking an [[Emotional Engrossment]] to the unfolding storyline. Providing [[Actions Have Diegetically Social Consequences]] to [[Algorithmic Agents]] allow them to show [[Emotional Attachment]] to what happens in the game world.
 +
 
 +
Since they do need to be designed, [[Algorithmic Agents]] are [[Predetermined Story Structures]] if any type of narration is taking place in a game.
  
 
== Consequences ==
 
== Consequences ==
[[Algorithmic Agents]] are powerful tools that can make sure a game includes [[Conflicts]], since game designer can create them with [[Preventing Goals]] to the players' goals and be sure that these will be acted upon (which is not always the case when given to players). However, [[Algorithmic Agents]] can just as well used to support [[Cooperation]] through [[Companions]]. Since [[Algorithmic Agents]] can be used to create [[AI Players]], it makes it possible to make [[Multiplayer Games]] into [[Single-Player Games]] and thereby providing players with a way to have a [[Smooth Learning Curves|Smooth Learning Curve]] at the expense of [[Social Interaction]]. Another effect of this is to allow [[Game Pauses]] and [[Drop-In/Drop-Out]] gameplay styles in [[Multiplayer Games]]. Of course, [[Multiplayer Games]] can be turned into [[Zero-Player Games]] by the same approach, although this is typically only done when players of a [[Meta Games|Meta Game]] can create the [[Algorithmic Agents]]. Regardless, since most [[Agents]] in games interact with the game through actions in a [[Game Worlds|Game World]], [[Algorithmic Agents]] is a very common component when designing [[Game Worlds]].
+
[[Algorithmic Agents]] are powerful tools that can make sure a game includes [[Conflicts]], since game designer can create them with [[Preventing Goals]] to the players' goals and be sure that these will be acted upon (which is not always the case when given to players). However, [[Algorithmic Agents]] can just as well used to support [[Cooperation]] through [[Companions]]. Regardless, the [[Algorithmic Agents]] can provide both [[Complex Gameplay|Complex]] and [[Challenging Gameplay]] and this may be incorporated into [[Handicap Systems]] and [[Difficulty Levels]]. A side effect of this is that the [[Algorithmic Agents]] can be used to modulate how much [[Tactical Planning]] a game requires, and how difficult this is. Regardless, since most [[Agents]] in games interact with the game through actions in a [[Game Worlds|Game World]], [[Algorithmic Agents]] is a very common component when designing [[Game Worlds]].
  
When made by the game designers or developers, [[Algorithmic Agents]] provides [[Enforced Agent Behavior]] and can offer ways of achieving [[Predictable Consequences]] on more general levels of a game. In contrast, player-generated algorithms offers players some [[Creative Control]] and may be used to support [[Mules]]. This also typically encourages [[Stimulated Planning]] and [[Strategic Planning]] since creating the algorithms requires an understanding of the game system regardless of a specific game state. Even if the [[Algorithmic Agents] typically are abstract construction, they might be considered in this case be viewed as [[Player Created Game Elements]], especially when the creation is linked to [[Characters]] or [[Avatars]] that would otherwise not be present in the game. When the creation of the algorithms are part of the set-up phase, [[Algorithmic Agents]] can create [[Meta Games]] where the inner game has [[No Player Influence]] and might work against players having an [[Exaggerated Perception of Influence]]. This allows programming games such as [[Crobots]] and [[P-Robots]] to let players have [[Indirect Conflicts]] with each other in the sense that they try to create [[Algorithmic Agents]] that are in [[Conflicts]] with each other (due to [[Preventing Goals]] such as [[Elimination]]) but that these players themselves do not perform confrontational actions. When possible during gameplay, the creation of [[Algorithmic Agents]] by players is an example of [[Player Created Game Elements]] and player-controlled [[Game Element Insertion]].
+
Since [[Algorithmic Agents]] can be used to create [[AI Players]], it makes it possible to make [[Multiplayer Games]] into [[Single-Player Games]] and thereby providing players with a way to have a [[Smooth Learning Curves|Smooth Learning Curve]] at the expense of [[Social Interaction]]. Another effect of this is to allow [[Game Pauses]] and [[Drop-In/Drop-Out]] gameplay styles in [[Multiplayer Games]]. Of course, [[Multiplayer Games]] can be turned into [[Zero-Player Games]] by the same approach, although this is typically only done for supporting [[No Direct Player Influence]] through letting players of a [[Meta Games|Meta Game]] create the [[Algorithmic Agents]]. When the use of [[Algorithmic Agents]] are temporary, i.e. they replace players for limited periods of time, this provides support for [[Interruptibility]].
 +
 
 +
When made by the game designers or developers, [[Algorithmic Agents]] provides [[Enforced Agent Behavior]] and can offer ways of achieving [[Predictable Consequences]] on more general levels of a game. Their behaviors may however take time to understand and until this is achieved they may instead give [[Limited Planning Ability]]. In contrast, player-generated algorithms offers players some [[Creative Control]] and may be used to support [[Mules]]. This also typically encourages [[Stimulated Planning]] and [[Strategic Planning]] since creating the algorithms requires an understanding of the game system regardless of a specific game state. Even if the [[Algorithmic Agents]] typically are abstract construction, they might be considered in this case be viewed as [[Player Created Game Elements]], especially when the creation is linked to [[Characters]] or [[Avatars]] that would otherwise not be present in the game. When the creation of the algorithms are part of the set-up phase, [[Algorithmic Agents]] can create [[Meta Games]] where the inner game has [[No Direct Player Influence]] and might work against players having an [[Exaggerated Perception of Influence]]. This allows programming games such as [[Crobots]] and [[P-Robots]] to let players have [[Indirect Conflicts]] with each other in the sense that they try to create [[Algorithmic Agents]] that are in [[Conflicts]] with each other (due to [[Preventing Goals]] such as [[Eliminate]]) but that these players themselves do not perform confrontational actions. When possible during gameplay, the creation of [[Algorithmic Agents]] by players is an example of [[Player Created Game Elements]] and player-controlled [[Game Element Insertion]].
  
 
The combination of players and [[Algorithmic Agents]] influencing the actions of the same [[Characters]] or [[Avatars]] can lead to a conflict over the amount of agency players have, and for this case the pattern can work against [[Empowerment]] and [[Exaggerated Perception of Influence]].
 
The combination of players and [[Algorithmic Agents]] influencing the actions of the same [[Characters]] or [[Avatars]] can lead to a conflict over the amount of agency players have, and for this case the pattern can work against [[Empowerment]] and [[Exaggerated Perception of Influence]].
  
== Relations ==
+
While [[Algorithmic Agents]] often are realized through code running on computers and thereby set a bound on [[Ubiquitous Gameplay]] to require computers, this is not always the case. [[Race for the Galaxy]] and [[Power Grid]] have expansion with [[Algorithmic Agents]] contained on [[Tiles]].
  
can be created with players (examples include various humans characters in the [[Fallout Series]] and animals in [[NetHack]] and [[Fable II]]), either through having [[Mutual Goals]] or having individual [[Continuous Goals| Continuous]] and [[Supporting Goals]] in relation to the players' goals. [[Enemies]] and [[Companions]] may both be [[NPCs]] but these may also have their [[Own Agendas]] independent of player goals. [[Agents]] may of course also change what role they have during gameplay, either due to [[Narration Structures]] which may in turn cause [[Surprises]] or as effects of players' actions through use of the pattern [[Actions Have Social Consequences]]. One example of this can be found in the [[Fallout series]], where players' [[Companions]] may abandon or attack players who start behaving differently than when they started to cooperate.
+
== Relations ==
 
+
=== Can Instantiate ===
[[Initiative]]  
+
[[Actions Have Diegetically Social Consequences]], [[Agents]], [[Challenging Gameplay]], [[Complex Gameplay]], [[Creative Control]], [[Enemies]], [[Enforced Agent Behavior]], [[Game Element Insertion]],
[[Contextualized Conversational Responses]]  
+
[[Interruptibility]],
[[Awareness of Surroundings]]
+
[[Limited Planning Ability]],  
[[Actions Have Diegetically Social Consequences]]  
+
[[Memory of Important Events]],  
[[Emotional Attachment]],  
+
[[Meta Games]], [[Mules]],
 +
[[Narration Structures]],
 +
[[No Direct Player Influence]],  
 
[[Own Agenda]],  
 
[[Own Agenda]],  
 +
[[Player Created Game Elements]],
 +
[[Predetermined Story Structures]],
 +
[[Predictable Consequences]],
 
[[Sense of Self]],  
 
[[Sense of Self]],  
[[Goal-Driven Personal Development]]
+
[[Tactical Planning]]
[[Ambiguous Responses]]
+
  
[[Unpredictable Behavior]]
+
==== with [[Actions Have Diegetically Social Consequences]] ====
 
+
[[Emotional Attachment]]
=== Can Instantiate ===
+
[[Agents]]
+
[[AI Players]]
+
[[Companions]]
+
[[Creative Control]]
+
[[Enemies]]
+
[[Enforced Agent Behavior]]
+
[[Game Element Insertion]]
+
[[Meta Games]]
+
[[Mules]]
+
[[No Player Influence]]
+
[[Player Created Game Elements]]
+
[[Predictable Consequences]]
+
 
+
==== with [[AI Players]] and [[Multiplayer Games]] ====
+
[[Drop-In/Drop-Out]]
+
[[Game Pauses]]
+
[[Single-Player Games]]
+
[[Smooth Learning Curves]]
+
[[Zero-Player Games]]
+
  
 
==== with [[Companions]] ====
 
==== with [[Companions]] ====
[[Cooperation]]
+
[[Cooperation]], [[Teams]]
[[Teams]]
+
  
 
==== with [[Creative Control]] ====
 
==== with [[Creative Control]] ====
[[Stimulated Planning]]  
+
[[Stimulated Planning]], [[Strategic Planning]]
[[Strategic Planning]]
+
  
==== with ====
+
==== with [[Creative Control]] and [[Meta Games]] ====
 +
[[No Direct Player Influence]]
 +
 
 +
==== with [[Goal-Driven Personal Development]] ====
 +
[[Open Destiny]], [[Replayability]]
 +
 
 +
==== with [[Mutual Goals]] or [[Continuous Goals]] and [[Supporting Goals]] ====
 +
[[Companions]]
 +
 
 +
==== with [[Own Agenda]] ====
 +
[[AI Players]]
  
 
==== with [[Preventing Goals]] ====
 
==== with [[Preventing Goals]] ====
Line 89: Line 87:
  
 
=== Can Modulate ===
 
=== Can Modulate ===
[[Avatars]]
+
[[Avatars]], [[Characters]], [[Game Worlds]], [[NPCs]], [[Stimulated Planning]],
[[Characters]]
+
[[Tactical Planning]]
[[Game Worlds]]
+
[[Narration Structure]]
+
[[NPCs]]
+
  
 
=== Can Be Instantiated By ===
 
=== Can Be Instantiated By ===
 +
[[Action Programming]], Rules
  
 
=== Can Be Modulated By ===
 
=== Can Be Modulated By ===
 +
[[Actions Have Diegetically Social Consequences]], [[Ambiguous Responses]], [[Awareness of Surroundings]],
 +
[[Contextualized Conversational Responses]],
 +
[[Context Dependent Reactions]],
 +
[[Difficulty Levels]],
 +
[[Enforced Agent Behavior]], [[Goal-Driven Personal Development]],
 +
[[Handicap Systems]],
 +
[[Initiative]],
 +
[[Memory of Important Events]],
 +
[[Open Destiny]], [[Own Agenda]], [[Randomness]], [[Sense of Self]],
 +
[[Thematic Consistency]],
 +
[[Unpredictable Behavior]]
  
 
=== Possible Closure Effects ===
 
=== Possible Closure Effects ===
Stopping to consider [[Algorithmic Agents]] as [[Agents]] may cause the removal of [[Emotional Attachment]]
+
Stopping to consider [[Algorithmic Agents]] as [[Agents]] may cause the removal of [[Emotional Engrossment]]
  
 
=== Potentially Conflicting With ===
 
=== Potentially Conflicting With ===
[[Empowerment]], [[Exaggerated Perception of Influence]]
+
[[Empowerment]],  
 +
[[Exaggerated Perception of Influence]],
 +
[[Ubiquitous Gameplay]]
  
 
==== with [[Multiplayer Games]] ====
 
==== with [[Multiplayer Games]] ====
 
[[Social Interaction]]
 
[[Social Interaction]]
  
==== with [[Game Mastery]] or without [[Diegetic Consistency]] ====
+
==== with [[Gameplay Mastery]] or without [[Diegetic Consistency]] ====
[[Emotional Attachment]]
+
[[Emotional Engrossment]]
  
 
==== without [[Open Destiny]] ====
 
==== without [[Open Destiny]] ====
Line 115: Line 124:
  
 
== History ==
 
== History ==
New pattern created in this wiki.
+
New pattern created for this wiki by [[User:Staffan Björk|Staffan Björk]].
  
 
== References ==
 
== References ==

Latest revision as of 12:27, 12 August 2016

Algorithms created to provide what appears to be intentional behavior.

Many games worlds contains more entities such as animals, people, monsters, or robots that have behaviors that are not decided by players. To make this possible these entities are instead have more or less complex rules, algorithms, that decide which actions they should take. The simplest only contain a couple of rules taking not consideration to what the other players or entities have done while the most complex have processes for learning under which contexts one should perform what actions.

Examples

Already most of the earliest computer games, including Nimatron, OXO (a computerized version of Tic-Tac-Toe), Asteroids, Space Invaders, and the Bomberman series made use of algorithms to control opponents to the players. It is still used in many games, e.g. in the Assassin's Creed, God of War, Need for Speed, Doom, Quake, and Civilization series. In some of these cases (i.e. Tic-Tac-Toe, Need for Speed, Civilization, and, somewhat paradoxically, multiplayer versions of Doom, Quake), the Algorithmic Agents replaces human opponents while in other cases being part of the game world. The Left 4 Dead series uses Algorithmic Agents not only for the infected that attack the players' characters, but also to control other player characters if there are not four people available. In all these case the Algorithmic Agents are also used to provide opponents but in games such as Fable II, Fallout series, NetHack, and Torchlight the Algorithmic Agents also control animals that accompany the players' characters.

Algorithmic Agents are also used to provide a basis of behaviors to agents in a game which players can then modify, as for example in the Lemmings and Sims series, or indirectly control, of which the Black & White series is an example. Games such as RoboRally and Space Alert, where players have to choose several actions together before they are enacted, can also be seen as examples of games that use Algorithmic Agents even if players create the algorithms/instructions and the outcomes are fixed unless some external factor is changed (e.g. the position of the other robots in RoboRally. MUDs[1] typically give experienced players privileges to modify the game environment, and for those supporting more generic coding such as LPMUDs[2] this can be in the form of independent entities capable of initiative and adaptive responses. In contrast, programming games such as Crobots and P-Robots challenge players to create better algorithms than other players before gameplay begins.

Using the pattern

The use of Algorithmic Agents by necessity require game designer to consider what Agents should exist in the game and what algorithms control their behavior. Which algorithms to use is not only a question of creating them, but also considering who can create them. The most common case is that they are created in advance by game designers but another possibility is to allow players to create the algorithms. The simplest form of this is Action Programming (as for example in RoboRally) and can be seen more as command sets in that they do not take input from the environment while being executed. Examples of games supporting actual coding include both pure programming games, such as Crobots and P-Robots, as well as MUDs, which use it to provide user-created content.

The types of Agents available depends primarily on how they relate to players and their goals. Enemies have Preventing Goals compare to the players' goals and are typically Units or Boss Monsters but Algorithmic Agents can also be used to control Avatars or Characters, thereby creating AI Players as long as they at least seem to have their Own Agendas. The latter can also be used to create Companions so Teams can be created with players (examples include various humans characters in the Fallout series and animals in NetHack and Fable II), either through having Mutual Goals or having individual Continuous and Supporting Goals in relation to the players' goals. Enemies and Companions may both be NPCs but these may also have their Own Agendas independent of player goals. Agents may of course also change what role they have during gameplay, either due to Predetermined Story Structures which may in turn cause Surprises or as effects of players' actions through use of the pattern Actions Have Diegetically Social Consequences. One example of this can be found in the Fallout series, where players' Companions may abandon or attack players who start behaving differently than when they started to cooperate. What constitutes relevant behavior for all these types of Algorithmic Agents depend on what ambitions for Thematic Consistency exist.

However, players may not perceived Enemies, Companions, or NPCs as Agents if their behavior is too predictable[3] even if the entities diegetically convey that relation and behavior. Instead, players may reduce them to Converters, Containers, Obstacles, Self-Service Kiosks, or Traps. Although this may be impossible to hinder if players achieve Gameplay Mastery or simply play long enough, there are many ways to make this take longer time. Initiative, Context Dependent Reactions, and Contextualized Conversational Responses can all make the Algorithmic Agents function more in relation to the current context in their Game Worlds, while Awareness of Surroundings and Actions Have Diegetically Social Consequences forces players to consider what the Algorithmic Agents can sense. Memory of Important Events, Own Agenda, Sense of Self, and Goal-Driven Personal Development all show ways of how to prolong the time until the Algorithmic Agents are no longer seen as Agents (often this include an application of Enforced Agent Behavior in comparison to other similar Agents). Since it is algorithms that create these behaviors, Algorithmic Agents both instantiate these patterns and are affected by them.

For games aiming at Replayability, Open Destiny can also be required since otherwise overarching patterns for the Algorithmic Agents may be found and their apparent agency might lessen. Both these may be created through the use of giving the Algorithmic Agents the ability to have Goal-Driven Personal Development. Many of these solutions require the development of AI systems and require extensive testing to ensure their functionality is what is intended. A complementary approach to this creating Unpredictable Behavior through the use of Randomness or significantly complex rules controlling the behavior. Ambiguous Responses can also be used to make the illusion of intentionality last longer since players have more possibilities to read intentionality into the actions (an approach made famously by the computer program ELIZA[4]).

A less common use of Algorithmic Agents is to interweave it with a player's control of an Avatar or Character. Some games, e.g. the Super Mario series and Fable II, use them when players' have not provided input for extended periods of time to indicate diegetically that the Avatar or Character is becoming bored but return control to the players as soon as input is provided. Other games, e.g. the Lego Star Wars series and the Left 4 Dead series, have them as backup AI Players that can step in when Game Pauses are desired, and by doing so enable Drop-In/Drop-Out gameplay. Concurrent shared control between human players and Algorithmic Agents has been discussed in research[5] for affecting the behavior Characters in general, and exists in FPS games through aimbots[6]

Diegetic Aspects

Algorithmic Agents do not themselves exist in a Game World but since they are typically tied closely to specific Avatars, Companions, or Enemies, it is necessary to consider both how the Algorithmic Agents should be able to observe what happens in the Game World and how they can act in it.

Interface Aspects

In Meta Games focused upon creating Algorithmic Agents it is necessary to include interfaces for this, often including functionality to ensure that the algorithms are properly expressed and the possibility to test them. In games with Companions controlled by Algorithmic Agents it may be necessary to provide specific interface components so that players can modifying their behavior, something which exist for example in the Fallout series.

Narration Aspects

Algorithmic Agents are necessary if players are to be able to interact with NPCs that exist in Narration Structures, and in this case it is important that they maintain the game's Diegetic Consistency if one aims at evoking an Emotional Engrossment to the unfolding storyline. Providing Actions Have Diegetically Social Consequences to Algorithmic Agents allow them to show Emotional Attachment to what happens in the game world.

Since they do need to be designed, Algorithmic Agents are Predetermined Story Structures if any type of narration is taking place in a game.

Consequences

Algorithmic Agents are powerful tools that can make sure a game includes Conflicts, since game designer can create them with Preventing Goals to the players' goals and be sure that these will be acted upon (which is not always the case when given to players). However, Algorithmic Agents can just as well used to support Cooperation through Companions. Regardless, the Algorithmic Agents can provide both Complex and Challenging Gameplay and this may be incorporated into Handicap Systems and Difficulty Levels. A side effect of this is that the Algorithmic Agents can be used to modulate how much Tactical Planning a game requires, and how difficult this is. Regardless, since most Agents in games interact with the game through actions in a Game World, Algorithmic Agents is a very common component when designing Game Worlds.

Since Algorithmic Agents can be used to create AI Players, it makes it possible to make Multiplayer Games into Single-Player Games and thereby providing players with a way to have a Smooth Learning Curve at the expense of Social Interaction. Another effect of this is to allow Game Pauses and Drop-In/Drop-Out gameplay styles in Multiplayer Games. Of course, Multiplayer Games can be turned into Zero-Player Games by the same approach, although this is typically only done for supporting No Direct Player Influence through letting players of a Meta Game create the Algorithmic Agents. When the use of Algorithmic Agents are temporary, i.e. they replace players for limited periods of time, this provides support for Interruptibility.

When made by the game designers or developers, Algorithmic Agents provides Enforced Agent Behavior and can offer ways of achieving Predictable Consequences on more general levels of a game. Their behaviors may however take time to understand and until this is achieved they may instead give Limited Planning Ability. In contrast, player-generated algorithms offers players some Creative Control and may be used to support Mules. This also typically encourages Stimulated Planning and Strategic Planning since creating the algorithms requires an understanding of the game system regardless of a specific game state. Even if the Algorithmic Agents typically are abstract construction, they might be considered in this case be viewed as Player Created Game Elements, especially when the creation is linked to Characters or Avatars that would otherwise not be present in the game. When the creation of the algorithms are part of the set-up phase, Algorithmic Agents can create Meta Games where the inner game has No Direct Player Influence and might work against players having an Exaggerated Perception of Influence. This allows programming games such as Crobots and P-Robots to let players have Indirect Conflicts with each other in the sense that they try to create Algorithmic Agents that are in Conflicts with each other (due to Preventing Goals such as Eliminate) but that these players themselves do not perform confrontational actions. When possible during gameplay, the creation of Algorithmic Agents by players is an example of Player Created Game Elements and player-controlled Game Element Insertion.

The combination of players and Algorithmic Agents influencing the actions of the same Characters or Avatars can lead to a conflict over the amount of agency players have, and for this case the pattern can work against Empowerment and Exaggerated Perception of Influence.

While Algorithmic Agents often are realized through code running on computers and thereby set a bound on Ubiquitous Gameplay to require computers, this is not always the case. Race for the Galaxy and Power Grid have expansion with Algorithmic Agents contained on Tiles.

Relations

Can Instantiate

Actions Have Diegetically Social Consequences, Agents, Challenging Gameplay, Complex Gameplay, Creative Control, Enemies, Enforced Agent Behavior, Game Element Insertion, Interruptibility, Limited Planning Ability, Memory of Important Events, Meta Games, Mules, Narration Structures, No Direct Player Influence, Own Agenda, Player Created Game Elements, Predetermined Story Structures, Predictable Consequences, Sense of Self, Tactical Planning

with Actions Have Diegetically Social Consequences

Emotional Attachment

with Companions

Cooperation, Teams

with Creative Control

Stimulated Planning, Strategic Planning

with Creative Control and Meta Games

No Direct Player Influence

with Goal-Driven Personal Development

Open Destiny, Replayability

with Mutual Goals or Continuous Goals and Supporting Goals

Companions

with Own Agenda

AI Players

with Preventing Goals

Conflicts

with Preventing Goals and Creative Control

Indirect Conflicts

Can Modulate

Avatars, Characters, Game Worlds, NPCs, Stimulated Planning, Tactical Planning

Can Be Instantiated By

Action Programming, Rules

Can Be Modulated By

Actions Have Diegetically Social Consequences, Ambiguous Responses, Awareness of Surroundings, Contextualized Conversational Responses, Context Dependent Reactions, Difficulty Levels, Enforced Agent Behavior, Goal-Driven Personal Development, Handicap Systems, Initiative, Memory of Important Events, Open Destiny, Own Agenda, Randomness, Sense of Self, Thematic Consistency, Unpredictable Behavior

Possible Closure Effects

Stopping to consider Algorithmic Agents as Agents may cause the removal of Emotional Engrossment

Potentially Conflicting With

Empowerment, Exaggerated Perception of Influence, Ubiquitous Gameplay

with Multiplayer Games

Social Interaction

with Gameplay Mastery or without Diegetic Consistency

Emotional Engrossment

without Open Destiny

Replayability

History

New pattern created for this wiki by Staffan Björk.

References

  1. Wikipedia entry for MUDs.
  2. Wikipedia entry to LPMUDs.
  3. Lankoski, P. & Björk, S. (2007). Gameplay Design Patterns for Believable Non-Player Characters. DiGRA 2007 Conference.
  4. Wikipedia entry for the ELIZA program.
  5. Eladhari, M. & Lindley, C. A. Player Character Design Facilitating Emotional Depth in MMORPGs. Level Up Conference Proceedings. Utrecht: University of Utrecht, November, 2003.
  6. Wikipedia entry for Aimbots.

Acknowledgments

Karl-Petter Åkesson