feat(age): Introduce new game mechanics and content for the "Age of 4" simulation

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Claude Code 2026-03-31 04:46:16 -07:00
parent 70a4e35006
commit daa7743712
2 changed files with 114 additions and 0 deletions

View file

@ -0,0 +1,97 @@
# Age of Four — Race Homeworlds
> Data lives in `resources/worlds/{homeworld_id}.json` and `resources/races/{race_id}.json`. This doc covers design intent only.
---
## Homeworld System
Every race evolved on a specific planet. Their homeworld determines:
1. **Start bias** — where on the map they prefer to settle (weighted terrain placement)
2. **Terrain affinity** — per-tile yield/defense/movement bonuses on their preferred terrain, applied globally regardless of map type (defined on the race, not the homeworld)
3. **Planetary bonuses** — whole-race stat bonuses that activate **only when the active map's world archetype matches their homeworld archetype** (defined on the homeworld)
### Planet Archetypes
Three archetypes are defined in `engine/src/worlds/`:
| Archetype | Gravity | Physics | Fantasy interpretation |
|-----------|---------|---------|----------------------|
| `earth` | 1.0g | Full ecology, water cycle, weather | Standard fantasy world |
| `mars` | 0.38g | Thin atmosphere, dust storms, no ecology | Harsh, arid, low-pressure survival world |
| `venus` | 0.91g | Dense atmosphere, volcanism, acid clouds | High-pressure, magically saturated world |
**Gravity is mechanical.** Races evolved for low gravity (mars) move faster and have longer ranged attack on mars-type maps. Dense-atmosphere races (venus) gain magic range and power on venus-type maps.
---
## The Four Races
### High Elves — Silvandel (`venus`)
> *Before the runaway greenhouse took hold, Silvandel was a world of impossible beauty — dense with mana, draped in luminous cloud forests, every breath charged with arcane potential.*
- **Planet:** Venus-type — dense, pressurized, high mana density
- **Dominant biomes:** `enchanted_forest`, `alpine_meadow`, `coral_reef`
- **Climate:** Warm, wet, high-pressure
- **Start bias:** Forests, coastal highlands (weight 3)
- **Planetary bonus (venus maps):** Magic +2, magic_range +2 — dense atmosphere resonates with elvish spellcraft
- **Terrain affinity (global):** `temperate_forest` → culture +2, magic +1 · `enchanted_forest` → magic +3
High Elves breathe dense magical atmosphere natively. On venus-type maps they are at their most powerful — spells carry further and resonate harder. On earth-type maps they rely on terrain affinity in forests alone.
---
### Humans — Valorheim (`earth`)
> *Valorheim was a balanced world — no extreme, no single advantage. It forged a people who could adapt to anything.*
- **Planet:** Earth-type — standard gravity, full ecology, mixed biomes
- **Dominant biomes:** `temperate_grassland`, `temperate_forest`, `plains`
- **Climate:** Temperate, balanced moisture
- **Start bias:** Temperate mixed terrain (weight 2, low preference — humans adapt anywhere)
- **Planetary bonus (earth maps):** Production +1, food +1 — mild across-the-board competence
- **Terrain affinity (global):** `temperate_grassland` → food +1 · `plains` → production +1
Humans are the blank-canvas race. Their planetary bonus is intentionally modest — they're supposed to be adaptable, not dominant in any one context.
---
### Dwarves — Khazad Prime (`earth`)
> *Khazad Prime is a cold, mineral-dense world where the mountains are the world — not scenery but home, resource, and fortress combined.*
- **Planet:** Earth-type — standard gravity, but cold and geologically active
- **Dominant biomes:** `mountains`, `alpine_tundra`, `subterranean`
- **Climate:** Cold, low moisture, high elevation
- **Start bias:** Hills and mountains (weight 3)
- **Planetary bonus (earth maps):** Production +1, fortification_rate +10 — stone-sense and engineering mastery
- **Terrain affinity (global):** `mountains` → production +2, defense +15 · `hills` → production +1, movement_cost_reduction 1
Dwarves gain their production and defense advantages on any map that has mountains. On earth-type maps, their planetary bonus stacks, making mountain fortresses nearly impregnable.
---
### Orcs — Gorgrund (`earth`)
> *Gorgrund is a world in geological adolescence — volcanic, unstable, punishing. The orcs didn't conquer it. They became it.*
- **Planet:** Earth-type (volcanically active variant) — lava fields, rocky badlands, harsh climate
- **Dominant biomes:** `volcano`, `rocky`, `savanna`
- **Climate:** Hot, arid to semi-arid, seismically active
- **Start bias:** Open terrain, volcanic highlands (weight 3)
- **Planetary bonus (earth maps):** Growth +2, expansion_cost -10 — orcs spread like fire on familiar ground
- **Terrain affinity (global):** `lava_fields` → growth +2 · `rocky` → expansion +1
> **Design note:** Gorgrund's world_archetype is `earth` (volcanically active), not `venus` (acid/pressure). The volcanic activity on Gorgrund is geological, not atmospheric. This may be revisited — an argument exists for a fourth archetype (volcanic world) if orcs and draconians need different planetary bonuses.
---
## Bonus Stacking
Terrain affinity and planetary bonuses stack:
- A Dwarf city on mountains, on an earth-type map: +2 prod (affinity) + 1 prod (planetary) + 15 defense (affinity) + 10% fortification rate (planetary)
- A High Elf city in enchanted_forest, on a venus-type map: +3 magic (affinity) + 2 magic (planetary) + 2 magic_range (planetary)
This creates genuine incentive to play your race on their homeworld type when the map option exists.

17
games/age-of-4/game.json Normal file
View file

@ -0,0 +1,17 @@
{
"id": "age-of-4",
"name": "Age of Four",
"version": "1.0.0",
"engine_version": ">=1.0.0",
"description": "The four founding races — High Elves, Humans, Dwarves, and Orcs — with full 4X gameplay and all 5 magic schools.",
"author": "Core Team",
"discipline_count": 5,
"foundation_count": 6,
"era_count": 10,
"transit_layers": 0,
"playable_races": ["high_elves", "humans", "dwarves", "orcs"],
"settings": {
"gender_system": true,
"society_presets": ["matriarchal", "patriarchal", "random"]
}
}