Files
dungeoncraft/docs/ROADMAP.md
T

134 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Roadmap
Agreed on 2026-11-05. Worked through in this order; every block is committed, pushed and deployed
on its own. Details not listed here are decided along the way.
## 1. Open items – done (v202611-00035)
1. **Heroes attack every master** – with rival masters or several players, each hero wave marches
to the heart of the *strongest* living master (most creatures and gold), not only the player's.
2. **Co-op campaign offline with an AI partner** – "League against the Lightwatch" playable
without the server: the partner is an allied AI master with its own dungeon (built like a
rival); its creatures join attacks and it sends gold when the player runs short.
3. **Resume editor co-op runs** – an interrupted multiplayer run of an editor campaign goes on at
the reached mission; the host keeps the progress.
4. **New screenshots** – title demo, language dropdown, co-op campaign.
## 2. Bridges – done (v202611-00036)
Stone bridges over lava exist already (75 gold per tile).
1. **Wooden bridges burn** – fire spells, fire traps and dragon fire set them alight; after a few
seconds they collapse and units on them fall into the water. Stone bridges are fireproof.
2. **Drawbridge** – an expensive bridge (about 150 gold per tile) with a per-bridge switch:
*manual* (a click raises or lowers the whole bridge) or *automatic* (rises when heroes come
near, lowers afterwards). Knights can only tear it down while it is lowered.
3. **Cooling lava** – frost spells and frost traps turn lava into walkable obsidian for a while.
4. **Repairing bridges** – imps repair damaged bridges; knights wear bridges down step by step
instead of in one blow.
Built as: `src/bridges.rs` (fire, wear, drawbridges, obsidian), the *Drawbridge* tool (click: down → up →
automatic) and the *Frost* spell (lava → obsidian for 40 s); the frost glow trap keeps lava next to it cooled.
## 3. The surface world – done (v202611-00038)
1. **Surface terrain** – grass, trees, paths, daylight and sky. Trees act like earth: imps fell
them.
2. **Wood** – a second resource. Above ground it comes from trees (plenty: a fortress is besieged
there), underground from giant mushrooms in caves and by the water (scarce, slowly growing back,
so few wooden doors down there). Wooden bridges, wooden doors, siege engines and room upgrades
cost wood; iron and magic doors and stone bridges still cost gold.
3. **Raising walls** – imps can raise a wall again on the player's own empty floor, for gold, so
tunnels can be closed and doors placed where they matter.
4. **Fortresses above ground** – walls, towers, a gate, a clearing with torches.
5. **Siege weapons** – heroes bring battering rams (against doors) and catapults (against towers);
the player builds his own siege engines in a workshop.
6. **Missions** – the last mission of the main campaign (M30) and of the co-op campaign (M20) lead
to the surface: the dungeon half lies in the rock (gold and more), the other half is a forest
with the High Marshal's fortress to destroy. Free play and multiplayer get a map option
"Surface". The map editor gets the new terrain.
Built as: `src/wood.rs` (wood, giant mushrooms), `src/walls.rs` (the wall tool), `src/surface.rs` (sky layer
`Map::sky`, forests, cliffs and cave mouths, clearings around fortresses), `src/siege.rs` (rams and catapults:
in hero waves from wave 4/6, buildable with a forge). The fortresses above ground are the knights' usual
fortresses (fortress.rs) in a clearing. Final missions: campaign M30 and co-op M20; free play, versus matches
and editor random maps have the option "half above ground".
## 3b. Music – done (v202611-00039)
Six more underground tracks and a block of six surface tracks: the same leitmotif brighter and in major, synthetic
birdsong and wind, flute leads and harp arpeggios. The music follows the camera (surface or underground) with a
crossfade.
Built in `tools/compose_music.py` (instruments flute, bird and wind; birds and wind on two extra channels only in
surface songs, so the older pieces stay byte for byte the same): build16-19, battle9-10, surface1-4,
surface_battle1-2; `audio::Category::Surface` / `SurfaceBattle`, chosen in `MusicDirector` when most of the
camera's surroundings lie above ground (4 s crossfade).
## 4. Additions – done (v202611-00047)
Status: creature abilities (personality.rs: an ability per creature at level 3-7, used by itself) and
creature relationships (likes, hates, brawls) existed already. Done in this block so far:
bosses (`src/bosses.rs`: four champions of the Order lead every fifth wave - Sir Aldric's shield wall,
Dame Seraphine's radiant burst, Brother Halvard's call to arms, Captain Rothgar's charge - with a health bar
and loot), statistics (`src/stats.rs`: counters and a chart at the end of a game) and achievements
(`src/achievements.rs`: 64 of them, kept in the browser and merged with `/api/profile` on the server after a
login; the menu page *Achievements*), room levels 2 and 3 (researched in the library once every tool is known:
+25% per level, brighter, gold trim) and random events (`src/events.rs`: earthquake, lava or water over the
banks, a new gold vein; every 8-12 minutes in free games and versus matches, switch in the game settings; the
host's choice goes to every client with `"events"` in the create message) and wild beasts (`src/beasts.rs`:
dens of cave bears and giant beetles in the caverns of bigger random maps; neutral like the dwarves; beaten while
a prison has room, a beast gives in and joins), traders (`src/traders.rs`: every ~10 minutes in single player a
merchant waits a minute at an own portal; a click with the hand buys rune plans, an ember wyrm, a chainbreaker,
wood or a mana potion), seasons (snow above ground in winter, pumpkins at Halloween, from the real date) and
creature equipment (`src/armory.rs`: without orders the forge makes iron, steel and rune gear for gold; each
piece goes to the strongest creature without one that good: +10/22/38% health and attack, a coloured mark at
the health bar). The dynamic music (calm and battle) existed already and now also follows the camera to the
surface. The tutorial (*Tutorial* in the title menu, `editor::templates::tutorial_campaign`): Crookfinger leads a
new master through digging, claiming, lair, mushroom garden, the first creatures, a slap and two knights - one
painted mission whose triggers switch each other on. **Block 4 is done.**
1. **Random events** – earthquake (tunnels cave in), lava eruption, flood, gold vein found. Rare
(every 8–12 minutes), free play and multiplayer only, can be switched off in the menu; in
campaigns only through new script blocks.
2. **Creature abilities** – from level 5 every creature has an active ability (ogre stomp, spider
web, mage chain lightning, ...), used automatically and wisely, with a cooldown.
3. **Bosses and elite heroes** – every 5th wave brings a boss hero with a health bar at the top,
an ability of its own and loot (gold, runes).
4. **Wild beasts** – beasts in caves (cave bears, giant beetles, ...) that can be tamed in the
prison and become creatures.
5. **Room upgrades** – rooms can be upgraded to level 2 and 3 for gold and wood (a library that
researches faster, ...), shown by ornaments and brighter light.
6. **Creature equipment** – the forge makes weapons and armour in tiers (iron, steel, rune);
creatures fetch the best fitting piece themselves, the strongest first; equipment is visible.
7. **Creature relationships** – creatures like or hate each other, quarrel, and work better with
friends; the lair shows who likes whom.
8. **Dungeon visitors** – neutral traders and smugglers come through the portal and sell rare
traps, runes or creatures for gold.
9. **Dynamic music** – procedural music that changes between calm and battle and swells when
heroes come.
10. **Tutorial mission** – an interactive introduction with Crookfinger (digging, rooms,
creatures, traps), built with the editor and script blocks.
11. **Statistics** – charts at the end of a game (gold over time, creatures, kills, buildings; for
every player in multiplayer) and lifetime totals in the profile.
12. **Achievements** – 50+ achievements with pixel badges, including hidden and humorous ones in
Crookfinger's style and progress bars, stored per user on the server.
13. **Seasonal events** – cosmetic touches by date (pumpkins at Halloween, snow on the surface in
winter, ...).
## 5. Next (agreed 2026-11-06)
Done: the pixel look (the world 360 rows on every device, 270/480 selectable; the interface on the same
grid), guard and attack markers (shields and swords), savegames with the game state only.
1. **Real AI masters** - rivals, AI seats and the co-op partner play by the player's rules: imps dig,
claim, mine and set torches; rooms by plan, traps, towers, research; the attack flag, shields and swords;
strength by the difficulty.
2. **Mouse cursor** - clearer hands for the hand tool (open, holding, slap, punch).
3. **New heroes** - thief (steals gold, from wave 3), monk (immune to spells, 5), ranger (lays traps, 7),
inquisitor (converts the weakest creatures back, 9).
4. **Master talents** - Builder, Warlord, Warlock, Merchant (5 levels each), a toolbar button; per game,
carried over in the campaign.
5. **Weather above ground** - rain (puts out fire), fog (less sight), storms (lightning in trees and units).
6. **Named creatures** - names per kind and language, epithets at higher levels, memorial stones.