#+TITLE: Forts Gameplay — What Our Clone Is Missing (sourced) #+AUTHOR: Forts Clone Project #+DATE: 2026-07-01 #+OPTIONS: toc:3 num:t * Purpose An ENUMERATED, sourced list of gameplay systems Forts has that our clone does not — so scope is driven by facts, not vibes. Ground truth is the shipped game data (=SteamLibrary/.../Forts/data/=, device_list.lua / weapon_list.lua / constants.lua) cross-checked against community docs: - Steam guide "How to be a PRO at Vanilla Forts" (id 2035024654) - Steam guide "Forts Glossary" (id 1380793614) and "Base Building" (1308699887) - Forts RTS Wiki: Technology page - Wikipedia: Forts (video game) * What we HAVE (baseline) Re-verified against the code on <2026-07-18>. Keep this section honest: it is what the rest of the document is measured against. Building (wood / bg-brace / rope), mass-spring structural sim with stress + axial/angle breaking + cascading collapse, ground destroys debris, fire (DoT + spread), per-strut HP, two weapons (cannon = ballistic, laser = beam/ignite) with per-shot energy cost and firing arcs, a pre-built enemy fort (=data/mods/enemy-fort/=), Lua-data + mods, a dev UI. Since the first draft of this document we also have: - *Devices*: reactor (=is_core=), mine, wind turbine, battery -- placeable, with HP, damaged by splash and beams. - *A real economy*: mines on metal deposits, turbines scaling with height, storage caps, and metal/energy actually spent on building and firing. - *A game loop*: win/lose when a team loses its last =is_core= device, plus restart on R. - *Bring-your-own Forts art*: =texture_forts= paths load real sprites from the player's own install, falling back to the CC0 placeholders. - *Armour* (build mode 4): HP 400, 25% stiffer, 2x mass, never burns. - *Per-material build costs*, enforced: you cannot place what you cannot afford. - *Firing recoil*: a shot shoves the firing structure back, not just the target. - *Three selectable maps* with their own forts, deposits and ground height, switchable live from the Dev panel. * MISSING — grouped by system, each with the in-game reference ** 1. The Reactor + win/loss [MOSTLY DONE — M5] The core the whole game is about. =devices/reactor.lua=: HitPoints 100 (fragile), and it is ALSO a generator (EnergyProductionRate 100, MetalProductionRate 5). Win = destroy the enemy reactor by (a) direct damage, (b) fire/splash, or (c) cutting its supports so it falls. DONE: the reactor exists as an =is_core= device that also generates, takes splash and beam damage, and ends the round when a team has none left; R restarts. STILL MISSING: fire does not damage devices, and path (c) does not exist -- devices sit at fixed coordinates rather than being mounted on the strut graph, so cutting the supports under a reactor never drops it. ** 2. Real resource economy [CRITICAL for the core loop] Two resources, generated by devices (all values from =devices/*.lua=): - *Metal*: Mines on metal *deposits* (=mine.lua= MetalProductionRate 4, EnergyProductionRate -5 — mining COSTS energy). Upgrade =mine2= (5 metal, -7 e). - *Energy*: Wind *Turbines* — output scales with HEIGHT and clearance (v0.1-core.org; MinWindEfficiency / MaxWindHeight fields). Reactor also makes 100 energy + 5 metal baseline. - *Storage caps*: Battery (=battery.lua= EnergyStorageCapacity 2000), Metal Store. Resources are capped, not infinite pools. - *Costs*: building pieces, weapons, devices, AND FIRING all cost metal/energy (cannon EnergyFireCost 2000, MetalFireCost 50). Repair costs too. DONE in M5: mines on deposits, turbines scaling with height, battery storage caps, and metal/energy spent on both building and firing. STILL MISSING: the upgraded variants (mine2, turbine2), the derrick and the metal store, and repair costs (see #7). ** 3. Devices [PARTIAL — we now have 4 of them] We have reactor, mine, turbine and battery, placeable with HP. Two structural gaps remain: devices are NOT mounted on the strut graph (they sit at fixed coordinates, so they cannot fall when their supports are cut -- see #1), and most of the catalogue below is still absent. From =devices/device_list.lua=: - Resource: mine, mine2, turbine, turbine2, derrick, battery (energy store), store (metal store), reactor, minireactor. - Tech buildings: workshop, armoury, munitions plant, factory, upgrade centre (see #4). - Utility/defence: sandbags (HP 300, cheap absorber), explosive barrel (barrel), target (mission objective, HP 30). Devices mount on structure, have HP, can be shot, and some need clearance/ground. ** 4. Tech tree + Upgrades [large system, OUT of v0.1 scope but core to Forts] 5 tech buildings gate weapons (wiki Technology; weapon_list Prerequisite fields): - Workshop -> Mortar, Swarm Missiles - Armoury -> Flak, EMP Rocket - Munitions Plant -> 20mm Cannon, Cannon (needs Armoury) - Factory -> Firebeam, Plasma Laser (needs Workshop) - Upgrade Centre -> unlocks UPGRADING existing weapons/devices (mine2, turbine2, mortar2, sniper2, minigun … =Prerequisite = "upgrade"=). Research/prereqs create build-order strategy. We have neither tech nor upgrades. ** 5. More weapons [M4 continues] We have cannon + laser. Full vanilla roster (=weapons/weapon_list.lua=): machinegun, minigun (point-defence / anti-projectile), sniper (+spotter mechanic, guides swarm missiles), mortar (high-arc, high building damage), swarm missiles (guided), missile launcher, 20mm cannon, cannon, flak (anti-projectile), EMP rocket (disables devices), firebeam / plasma laser (beam). Notable *mechanics* we lack: point-defence (shoot down incoming shells), guided/tracking projectiles, hitscan (machinegun/sniper), EMP disable. ** 6. Building materials we lack [PARTIAL — armour landed] DONE: *armour* (HP 400, +25% stiffness, 2x mass, does not burn, 18x wood's metal cost) is build mode 4. The rest of this list still stands. =materials/building_materials.lua=: *door* (openable/closable, blocks then opens for your own fire), *energy shield* (reflects beams/plasma, warmup), *metal beam*, *camo*, *solar* (energy on the strut), *fuse* (relays fire slowly). We have wood/bg/rope only. Doors and shields are real tactical mechanics (open to shoot, shield vs lasers). ** 7. Fort actions: Repair + Recycle [our M7] - *Repair*: restore a damaged piece/device for resources proportional to damage (Forts Repair.EnergyCostMultiplier; materials MetalRepairCost/EnergyRepairCost). - *Recycle/Scrap*: remove a piece, recover partial resources (MetalReclaim, ScrapTime). We have neither. ** 8. Weapon aiming/firing details we simplified - Cannon/weapons cost energy+metal PER SHOT (EnergyFireCost) — firing is resource-limited, not just reload-limited. DONE for energy (=energy_cost= per weapon); the per-shot METAL cost is still missing. - Recoil/kickback pushes the fort — DONE: each shot applies a velocity kick to the firing structure along -aim (=BuildGraph::apply_recoil=), separate from the knockback dealt to targets. Per-weapon =recoil= in data, tunable in the Dev panel; the beam laser has none. - Spotters: sniper reveals targets and guides swarm missiles. - Fire-clearance: a weapon won't fire if its own structure blocks the muzzle (MinFireClearance) — prevents shooting through your own fort. ** 9. Commanders + Factions [OUT of v0.1 scope] 15 commanders across 5 factions, each with a passive trait + active ability (e.g. Firebird halves fire spread & double-extinguishes on her forts). Huge matchup variety. Purely a post-v1 concern but defines Forts' identity. ** 10. Map / world systems [PARTIAL] DONE: three selectable maps (=data/maps.lua=), switchable at runtime from the Dev panel, each carrying its own ground height, deposits, devices, weapon spawns and prebuilt forts. STILL MISSING: the terrain SHAPE. =ground_level= only slides a flat half-plane up and down, so everything below is still open. - Metal *deposits* embedded in terrain (mine targets) — DONE, per map. - Terrain shape + foundation material chosen by ground *slope angle* (StandardNode.Foundations brackets by angle). Ours is a flat half-plane. - No-build zones, destructible terrain, water/buoyancy (High Seas DLC). ** 11. Meta / not-gameplay-but-expected Skirmish AI opponent, campaign/missions, multiplayer lockstep netcode, replays (trivial with deterministic lockstep), sandbox. All post-v0.1. * Priority for OUR roadmap Mapping the above onto the (already-reordered) milestones: | Gap | Milestone | Status / notes | |---------------------------------------+-----------+--------------------------------| | Reactor + win/loss + restart | M5 | DONE; no collapse-win path | | Resource economy (mine/turbine/store) | M5 | DONE (no mine2/turbine2/store) | | Per-shot energy cost | M4 | DONE (metal-per-shot missing) | | Devices framework (mount on struts) | M5/M6 | not mounted on strut graph | | Armour material | M4/M7 | DONE (build mode 4) | | Firing recoil on the shooter | M4 | DONE (per-weapon, in data) | | Door + Shield materials | M7 | need mechanics, not just data | | More weapons (mortar/flak/mg/missile) | M4 | point-defence + guided are new | | Repair + Recycle | M7 | resource-cost actions | | Tech tree + Upgrades | post-v0.1 | big; build-order strategy | | Commanders/Factions | post-v0.1 | defines identity, large | | Map deposits / terrain / foundations | M6 | deposits done; terrain flat | | AI / campaign / multiplayer | post-v1 | out of scope | * Smallest high-value next steps (concrete) Reactor + win/loss, real resources, armour and firing recoil are all DONE; what follows is the refreshed queue. 1. *Mount devices on the strut graph*: attach devices to nodes so cutting the supports drops them. Unlocks the second victory path in #1 and makes reactors killable by collapse, a signature Forts moment. This one root cause blocks three separate gaps, so it buys the most per unit of work. 2. *Fire damages devices*: Forts burns devices at 2.5 hp/s, 5x the 0.5 hp/s it does to struts. We do not damage devices with fire at all. 3. *Door material*: toggles =blocks_projectiles= so you can open to shoot and close to tank. Needs a small mechanic, not just data. 4. *Mortar or flak*: the next weapons. Flak brings a genuinely new mechanic (point-defence intercepting incoming shells); mortar is a high-arc, high-building-damage counterpart to the cannon. 5. *Per-shot metal cost*: firing charges energy but not metal (Forts charges both). A one-line data + deduction change.