magicciv/public/games/age-of-dwarves/docs/TECH_TREE.md
autocommit de7a5418e6 docs(docs): 📝 Update technical documentation with game tech tree and unit logistics entries
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-26 02:21:13 -07:00

14 KiB

Tech Tree

The Age of Dwarves research tree spans ten eras across six pillars. Every dwarf clan walks the same six tracks; the order and depth at which they advance them is what distinguishes a brewing-merchant prince from a coilgun-fielding garrison state.

The six pillars:

Pillar Domain
Civic Government, economy, society, law, ritual
Military Combat doctrine, weapons, formations, command
Engineering Infrastructure, construction, mundane comms, transport
Ecology Agriculture, animal husbandry, resource extraction, environmental stewardship
Knowledge Science, philosophy, writing, mathematics, runelore-as-scholarship
Metallurgy Smelting, alloying, smithcraft, the mc-items smithcraft_T1..smithcraft_T10 chain

Techs marked (existing) are already authored in public/games/age-of-dwarves/data/techs/*.json; their canonical era and pillar take precedence over this document's preferred slotting where the two diverge — divergences are noted inline so the JSON authoring is the law and this doc is the map. Game 1 scope rail (CLAUDE.md): no magic schools, no leylines, no Archons. rune_resonance is treated as engineering-flavored runic engineering — a craft, not a school. arcane_ascension at era 10 is a Game 2 teaser stub and is not researchable in Game 1.


Era 1 — Stone Age

The opening hand. Clans live in a single mountain mouth, hunt the surface in the warm months, and remember everything orally because nothing is yet written down.

Pillar Techs
Civic oral_tradition, clan_council, customary_law
Military flintworking, tribal_warden, hand_axe_combat, war (existing — foundations.json, pillar military)
Engineering shelter_building, firepit, dry_stone_walling
Ecology wild_foraging, seasonal_hunting, wild_gathering, trapping, fishing (both existing — foundations.json, pillar agriculture)
Knowledge cave_painting, astronomy_naked_eye, memory_keeping, dwarf_heritage (existing — foundations.json, race-locking)
Metallurgy flint_napping, bone_tool_shaping

Also existing in dwarven_warfare.json at era 1: shield_wall, crossbow_craft — both pillar military. The brief slots crossbow at era 3; the JSON is canonical (era 1).


Era 2 — Domestication and Settlement

Permanent holds. Beasts of burden. The first metal that is not flint.

Pillar Techs
Civic tribal_organization, barter_trade, pottery_storage
Military bronze_age_weapons, shieldwall_doctrine, siege_craft, pike_drill (both existing — dwarven_warfare.json, era 2)
Engineering wheelmaking, roads, masonry, surveying_basic
Ecology animal_husbandry (→ cattle, oxen), animal_training (→ boars, ravens), pastoralism, agriculture_basic, boar_husbandry (existing — dwarven_warfare.json, era 2), tracking (existing — foundations.json, era 2, pillar military)
Knowledge runescript_basics, numbering
Metallurgy metallurgy_basic (bronze), bellow_smelting

Era 3 — Bronze and the First Cities

Holds become networks. Coined currency replaces the salt-bar. Iron breaks bronze's monopoly.

Pillar Techs
Civic urban_planning, currency_minting, civic_record
Military military_doctrine (sergeants), phalanx_formation, crossbow_invention
Engineering tunnel_paths (existing — foundations.json, era 3, pillar ecology; treat structurally as engineering despite the pillar tag), pioneer_corps, aqueduct, bridges
Ecology irrigation, animal_breeding_selective, crop_rotation, ecology_study (existing — foundations.json, era 3, pillar scholarship), ancient_forestry (existing — foundations.json, era 3)
Knowledge record_keeping_full, mathematics, cartography_basic
Metallurgy iron_smelting, forge_specialization, smithcraft_T1_T2, steelworking (existing — foundations.json, era 3)

Era 4 — Classical

Brewing comes online. Mounted dwarves come online. Walls become geometry.

Pillar Techs
Civic dwarven_brewing, legal_codes, trade_routes, professional_militia
Military siegecraft, cavalry_doctrine_T1, armor_basics, hardened_plate (existing — dwarven_warfare.json, era 4, pillar masonry)
Engineering aviary_husbandry, fortification, mining_engineering
Ecology terraced_farming, livestock_specialization, boar_breeding
Knowledge geometry, medicine_basic, astronomy_calendar, runelore (existing — foundations.json, era 4, pillar metallurgy; the JSON era is canonical — the brief's era-8 slotting refers to the era-8 cluster around rune_resonance, see Era 8)
Metallurgy iron_working_advanced, smithcraft_T3, weaponcraft_specialization

Era 5 — Medieval

Guilds, charters, the long pike. The mithril forges open.

Pillar Techs
Civic heraldry, guild_commerce, nobility_charters, merchant_compacts
Military siege_engineering (trebuchets), pike_doctrine, crossbow_mastery, heavy_armor, gunpowder (existing — dwarven_warfare.json, era 5, pillar military; brief slots at era 6 — JSON is canonical)
Engineering civil_engineering, clockwork_basics, dwarven_holdcraft
Ecology selective_breeding_advanced, salt_curing, pasture_management
Knowledge philosophy, cartography_advanced, mechanical_principles
Metallurgy metallurgy_advance (steel), smithcraft_T4_T5, damascene_steel, mithril_smithing (existing — foundations.json, era 5), high_smithing (existing — advanced_metallurgy.json)

Era 6 — Pre-Industrial and Powder

The first concussion of a dwarf-cast cannon. Beacon chains string the holds together.

Pillar Techs
Civic central_authority, printing_press, state_education, professional_army
Military pike_and_shot, early_artillery, field_doctrine, rifling, marksmanship, beacon_chain (all existing — dwarven_warfare.json, era 6, pillar military)
Engineering proto_chemistry, bastion_fortification, signal_works (see Era 7 — the brief notes signal_works is era 7 in the comms backbone)
Ecology falconry_command, proto_industrial_farming, iron_pastures
Knowledge optics, engineering_mathematics, early_navigation
Metallurgy cannon_casting, smithcraft_T6, precision_forging

Era 7 — Industrial and Steam

Steam pressure, breech-loaders, vaccines. The first time a dwarf hold runs on a schedule the surface clans cannot match.

Pillar Techs
Civic industrial_state, mass_education, labor_law, corporate_charters
Military breech_loading, revolver_doctrine, steam_walkers, automatic_fire (both existing — dwarven_warfare.json, era 7), firearms (umbrella label for the breech-and-revolver bundle — encoded in JSON as the rifling/marksmanship/automatic_fire ladder, not as a single id)
Engineering steam_engine, industrial_construction, steam_track, signal_works
Ecology industrial_breeding, selective_husbandry_mass, vaccine_basics
Knowledge chemistry_modern, electromagnetism_basics, germ_theory, thermodynamics
Metallurgy bessemer_steel, smithcraft_T7, industrial_smelting, steam_forging (existing — advanced_metallurgy.json, era 7)

Era 8 — Resonance and the Electric Hold

The runic engineering era. rune_resonance is treated as engineering — a high-tier mundane craft for sending signals down a wire, not magic. A parallel mundane path (radio_basics) gives non-runic clans an equivalent option.

Pillar Techs
Civic dwarven_university, mass_media, civic_reform, social_planning
Military mechanized_infantry, armoured_doctrine, motorized_logistics, combustion_assault, tactical_disruption (all existing — dwarven_warfare.json; combustion_assault and tactical_disruption are JSON-era 8 and 9 respectively — JSON is canonical)
Engineering rune_resonance (existing — advanced_metallurgy.json, era 8, pillar metallurgy; engineering-flavored per Game 1 scope rail), radio_basics (mundane parallel), relay_networks, electric_lighting
Ecology genetic_observation, industrial_animal_systems
Knowledge synthetic_chemistry, electromagnetic_theory, materials_science_basic
Metallurgy alloy_metallurgy, smithcraft_T8, runelaced_metals, mithril_working (existing — advanced_metallurgy.json, era 8)

runelore (existing era-4 tech in foundations.json) is the prerequisite for rune_resonance — the era-4 lore of inscribing names into blades scales, four eras later, into the lore of inscribing carrier-waves into wire.


Era 9 — Atomic, Aerial, and the Edge of Space

Tanks. Aircraft. The first satellite. Apex relics begin landing in player inventories.

Pillar Techs
Civic mass_communications, propaganda_doctrine, nation_state, colonial_doctrine
Military armoured_warfare, aviation_military, anti_satellite_doctrine, chemical_warfare, rocketry, electronic_warfare, coilgun_theory (all existing — dwarven_warfare.json, era 9)
Engineering early_space_flight (→ Spaceport, satellites), aviation, microelectronics, automated_relays
Ecology genetic_engineering, weather_observation_advanced
Knowledge atomic_theory, radio_advanced, computing_basics, synthetic_biology
Metallurgy superalloys, smithcraft_T9, synthetic_diamond, apex_relics_T9, deep_alloys (existing — advanced_metallurgy.json, era 9)

Era 10 — Apex and the Planetary Mantle

The closing hand. Holds drill the mantle. Cybernetics, fusion, weather-control. The era-10 arcane_ascension slot is reserved as a Game 2 teaser and is not researchable in Game 1.

Pillar Techs
Civic planetary_governance, post_scarcity_economics, mass_cyber_augmentation
Military total_war_doctrine, apex_cybernetic_soldier, mantle_warfare, runic_armaments, ancestral_legacy (both existing — dwarven_warfare.json, era 10)
Engineering deep_mantle_engineering (→ Mantle-Choir), planetary_engineering, tectonic_lifts
Ecology apex_genetic_engineering, bioengineered_ecosystems, weather_control
Knowledge fusion_theory, arcane_ascension (Game 2 teaser only — not researchable in Game 1; CLAUDE.md scope rail), quantum_computing, nanotech_theory
Metallurgy adamantine_forging (existing — advanced_metallurgy.json, era 10), smithcraft_T10 (apex relics), nanomaterials, mantle_alloys

Prerequisite chains

The load-bearing cross-era progressions. Each chain is a single conceptual line crossing the era boundary; the player feels them as escalating versions of one identity, not as separate techs.

Mounts. animal_training (e2) → cavalry_doctrine_T1 (e4) → selective_breeding_advanced (e5) → industrial_breeding (e7). The dwarf rider on a war-boar at era 4 is the same lineage as the mass-bred armoured cavalry of era 7.

Birds. animal_training (e2) → aviary_husbandry (e4) → falconry_command (e6) → automated_relays (e9). Trained ravens at era 2 become an officer's command-bird at era 6 and a satellite relay constellation at era 9.

Communications backbone. roads (e2) → signal_works (e7) → rune_resonance or radio_basics (e8) → early_space_flight (e9) → deep_mantle_engineering (e10). The same dwarf message — "the eastern hold is under attack" — takes six turns of foot-courier at era 2 and arrives same-turn end-phase at era 8. This chain governs the PerceivedState freshness model in military/COMMUNICATIONS.md.

Pioneer line. Founder unit (era 1, no tech prerequisite) → wheelmaking (e2) → pioneer_corps (e3) → civil_engineering (e5) → industrial_construction (e7). The escalating capacity to plant, expand, and improve a hold.

Metalwork and smithcraft. metallurgy_basic (e2) → iron_smelting (e3) → metallurgy_advance (e5) → cannon_casting (e6) → bessemer_steel (e7) → steam_forging (e8) → superalloys (e9) → adamantine_working (e10). The smithcraft_T1..smithcraft_T10 ladder in mc-items is the per-tier consumer of these techs; each metallurgy tech unlocks one or two smithcraft tiers in lockstep.


Slot-enable table

Which unit and improvement slots are gated by which combination of tech and resource. A slot is enabled only when both the tech is researched and the resource is owned or imported.

Slot Required tech Required resource(s)
ox_wagon animal_husbandry cattle
mount (boar / ram) animal_training boars or mountain_rams
officer_bird falconry_command crag_aerie (improvement, era 6+)
powder_charges gunpowder saltpeter + sulfur + coal
firearm firearms (the rifling/marksmanship/automatic ladder) iron + coal
steam_engine (unit and improvement) steam_engine (engineering, era 7) coal + iron
rune_panel rune_resonance runestone
radio_set radio_basics copper + coal
coilgun coilgun_theory copper + mithril
mantle_drill deep_mantle_engineering adamantine + fusion_cell

firearm is an umbrella slot. The JSON canon does not encode a single firearms tech; instead, the slot is enabled when any of rifling, marksmanship, or automatic_fire is researched, and the resource gate is unchanged.


See also

  • military/COMMUNICATIONS.md — the comms-backbone chain in action: courier envelopes, beacon chains, resonance wires, PerceivedState.
  • data/techs/foundations.json, data/techs/dwarven_warfare.json, data/techs/advanced_metallurgy.json, data/techs/advanced_ecology.json, data/techs/advanced_military.json — canonical authored techs. Where this document and the JSON disagree on era or pillar, the JSON is the law.
  • CLAUDE.md Game 1 scope rail — what does and does not ship in Age of Dwarves; the era-10 arcane_ascension stub is the only deliberate forward-pointer.