Skip to content

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:

TraitBehaviour
ExpansionistAggressively settles adjacent zones when population exceeds threshold
MercantilePrioritises trade routes over military; diplomatic stance shifts toward neighbours with resources
MilitaristicHigh base military strength; low provocation threshold for declaring war
IsolationistAvoids trade and expansion; defends aggressively when territory is encroached
NomadicNo 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:

TierPopulation thresholdDescription
Camp50Temporary — Nomadic factions only
Hamlet100First permanent settlement, provides a small defensive bonus
Village300Trade routes become available
Town800Military garrison, can project influence to adjacent zones
City2000Regional 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 | AtWar
Logger.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 dialogue
var 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