3.2 KiB
RTS Mode: Narrative Engine Guide
The RTS Mode now includes a dynamic narrative engine that allows preset creators to build rich, evolving stories that respond to player actions and the changing game state. This guide explains how to use the new narrativeEngine features in your presets.
Core Concepts
The narrative engine is built around three core concepts:
- Zones: These are distinct areas on your map where different types of events can occur. Each zone is linked to a threat table.
- Threat Tables: These are collections of narrative events, categorized by threat level (low, medium, high). The engine uses these tables to select appropriate events based on the current situation.
- Threat Level: This is a property of the game state that determines which events are selected from the threat tables. The threat level can be changed by game events and player actions.
Adding the Narrative Engine to Your Preset
To enable the narrative engine, add a narrativeEngine object to your preset's JSON file. This object should contain two main properties: zones and threatTables.
Defining Zones
The zones property is an array of zone objects. Each zone object should have the following properties:
id: A unique identifier for the zone (e.g., "main_gate").name: A user-friendly name for the zone (e.g., "Main Gate").threatTable: The ID of the threat table to use for this zone (e.g., "gate_threats").
Example:
"zones": [
{ "id": "main_gate", "name": "Main Gate", "threatTable": "gate_threats" },
{ "id": "primate_house", "name": "Primate House", "threatTable": "primate_threats" }
]
Defining Threat Tables
The threatTables property is an object that contains one or more threat table objects. Each threat table object should have the following properties:
low: An array of strings, where each string is a narrative event for a low threat level.medium: An array of strings, where each string is a narrative event for a medium threat level.high: An array of strings, where each string is a narrative event for a high threat level.
Example:
"threatTables": {
"gate_threats": {
"low": [
"A panicked crowd rattles the main gate, their screams echoing.",
"A security guard tries to restore order, but is overwhelmed."
],
"medium": [
"A large animal is ramming the gate, which is starting to buckle under the strain."
],
"high": [
"The main gate is breached, and a horde of panicked people and smaller animals stampedes through."
]
}
}
Content Filtering
The narrative engine supports content filtering for explicit themes. To control the level of violence and sexual content in the narrative, you can use the "Explicit Content" toggle in the RTS Mode settings.
When the toggle is enabled, the engine will request more graphic and intense descriptions from the language model. When disabled, the narrative will be more focused on action and suspense, without the explicit details.
This allows you to create presets that can be enjoyed by a wider audience, while still providing the option for a more intense experience for those who want it.