In the following example, Action Zones will incorporate all elements needed to bring a level to life. We’ll describe the pieces then discuss how three different scenarios can take place in it.
Fig. 4: A top down view of three Action Zones.
From the south, a street passes through Action Zone B, rising up to bridge over the area and exits to other Action Zones. An exposed Power Station sits in the northwest corner. Two buildings line the south side. A small, nondescript shack sits underneath the northern overpass. Below ground is a tunnel providing alternative routes between the four major areas.
Fig. 5: Action Zone B (looking east)
Fig. 6: Action Zone B (looking west)
Fig. 7: Top down view of the tunnel’s location
Fig. 8: A view from underneath the Action Zone
Action Zone B is slightly larger than the suggested scale of 5000×5000 (25 “plates”). This can be acceptable within our tech-budget for a few reasons:
- The area is fairly sparse, with only two major buildings of small size.
- The area is boxed in by façade buildings, occluding it from other Action Zones.
- An elevated street helps break up the long, north-to-south line-of-sight.
Fig. 9: The “plate” count for the Action Zones.
Each Action Zone is a defined space where all the game action takes place. For performance reasons, Action Zones should never be placed immediately next to one another. A Transition Zone connects two Action Zones together. This transition area provides a place for new assets to stream in and others to drop out. This also provides a natural reset point for the player, for checkpoints or simple a lull in action. Transition Zones can therefore be considered Safe Zones – a place where the player can rest without fear of initiating an encounter. Geometry in a Transition Zone should be simple and geared towards occlusion.
Safe Zones are one of many zones used to organically describe areas in an Action Zone. Other zones types are Exploration, Puzzle, Chase, and Combat. A Combat Zone is the bread-and-butter to most games these days. Because of their complexity, they can be broken down into two key sub-areas: the Kill Zone (where life is risked) and the Defense Zone (adjacent to the Kill Zone). Satisfying combat can only exist if the player can recognize these two key areas. (The defense zone has been excluded from the example below.) For more info on all these Zones, refer to Level Design Concepts.
Fig. 10: Action Zones and the Transition Zones connecting them.
Fig. 11: How various Zones can describe the Level.
One of the advantages when using prefabs is providing ways for multiple people to work on the same level at the same time. In Figure 12, Action Zones A, B, C have been separated into prefabs letting a Scripter work on Action Zone C, Audio work on Action Zone A, and Art work on Action Zone B. In Figure 13, each building has been isolated into prefabs as well, allowing four different Artists to work on each building, detailing it with models, decals, and lighting.
Fig. 12: External Prefab files for each Action Zone.
Fig. 13: External Prefab files for each Building.
Another advantage to saving buildings in prefabs is re-usability. In addition to audio, prop, and lighting placement, logic can also be added. Doorway triggers, occlusion, vis-portals, navigation, and spawn locations only have to be added one time. Now all these buildings can be used in several places throughout the game without having to re-describe them from scratch! For more info on Prefabs read the article Prefabs: Mastering Massive Content.
Key areas for various events within the Action Zone are identified with Data Nodes. Examine the Nodes in Figure 15 around the green Shack…
Fig. 14: Node placement overview
Fig. 15: Close-Up of Nodes
In a calm state, AI can randomly pick Idle Nodes to move to. For more controlled movement, connected Patrol Nodes provide a semi-random path for AI to follow. To keep AI within a certain area, it can be assigned a Defend Node. In an alerted state, AI use Alert Nodes to help pick locations to search from. When in combat, a Strategic Node helps the AI find the best place to attack from. A Flee Node is used to guide the AI to an appropriate location, rather than simply running away from a threat. Spawn Nodes are used to bring new AI in to the scene. Lastly, a Scripted Node is a catch-all object to provide any sort of actions none of these previous Nodes provide. All Nodes support animation calls when occupied. Check back for an upcoming post describing Data Nodes in more detail.
Locations and Regions are ways to describe areas in the game through keywords. Keywords help the game systems pick the best place for the requested gameplay.
Locations are the middle man between Data Nodes and Regions. They describe the physical space. Data Nodes become associated to the Location that contains them. When the game asks for to spawn a group of enemies in an alleyway, it searches for the keyword “alley” in all available Regions. If more than one Location is found it picks the best match based on the player’s situation or position. With an “alley” picked, it searches for Data Nodes inside of it to create enemies from.
Locations can be described with its default radius or bound to a volume for hard edged boundaries.
|Locations||Generic Keywords||Cluster Keyword|
|5||building, small, simple, 1st_floor||Hideout|
|7||building, large, complex, 1st_floor||McPawnshop|
|8||building, large, complex, 2nd_floor||McPawnshop|
|9||building, large, complex, 1st_floor||No-Tel_Motel|
|10||building, large, complex, 2nd_floor||No-Tel_Motel|
|11||building, large, complex, 3rd_floor||No-Tel_Motel|
While Locations label a physical place, Regions are a group of Locations that describe a common theme. Regions also help the game pick new locations for missions. When starting a new mission, the game looks outside the current Region to pull the player to a new area.
Like Locations, Regions can be described with its default radius or bound to a volume for hard edged boundaries.
|Region||Generic Keywords||Cluster Keyword|
|1||(alley, park, street)||(Junkie_Gardens)|
|2||underpass, (power_station, building, small, simple, 1st_story)||(Hideout)|
|3||(alley, building, large, complex, 1st_floor, 2nd_floor, 3rd_floor)||Po_Neighborhood, (McPawnshop, No-Tel_Motel)|
|4||(alley, sidewalk, street)||(Skidrow)|
(an entry) = inherited from Locations
As stated above, Keywords help the game find the best game space for an event.
- Regions are groups of Locations sharing a common theme.
- Locations are groups of Data Nodes sharing a common physical space.
- Data Nodes are the individual objects the game uses to interact with the world.
Regions and Locations can have these types of Keywords:
- Generic Keywords – a set list of common Keywords
- Custom Keywords – an option for adding unique Keywords not found in the common list
- Cluster Keywords – a special Keyword to help describe a collection of Locations inside of a Region.
The management of Cluster Keywords are through the Location object.
When Regions are resized, they can automatically update what Locations are within their borders. Cluster Keywords are auto-managed by Location association. Because Regions contain Locations, they can list several Cluster Keywords while Locations and Data Nodes can only have one Cluster Keyword.
When Data Nodes are moved outside of one Location and into another, they get automatically associated to a new Location. Data Nodes only have a special keyword called “Ownership” which helps restrict interactivity.
Fig. 18: How Regions, Locations, and Data Nodes relate to one another.
Controllers manage global information for a group of objects. If no specific data is prescribed in the child objects, they inherit settings from the Controller. For example, a Spawn Node can be turned into a Spawn Controller. It has 5 out of 10 child nodes with their Max Amount set to “3”. It manages them with a global Max Amount of “20”. As the encounter unfolds, only 15 enemies can be created at half of the locations (5 x 3). The remaining locations can create an additional 100 enemies (5 x 20) before it reaches its creation limit.
Like Data Nodes, Controllers start as a point-in-space but can be bound to volume(s) to create areas more complex than the default radius. Whether using a radius or volume, they have the option to auto-link any related objects within its area. Regular manual linking can be used for more precision, removing overlapping conflicts, or far away object inclusion.
Here’s the chain of game logic events that occur when you pick a mission in a game:
Fig. 19: Example game logic for an encounter.