Godot 4.7 build

Naming In Progress

An endless-wave dungeon brawler, rebuilt from the browser original in Godot 4.7. Same arena, same numbers, same torchlit feel — with the lighting and the interface fixed. These are captures from the current build.

Game code
10,911 lines
Systems
10 modules
Tests
325 passing
Assets
31 models

Pick your two

Four heroes, two slots. The plaque on the left carries the numbers straight from the original's balance table — health, damage, speed — and the roster art is the same pixel chrome the game draws.

Title screen: the wordmark Naming In Progress above a knight standing on a lit stone dais, with a roster of four heroes at the left.
Title The dais is lit by the original's key, rim and fill lights — now corrected for the engine's colour space, so the stone reads as stone.

Knight

Melee

Shield up, steady blade. The all-rounder.

HP110
Dmg15
Spd6.2

Barbarian

Melee

Big axe, bigger swing. Slow but it lands like a mountain.

HP135
Dmg24
Spd5.7

Rogue

Melee

Two knives, no patience. Fastest hands in the dungeon.

HP90
Dmg11
Spd7.0

Mage

Blast

No sword. A bolt of raw arcane that bursts where you point.

HP85
Dmg18
Spd6.0

The room

The whole arena, built procedurally from the original's seeded generator — a 12 × 12 grid of floor tiles with a weighted variant mix, perimeter walls with pillars and a doorway, eight mounted torches with flickering lights, banners, spike traps, and a raised dais with a chest.

A wide view of the whole dungeon arena: a tiled stone floor scattered with rubble, spike traps, a raised dais and torchlit walls, with the HUD across the top and bottom.
Overview Every tile, prop and torch position comes out of the same mulberry32 stream the browser original uses, so the layout matches tile for tile.
A mage casting a frost blast into a group of skeletons, with spike pits and a torchlit wall behind.
Elemental The mage's bolt leaves a frost field. Element combinations drive the reaction system — frost into ember, shadow into arcane.
A knight faces a cluster of skeletons, two glowing red as they wind up an attack, on a torchlit stone floor.
Telegraphs Red windups mean a swing is coming. Three attackers wind up at once and the rest orbit rather than crowd.

Between the waves

Clear a wave and you choose one of three upgrades. Cards are rolled from the original's weighted table, and the frame colour tells you the tier before you read a word.

Upgrade screen: three cards labelled Frenzy, Keen Edge and Swift Swap, each with a tier label and a Take It button.
Upgrades Rare, common, common. The blue frame is the rare tier — the outline is the fastest read on the screen.

What's built

The port is functionally complete and running. Ten systems, each in its own module talking over a shared event bus, plus a test suite ported alongside the code.

World builderProcedural arena, walls, torches, props, hazards, dais636
PlayerMovement, attacks, dodge, sprint, hero swap, supers1,435
EnemiesFour skeleton types, wave spawning, AI states, telegraphs1,602
Combat FXSlash arcs, bursts, damage numbers, coin pickups, pools1,373
HUDHealth, momentum, party chips, wave banners, toasts, overlays1,646
Title screenHero select, 3D dais stage, roster, live stats1,156
Run flowWave curve, upgrades, death and retry, camera, input675
AudioBaked SFX, two music tracks, filters, tape-stop on death582
BalanceEvery tuning number, upgrade table, reaction rules502
UI themePixel-chrome frames, icons, sigils, three typefaces480

10,911 lines across 17 scripts, plus 4,259 lines of tests. Assets: 31 models, 37 audio files, 193 UI images.

Status

All 325 tests passing across 15,732 assertions, and the project boots with no warnings. The world layout is verified tile-for-tile against the browser original, and the character loading pipeline keeps every model at the same 1.9-unit scale with its equipment variants stripped at runtime. Lighting was the last real defect: every light in the port was two to five times too bright, because the two engines disagree about what a colour means — that is fixed, and it is why the stone finally looks like stone.