Commit Graph
206 Commits
Author SHA1 Message Date
Richard Zink 6175a383a8 Bump version to v202611-00016 2026-11-05 12:37:12 +01:00
Richard Zink 2b7e8af674 Add campaign editor and mission scripting docs 2026-11-05 12:23:05 +01:00
Richard Zink b06c48172b Add campaign editor script runtime and debug overlays 2026-11-05 12:22:59 +01:00
Richard Zink cd35ca8e3d Add Dinowyde WIP reference images 2026-11-05 12:22:34 +01:00
Richard Zink ef148087f4 Measure multiplayer relay ping 2026-11-05 12:22:27 +01:00
Richard Zink 4834adca7b Serve standalone game without login 2026-11-05 12:22:20 +01:00
Richard Zink 2320c309a7 Add agent commit and deployment workflow 2026-11-05 12:22:12 +01:00
Richard Zink 07371cc893 Debug FPS display with rendering backend info 2026-11-05 07:21:37 +01:00
Richard Zink ee7b76fa6a Manual AI seats for matches: host toggles empty seats, co-op allies fight heroes 2026-11-05 06:38:38 +01:00
Richard Zink 3492eacd59 Fog of war lifts three tiles beyond sight 2026-11-04 21:46:31 +01:00
Richard Zink f164293d21 Remove stale play standalone file: README and INSTALL point to the title-screen download 2026-11-04 20:39:10 +01:00
Richard Zink 5928acf7f6 Co-op campaign matches and command markers: mission relay, allied masters, temporary flags 2026-11-04 20:07:06 +01:00
Richard Zink dc22e27184 Multiplayer continues after a player leaves: AI side takeover, background match while menus are open, match chat, five-tile fog start 2026-11-04 18:07:02 +01:00
Richard Zink 2721638910 Keep the pause menu when returning from the multiplayer page 2026-11-04 15:33:30 +01:00
Richard Zink 7ed630c6f2 Unlock summoning and spawn starting imps for every match master, with side-correct worker counting 2026-11-04 15:10:01 +01:00
Richard Zink eb11cca8cb Smooth camera and unit motion: display positions, camera target smoothing, pan speed setting 2026-11-04 13:56:11 +01:00
Richard Zink 583c3fcdaf Multiplayer client relay bridge and match lobby menu: WebSocket bridge, match lobby page, order relay, confirmed turns, checksums, chat, abort/resume 2026-11-04 12:47:34 +01:00
Richard Zink 848ab0f677 Match relay in the save/login service: WebSocket rooms, seats, ready, 100 ms turn confirmation and checksum relay 2026-11-04 11:48:09 +01:00
Richard Zink 42034b062b Match loop on the client side: orders go to the server, a confirmed turn steps the world five times, and a checksum of the shared state catches worlds that diverge 2026-11-04 11:07:24 +01:00
Richard Zink 87890adc53 Masters for a match: the four sides red, green, blue and yellow (side 4 gets its own owner), and start_masters gives every master his core and his starting area 2026-11-04 10:55:17 +01:00
Richard Zink 35ddfa134c Simulation runs in fixed steps of 1/50 s (50 steps a second) instead of 1/20 s, with at most twelve catch-up steps in one frame 2026-11-04 10:04:44 +01:00
Richard Zink dd4bb75b24 Game version in the menu: VERSION holds vYYYYMM-NNNNN, shown on the title screen and in the pause menu, tools/bump_version.py raises it with every change 2026-11-04 09:57:10 +01:00
Richard Zink 1ec7492189 Multiplayer step B: every player order is a command (dig, build, cast, hand, orders) and the simulation runs in fixed 50 ms steps, so single player and a match take the same path 2026-11-04 09:57:02 +01:00
Richard ZinkandClaude Opus 5.5 d6bcce3a76 Multiplayer plan: deterministic lockstep, steps A-F
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 08:34:55 +01:00
Richard ZinkandClaude Opus 5.5 ada14951c4 Crookfinger's voice: he babbles in a squeaky imp language in the rhythm of his hints, important messages and the mission briefings (can be switched off in the sound settings)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 08:25:31 +01:00
Richard ZinkandClaude Opus 5.5 776c9ad9de Digging orders reach into the fog: unexplored blocks are picked like walls and marked tiles glow dark yellow in the dark
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 08:20:17 +01:00
Richard ZinkandClaude Opus 5.5 2de0a1de8a Wilder maps: rivers of water and lava across free maps (neutral bridges), natural caverns until about a quarter of every map is open
- caverns in free play and the campaign (mission pieces, fortresses, islands, sealed caves and dwarf caves stay untouched)
- caverns sometimes hold a pool of water or lava, veins in their walls, rarely a small treasure or a creature in chains to free
- rivers keep away from the start; test: open share, liquids and a hero path to the core
- standalone file in play/ rebuilt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 08:15:34 +01:00
Richard ZinkandClaude Opus 5.5 51814b8ac8 Creature overview: a toolbar button opens the list of all creatures grouped by kind (level, mood, wage, job, health) with wages and mood in total; a click moves the camera there
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 08:02:29 +01:00
Richard ZinkandClaude Opus 5.5 bbab2b5a58 Bestiary pictures the right way up (PNG export writes rows bottom up)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:53:39 +01:00
Richard ZinkandClaude Opus 5.5 0606c1f994 Orders: attack (fighting creatures nearby go for an enemy or enemy tower) and guard (up to three creatures hold a room for two minutes); right click with an order tool cancels
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:52:03 +01:00
Richard ZinkandClaude Opus 5.5 b3583f5e7e README as a small game website in Crookfinger's voice; INSTALL.md, BESTIARY.md, playable standalone file
- README: logo, badges (Rust, WebAssembly, Claude Code, MIT), intro addressed to the master, features with screenshots, the household, how to play, licences and credits
- INSTALL.md: server, PWA, building, tests, savegame service and API, languages, how to refresh generated files
- BESTIARY.md generated from the game's data (tools/make_bestiary.py) with exported sprites and icons (docs/img, test export_doc_images)
- play/DungeonCraft.html: the whole game in one file to download and play offline

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:46:37 +01:00
Richard ZinkandClaude Opus 5.5 4ce2c2919e Three new heroes: giant, fairy spy, battle mage
- giant (from wave 6): slow and enormous, smashes doors three times as hard and wrecks traps by standing next to them
- fairy spy (from wave 3): flies, finds the dungeon's traps (marked with a glint) so the heroes wreck them, and heals heroes around it
- battle mage (from wave 4): throws fireballs with splash and blasts reinforced walls (steel resists him better)
- sprites, bestiary texts EN/DE, test: fairies find traps, giants wreck them

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:40:20 +01:00
Richard ZinkandClaude Opus 5.5 a58497e3a9 Five new rooms: prison, graveyard, guard post, arena, sacrifice altar; new creature: the revenant
- prison: captured heroes sit in cells apart from the torture chamber, do not defect and starve in time; the hand can move prisoners between cells and torture
- graveyard: the fallen are buried there; after a while some rise as revenants (undead: no food, no sleep, life drain from level 5)
- guard post: creatures hold the position and attack whatever comes into view
- arena: creatures spar in pairs for fast, free experience, at the cost of bruises
- sacrifice altar: creatures dropped on it are sacrificed; certain pairs bring a rare creature, otherwise a blessing (mood and mana)
- researched in the library, campaign unlocks, textures, furniture, texts EN/DE, bestiary

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:35:12 +01:00
Richard ZinkandClaude Opus 5.5 2c8db33a69 Creature personality: favourite rooms, hatreds and brawls, abilities learned with the level
- every kind loves one room (working there lifts the mood) and cannot stand certain other kinds; close by they sour each other's mood and now and then brawl (they stop at 30% health)
- learned abilities: imps dig faster, kobold dash, spider web, mage shadow step, ogre stomp, jailer shackle, priestess healing pulse, chainbreaker whirlwind, bat shriek, gargoyle stone form, owl volley, wyrm inferno, cogling bomb
- bestiary lists likes, hatreds and the ability (highlighted from its level on)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:25:47 +01:00
Richard ZinkandClaude Opus 5.5 240e89d9cb Fog of war: unexplored darkness until the dungeon's ground, creatures or towers come close
- explored tiles stay known (saved compactly as bits), enemies are only drawn while in sight; sight runs along open ground, walls block it
- unexplored tiles are black blocks; units, towers, torches, furniture, portals, gate and rival cores in the dark are hidden; minimap and tile info too
- the nearest portal is known from the start; the seer's eye opens a wide area for 20 seconds without remembering it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:18:55 +01:00
Richard ZinkandClaude Opus 5.5 7f4d5ca7b4 Eight new spells: seer's eye, cave-in, haste, stoneskin, gold rain, invisibility, plague, quake
- researched in the library (and unlocked in the campaign), in the spells menu with own icons and a radius under the pointer
- haste speeds up everything a creature does, stoneskin halves damage, invisible creatures are ignored by enemies and towers until they attack (drawn see-through), plague spreads among enemies, quake hurts and stuns enemies only, cave-in turns floor back into earth
- particles for every spell

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:07:52 +01:00
Richard ZinkandClaude Opus 5.5 a54316c86e Research in the library: rooms, spells, towers, traps and doors are discovered in a fixed order
- studying creatures collect research points (mages and owls best, higher levels faster); studying gives less mana than before
- free play starts with the basics; campaign missions know what their story allows and can research what the next four missions would bring
- research shown in the top bar; the library's info lists the current item and what comes next; locked tools say whether they can be researched

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:00:33 +01:00
Richard ZinkandClaude Opus 5.5 4f20223c93 Traps and doors made in a new forge room, installed by imps; new creature: the cogling
- forge room: creatures work there (coglings fastest), the work goes into the oldest planned trap or door; finished pieces wait as crates, imps carry and install them
- traps: spike pit, poison vent (cloud), fire jet, stone roller, alarm bell (calls creatures), rune mine (one big blast), frost glow (slows around it)
- doors: wood, iron, magic (hurls attackers back); own creatures pass, enemies smash them on their way; clicking a door with a door tool locks it for everybody
- new 'Traps' category in the toolbar, forge in the rooms; texts EN/DE, bestiary entries; atlas grown for new textures and icons
- tests: forge to installed trap, spikes hurt, doors lock and get smashed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 06:55:37 +01:00
Richard ZinkandClaude Opus 5.5 1696297ac3 Minimap view outline is cut at the map border instead of squeezing its corners; beds grow out of the floor while their creature sets them up
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 06:27:02 +01:00
Richard ZinkandClaude Opus 5.5 468fa03db9 Unit rings and shadows lie on bridge decks; beds appear only once their creature has set them up
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 06:17:22 +01:00
Richard ZinkandClaude Opus 5.5 80982b71f7 Particle effects: falling trails behind projectiles, exploding fireballs and cannonballs, arrows stuck in walls and floors
- projectiles get styles: arrows (shaft and fletching), cannonballs and fireballs fly in an arc, shadow, holy, arcane, rune and magic bolts with their own glow
- trails of embers, sparks, motes or smoke that drift down to the floor
- fireballs explode on the ground (flash, shock wave, embers, smoke, scorch mark), cannonballs burst into stones, dirt, sparks and smoke
- arrows stay stuck in walls (or glance off into the floor) for five minutes, at most 400; they drop out when the wall is dug away
- spells: lightning sprays sparks and scorches the floor, healing lifts green motes, level-ups and summoning rain sparkles; digging throws earth, gold pops coins
- particles are never saved and use their own random numbers

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 20:29:32 +01:00
Richard ZinkandClaude Opus 5.5 33b9879b4c Dark demonic dungeon towers, a beating crystal heart and demon gate portals
- own towers in black obsidian and dark iron with red glowing joints, bone spikes, skulls, chains; arrow spire with a ballista, hellmouth cannon with a demon-head barrel, dark spire with horns and a crystal; every level adds parts
- soul core: a crystal heart beating lub-dub (faster when hurt, cracked at low health) held by chains on an obsidian throne, veins with a pulse across the floor, rising embers
- portals: an arch of stone and bone with a skull and horns, a vertical vortex with runes and falling sparks; grey and dead until claimed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 20:18:50 +01:00
Richard ZinkandClaude Opus 5.5 90a05a86d8 Knight towers in bright limestone with dark blue shadows and royal blue wood and fittings (more contrast)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 20:03:32 +01:00
Richard ZinkandClaude Opus 5.5 f359671dac Title menu background: an endless battle at a bridge over an underground river
- dungeon creatures against knights, balanced reinforcements for the weaker side
- towers on both banks; heavy units go for them, destroyed towers are rebuilt after 25 s
- the camera slowly circles the bridge; battle sounds stay muted; the demo is never saved

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:51:35 +01:00
Richard ZinkandClaude Opus 5.5 d06ce2edb5 Units face eight directions and animate their actions
- five sprite views per kind and gear tier (front, front three-quarter, profile, back three-quarter, back), mirrored for the other three directions; chosen from the unit's facing and the camera
- units face where they walk, dig, repair or fight
- animations: imps stomp while claiming (squash on landing), swing while digging, hammer while repairing; lunges in combat, punches in training, nodding while eating, swaying while reading or praying, breathing when idle, leaning back with loads, lying in bed, chained creatures pulling at their chains, flyers flapping

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:41:09 +01:00
Richard ZinkandClaude Opus 5.5 1016ee5d6c Bestiary in the title and pause menu; attacks look bigger with the unit level
- tabs: creatures, humans (incl. cave dwarves), dungeon buildings and towers, ranks
- every unit at every level: sprite with gear, rank badge, health, attack, range, speed, wage or bounty, what attracts it
- Crookfinger's texts: loving about the creatures, disgusted about the humans (EN/DE)
- projectiles, hit sparks and splashes grow with the attacker's level, with halos from Lv 5 and glow at Lv 9+

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:32:18 +01:00
Richard ZinkandClaude Opus 5.5 9a9f04ae1f Dwarf caves in all modes: neutral dwarves guard a hoard and sometimes a rune chest; the rune forge tower; imps repair towers before claiming
- 1-4 cave slots by map size, 50% each (at least one); knight treasure caves only where a mission places them
- dwarves fight intruders near the cave, never chase far, heal at home, grow with distance and the player's army, never count for victory
- rune chest: one free rune forge tower (chain bolt to three more enemies), upgradeable for gold, sold once it comes back (next mission / free play at once), unbuilt ones carry over
- new tool (key N) shown in the tower menu while a rune tower can be built or upgraded

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:14:36 +01:00
Richard ZinkandClaude Opus 5.5 d92b45a0b8 Credit Claude Code: note at the top of the README, in CREDITS and the standalone file; pixel-art mark with link next to the licence on title and login screens
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 14:44:28 +01:00
Richard ZinkandClaude Opus 5.5 ea0623fbe3 Campaign of 30 missions: six against the rival masters Mossgrim and Lady Nightwell, islands, mana springs, sealed caves with chained creatures
- missions interleaved into one story (EN/DE), new epilogue, map sizes grow to 176x176
- islands in water or lava with treasure and/or a mana spring; rivers at least four tiles wide
- sealed caves with treasure and a chained creature that joins once the cave is claimed
- new goals: rival cores, mana springs, freed creatures
- rival messages name the masters; new progress key for the new mission order

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 14:36:45 +01:00
Richard ZinkandClaude Opus 5.5 dd16c684e5 Free game against rival dungeon masters (green, blue) and/or the humans
- One opponent on maps up to 128x128, two on bigger maps; with a chance of one in two one of
  them is the humans' gate instead of a rival master
- Simplified rival masters (rival.rs): own soul core and dungeon (lair, treasury to loot) that
  grows ring by ring, creatures appear and get stronger over time, guard the dungeon and attack
  in groups - the player, the other master or the humans' gate; a fallen core puts the master
  out and frees its ground
- The humans attack everybody: waves now and then march on a rival master
- Sides for units: all other sides are enemies; towers and contested ground follow them; the
  hand cannot pick up rival creatures; the flag next to a rival core attacks it
- Difficulty (easy / medium / hard) in the New Game dialog
- Colours: green and blue floors, cores, unit rings, minimap, HUD bars of the rival cores
- Victory in free games: every rival core and the gate (if any) destroyed
- Tests for setups, growth and attacks, elimination and victory, humans against rivals

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 14:11:23 +01:00