diff options
| author | Vaino Kauppila <vaino@vke.fi> | 2026-07-02 22:58:25 +0300 |
|---|---|---|
| committer | Vaino Kauppila <vaino@vke.fi> | 2026-07-02 23:47:07 +0300 |
| commit | cd0c08dc7ce754473178ad3f32f7740a1dddc1eb (patch) | |
| tree | 589c676b41d6f3d322ea5ce339ddb0811f29ec31 /research/gameplay-gaps.org | |
| download | forts_clone-cd0c08dc7ce754473178ad3f32f7740a1dddc1eb.tar.gz forts_clone-cd0c08dc7ce754473178ad3f32f7740a1dddc1eb.zip | |
Initial import: LibreForts (M0-M5 in progress)
Open-source Forts clone: custom C++20 engine + data-driven (Lua) 2D physics
artillery RTS.
- Building: node/strut graph on a stiff mass-spring solver (canon Forts model),
triangulation rigidity, axial + 30-degree angle-stress breaking, cascading
collapse, fire (DoT + spread), ground destroys debris.
- Weapons (M4): cannon (ballistic) + laser (beam/ignite) with select-and-aim-in-
arc UX; splash / beam damage; bg-brace passthrough.
- Devices + economy (M5): reactors + win/loss + restart, mines/turbines/battery,
metal deposits, storage caps, per-shot energy cost.
- Data-driven via Lua/sol2 with a layered mod loader; enemy-fort scenario mod.
- Renderer: SDL3 + textures + ImGui dev UI. stb_image + ImGui vendored.
- Assets: CC0 placeholders only; real game art loaded at runtime from the user's
own install via forts: paths (bring-your-own; nothing copyrighted committed).
See README.md / CLAUDE.md and research/ + requirements/ for detail.
Diffstat (limited to 'research/gameplay-gaps.org')
| -rw-r--r-- | research/gameplay-gaps.org | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/research/gameplay-gaps.org b/research/gameplay-gaps.org new file mode 100644 index 0000000..4974ef6 --- /dev/null +++ b/research/gameplay-gaps.org @@ -0,0 +1,143 @@ +#+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) + +Building (wood / bg-brace / rope), mass-spring structural sim with stress + +axial/angle breaking + cascading collapse, ground destroys debris, fire +(DoT + spread), HP, two weapons (cannon = ballistic, laser = beam/ignite), +a static enemy fort, Lua-data + mods, a dev UI. Resources are a placeholder +(depleting pools, no generation). + +* MISSING — grouped by system, each with the in-game reference + +** 1. The Reactor + win/loss [CRITICAL — this is the actual game] +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. We have no reactor, no win/loss, no restart. +-> our M5. + +** 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. +We have placeholder pools only. -> deferred to our M5. + +** 3. Devices (whole category — we have ZERO) +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 +=materials/building_materials.lua=: *armour* (HP 400, +25% stiffness, 2x mass — +kinetic tank), *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. +- Recoil/kickback pushes the fort (we apply knockback to targets only, not + recoil to the firing structure — Forts Recoil 600000, KickbackMean 40). +- 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 +- Metal *deposits* embedded in terrain (mine targets) — we have none. +- 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 | Notes | +|---------------------------------------+-----------+--------------------------------| +| Reactor + win/loss + restart | M5 | the actual objective | +| Resource economy (mine/turbine/store) | M5 | deposits, generation, caps | +| Repair + Recycle | M7 | resource-cost actions | +| Devices framework (mount on struts) | M5/M6 | reactor is the first device | +| Armour + Door + Shield materials | M4/M7 | data-driven, small each | +| More weapons (mortar/flak/mg/missile) | M4 | point-defence + guided are new | +| Per-shot energy cost + recoil | M4 | small, faithful | +| Tech tree + Upgrades | post-v0.1 | big; build-order strategy | +| Commanders/Factions | post-v0.1 | defines identity, large | +| Map deposits / terrain / foundations | M6 | needs a real map format | +| AI / campaign / multiplayer | post-v1 | out of scope | + +* Smallest high-value next steps (concrete) + +1. *Reactor as a device + win/loss* (M5 kickoff): a mountable block with HP that, + at 0 HP or when disconnected from a foundation, ends the round. Gives the game + an actual goal to shoot for. (We already destroy struts and detect + foundation-connectivity, so both victory paths are within reach.) +2. *Real resources*: mines on deposits (+metal, -energy), turbines (+energy by + height), storage caps, and make building/firing actually spend them. +3. *Armour + Door materials*: data-only additions to the Lua material table + (armour = high HP/stiff/heavy; door = toggles blocking) — cheap, high value. +4. *Per-shot energy cost + firing recoil* on the cannon/laser — a few lines, + makes combat feel like Forts. |
