Maskerade: AIs

For each one of the enemies that can be found in the game, I was charged with designing their behaviour and document how their systems worked. This can be seen in the following link:

During my design of the enemies, I had to create another 3 documents to describe them to the diferents departments of the project.

General Behaviour

This is the first document I created and it described at a design level how the AIs should work. In particular, with this document I designed the detection system for the stealth encounters and the differents states (or alarm levels) the enemies will transition during this encounters.

We wanted the AIs to have a complex and realistic detection system that taked into account numerous inputs from the players action and position, and would reflect on a «detection value» that would define the enemy behaviour. These were:

  • Distance: The closer the player is to an enemy, higher is the detection value.
  • Angle: If the player is directly in front of the enemy, the detection value is high. But if the player is in the edges of the range of view of the enemy, the detection value is low.
  • Player’s movement: The movement the player use create various kinds of stimuli that can be detected by the enemies. They can be divided in two types: visual and auditory. That way, the AIs can react to a lot of various situation: the player walking in front of them, running without being seen, or crouched without moving and being seen.
  • Percentage of the player’s body seen: With a system we called «Three point system detection», we can know of much of the player’s body an enemy is seeing, and that reflects on the detection value. Seeing only one point (20% of the player’s body) affects the detection value only slightly.

For the states of the AIs, five alerts levels were defined, along with how the enemies would transition between them:

  • Normal (0): The base state of the enemy when the player is undetected.
  • Aware (1): Upong the enemy detecting the player for the first time, it stops its activity.
  • Looking (2): Know sure of the player presence, the enemy start to search for the player by moving and scouting a room.
  • Chasing (3): When the enemy find the player, it start running after them anywhere they go, trying to capture the player.
  • Returning (4): If the enemy lose track of the player during the looking or chasing state, it will return to its previous activity after some time.

Finally, I listed all the variables that are requiered to make all the defined above work. This was done aiming for the design and the programming teams to comunicate about the AIs using common terms easily understandable.

This is the document discribing the general behaviour of the enemies:

Programming oriented documentation

After making the previous document, I was requested by the programming team to create and easier to read document for them, going in further details with some of the systems. For example, there was defined the equation that calculated the detection value based on distance and time elapsed:

f(d,t) = d-d*{\frac{d}{d_{max}}}

Where:

  • d = distance enemy – player.
  • dmax = maximum distance of the enemies vision cone.
  • t = elapsed time detecting the player.

This is the document:

Types of enemies

Finally, I created another document where I defined the specific behaviour of the various enemies that can be found in the game. This is because there is three enemies in Maskerade that behave diferently: the basic one, the Bloodhound and the Clients.

All of them have a diferent visual aspect, narrative implication and player gameplay response. This definition helped to later create the encounters, so I explain more about them in the portfolio’s page dedicated to the encounters.

This is the documentation:

Blog de WordPress.com.

Diseña un sitio como este con WordPress.com
Comenzar