With all the mechanics known, let’s show how we can have three different scenarios take place within the same Action Zone.
- Slums District
- A highway overpass
- A couple multi-story interiors
- A subterranean hideout
- An ill-tempered power station
- Faction A occupies one of the interiors and the basement hideout
- Faction B is invading the area from the north
- The damaged Power Station randomly arcs electricity
- Being a populated area, some random loot can be found
Desired Gameplay Options
- Where, when, and how characters appear and their frequency.
- Setting Maximum limits for total spawned and total active at any one time
- Event switches for enabling / disabling spawning
- Randomize, semi-randomize, and specific spawning locations
- Action Zone re-use (by changing a few variables)
Populating the Scenario
The Navigation Volume’s preference (which manages NPC desire to be in general areas) is used to help spawn new NPCs. The default modifier for spawning is “only occluded” (don’t appear in plain sight). When NPCs are spawned, their default state is Idle. Idle states naturally seek available Idle Nodes.
So when entering a new Action Zone, population is created “around the corner”. NPCs grab available Idle Nodes (window browse, sit on bench, lean against wall, converse, etc.) to make the Action Zone seem alive.
With this in mind, Navigation Volumes can be used in conjunction with Spawn Controllers to create Event-specific NPCs (Faction AI, Bounty AI, etc.). No Spawn Nodes are needed. If a specific location is needed, spawn nodes can be used to provide an exact point. They can also be used with “ownership” to restrict usage to a specific character (or type of character).
There’s no need for “chair” spawn nodes. A chair can be Idle Node (with a chair model associated to it). When NPCs are spawned they move to available chairs to idle. It’s important to remember data nodes have radius that helps pick an appropriate node that’s not too far or too close to the player or NPC. Some data nodes also have an arrival radius which doesn’t require the NPC to be exactly at the origin point. This can also allow multiple NPCs to use one data node.
Scenario 1 – “Smash n’ Grab”
Showcase initial gameplay…
- Infiltrate Faction A’s underground hideout in the Shake.
- If you have Informant info, you can bypass some combat by sneaking through the Tunnels
- If you don’t, you have to explore the area or fight through the guarded parameter
- Another group of Faction A might be in Building A or B, affecting combat and routes.
- Once inside, steal the Super Swank Golden G-String
- Escape through the front door to meet an escape ship on the roof for Evac
- Avoid Faction B at all times.
Scenario 2 – “Return for Takedown”
Come back to the Action Zone and see how things have changed…
- Return later to find and capture Faction B’s leader
- Flush out Faction B members from the Shack to see which Building they run to
- …by overloading their energy source at the Power Station…
- Find the best way to enter the correct Building
- …by pursuing Faction B guards as they enter…
- Capture Faction B leader
- Escape via Highway, avoiding Faction A & B
Scenario 3 – “Foxhunt”
Spotlights a chase through multiple Action Zones…
- Start in Action Zone A
- Pick an entry to Action Zone B
- Pick alternative route in Action Zone B to prevent escape
- Pick an entry to Action Zone C
Using the previously mentioned Population Volumes and Data Nodes, scripting a Chase becomes very easy. The target can be is told to path to a destination. That destination can be a specific spot or a semi-random spot by picking a Flee Node at a certain radius from the target’s starting point.
Because the target will pick the path of least resistance (The lowest cost Population Volume), he’ll stick to the main avenues. The player on the other hand can pick alternate routes to catch up. Data Nodes can be used to create a specific route if the Population Volumes offer too much variety.
For more details on making great levels, read PART 3: Level Production.