149 lines
11 KiB
Markdown
149 lines
11 KiB
Markdown
# 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** (done, v202611-00052) - 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** (done, v202611-00053) - clearer hands for the hand tool (open, holding, slap, punch).
|
||
3. **New heroes** (done, v202611-00063, rogues.rs) - thief (sneaks to a treasury, steals up to 250 gold and runs
|
||
to the gate; slain, his loot is yours; from wave 3), monk (spells do not touch him, 5), ranger (shoots, lays
|
||
snares that hurt and stun a creature, 7), inquisitor (fragile, every 20 s turns a nearby kobold or spider to
|
||
the heroes, 9). In the campaign from missions 5, 9, 12 and 16 on.
|
||
4. **Master talents** (done, v202611-00064, talents.rs) - experience from slain heroes, digging, rooms, walls,
|
||
traps, towers, spells and gold; points get dearer (300, 450, 600 ...). Builder (imps dig +10%, rooms -6% per
|
||
level), Warlord (creatures +5% damage, -5% damage taken), Warlock (mana +15%, spells -6%), Merchant (wages
|
||
-6%, treasure +6%); 5 levels each. The "Master" button (number of free points, pulsing) opens the window.
|
||
AI masters spend their points themselves; per game, carried over in the campaign and co-op runs.
|
||
5. **Weather above ground** (done, v202611-00066, weather.rs) - about 60% fair, 20% rain, 12% fog, 8% storm,
|
||
minutes each with soft 20 s changes, only on maps with land above ground. Rain (and storms) put out burning
|
||
bridges and keep fire from catching; fog halves the sight of units outside; storms strike units (40 damage)
|
||
or trees with lightning every 6-20 s. Dimmed daylight, rain streaks, fog veils, flashes; a HUD label.
|
||
6. **Named creatures** (done, v202611-00068, names.rs) - every creature gets a name from its kind's list in the
|
||
language files (20 per kind, per language), a humorous epithet from level 5 and a grand one from level 8;
|
||
names in the hover info, the creature overview and the messages. A creature of level 10 that falls leaves a
|
||
memorial stone on its master's ground (hover: who lies there; at most 30 per map).
|
||
7. **Hall of the fallen** (done, v202611-00073) - every named creature of level 3+ that falls is remembered
|
||
with its level, heroes slain and how it fell (slain by a kind, lava, water, snare, lightning): in the game
|
||
(creature overview "Fallen", or a click with the hand on a memorial stone) and over all games on the
|
||
achievements page (kept in the profile, at most 200, merged with the server copy).
|