The Age — Civilisations and Factions
The Age is the civilisation and faction simulation layer of the Living World. It models groups of actors — factions — that grow settlements, expand territory, develop diplomatic relations, wage war, and trade based on resource availability and player actions. Games connected to The Age gain access to a political and demographic layer that evolves over time without developer-written scripting.
Factions
A faction is defined by a FactionDefinition asset:
{ "id": "ironwarden_guild", "displayName": "Ironwarden Guild", "traits": ["Militaristic", "Mercantile"], "startingZones": ["zone_eastern_mines"], "startingPopulation": 350, "populationGrowthRate": 0.03, "tradeRouteCapacity": 4, "militaryStrengthBase": 120}Faction traits are the primary personality drivers. Each trait enables specific behaviour patterns and modifies how the faction responds to simulation events:
| Trait | Behaviour |
|---|---|
Expansionist | Aggressively settles adjacent zones when population exceeds threshold |
Mercantile | Prioritises trade routes over military; diplomatic stance shifts toward neighbours with resources |
Militaristic | High base military strength; low provocation threshold for declaring war |
Isolationist | Avoids trade and expansion; defends aggressively when territory is encroached |
Nomadic | No permanent settlements; high migration rate; establishes temporary camps |
A faction can have multiple traits. Expansionist + Militaristic produces a faction that conquers aggressively; Expansionist + Mercantile produces one that colonises via trade.
Settlements
Settlements are founded when a faction’s population in a zone exceeds a configurable threshold. They grow through five tiers:
| Tier | Population threshold | Description |
|---|---|---|
| Camp | 50 | Temporary — Nomadic factions only |
| Hamlet | 100 | First permanent settlement, provides a small defensive bonus |
| Village | 300 | Trade routes become available |
| Town | 800 | Military garrison, can project influence to adjacent zones |
| City | 2000 | Regional capital, drives faction policy decisions |
Settlement tier changes are recorded by The Chronicle. You can use Chronicle events to trigger quests (“A new city has been founded in the eastern valley”) or update in-game maps.
Diplomatic relations
Diplomatic relations between factions are stored as a stance on a spectrum from Allied to AtWar. The stance changes based on:
- Trade route activity (increases toward
Friendly) - Territory encroachment (reduces toward
Hostile) - War declarations (transitions to
AtWar) - Player actions attributed to a faction via The Echo
Query the current stance:
var diplomacy = Services.Get<DiplomaticRelationsService>();
DiplomaticStance stance = diplomacy.GetStance(factionA: "ironwarden_guild", factionB: "river_commune");
// Stance: Allied | Friendly | Neutral | Cold | Hostile | AtWarLogger.Info($"Ironwarden–RiverCommune stance: {stance}");Use the stance to drive NPC dialogue and quest logic:
string dialogueKey = stance switch{ DiplomaticStance.Allied => "npc_guard_ironwarden_allied", DiplomaticStance.AtWar => "npc_guard_ironwarden_at_war", _ => "npc_guard_ironwarden_neutral",};How The Echo affects The Age
Combat Echo events submitted by players are attributed to a faction if they occur within that faction’s territory. Sustained combat attributed to a faction shifts its diplomatic stance with the defending faction toward Hostile or AtWar. Build Echo events can be interpreted as territorial expansion, affecting Expansionist faction logic.
This means player actions — and collective player behaviour across all games in a zone — directly influence faction politics. An adventuring party that repeatedly attacks Ironwarden guards in the eastern mines will eventually trigger a war declaration.
Use cases for NPC and quest systems
The Age is particularly powerful for RPGs and strategy games where political context matters:
// Check which faction controls a zone before showing NPC dialoguevar age = Services.Get<IWorldStateQuery>();ZoneControlSnapshot control = age.GetZoneControl(zoneId);
if (control.ControllingFactionId == "ironwarden_guild"){ // Show Ironwarden guard dialogue}else if (control.IsContested){ // Zone is disputed — show combat-zone atmosphere}Age Authoring Panel
The Age Authoring Panel (View → Living World → The Age) provides:
- Faction library: define and edit faction definitions
- Zone control map: visualise which faction controls each zone and settlement tiers
- Diplomatic web: graph view of current stance between all factions in a world
- Simulation preview: project faction growth N years forward and view the resulting settlement distribution
- Historical playback: scrub back through Chronicle events to see how the Age has evolved