What changed in v5.5.0
A driver in the car — there's now a blocky, Minecraft-skinned character sitting at the wheel of every car (yours, split-screen player two, and the ghost cars of online joiners):
- Driver character — the car has a driver. The model is the classic Minecraft player shape (slim-arms option included) and you can pick from the shipped skins in the new Driver debug panel — or drive the default.
- Skin selector — the Driver panel has a skin picker, so you choose which skin the driver wears. One tuning config covers both local players.
- Head lean — the driver's head leans into your steering, smoothed, so it reads as a real driver looking where they're going rather than a stiff doll.
Color grading — the post-process system gained an independent Color LUT layer that grades the final frame on top of whatever the active shader produced (CRT or PixelArt Outline). It is always the last pass, so you can run CRT + LUT or Outline + LUT together. The new Color LUT group in the Post Process debug panel turns it on and lets you browse shipped LUTs (Neutral, DMG, Apple, Night and more), mark favourites, and blend between the original and fully graded frame. A larger audition library is available to dev builds via a boot flag for trying out hundreds more; the shipped set is the curated one that ships.
Tuning & debugging — smaller additions to the debug layer:
- Frame profiler — a new opt-in Performance Manager panel records where frame time goes (per-tick timings, ready timings, an exportable JSON report) and shows two live plots. Off by default; record a window from the panel or a boot flag. No effect on gameplay.
- Debug-UI toggle — the key/button that shows and hides the in-game debug
panels (
F1) now also binds O on keyboard and L3 on gamepad, so you don't need to reach for F1 on a pad. Still one global overlay — never per-player. - Finer sliders — the debug-panel sliders gained a 0.001-grain tier for sub-0.1 magnitudes, so small tuning values can be set precisely.
No other user-facing changes since v5.4.0; the rest of this release is internal/testing work.
What changed in v5.4.0
Track direction fixed — the car now spawns facing the correct way and drives every circuit the same way round:
- Spawn facing matches the track — the car's spawn yaw is now derived from the circuit's direction, so it always faces into the lap. Before, the spawn direction was computed separately from the track layout and the two could disagree, so on roughly half of all worlds the car spawned backwards and drove the circuit in reverse. Presets had the same bug silently (they always spawned at yaw 0 regardless of their circuit).
- One direction per circuit — a closed loop has no intrinsic direction, so a convention now pins it: circuits always travel the same way round relative to the start chunk's art (the grid slots and the start/finish edge line up). Every generated world and every hand-authored preset now agrees, instead of the previous coin-flip per seed.
No other user-facing changes since v5.3.0; the rest of this release is internal/testing work.
What changed in v5.3.0
Display, camera, and track dressing — three user-facing additions:
- Full-screen toggle — the Display debug panel now has a Full Screen switch that rides the engine's real fullscreen mode (no borderless hack). Full screen wins over the window-size pick; otherwise the window size + resize lock holds.
- More render-resolution options — the render-scale ladder gained intermediary and low presets, so you can dial the chunky pixel look from "barely" down to "very." A fixed pick now re-shapes to your screen's aspect (it pins the height and recomputes the width), so the world always fills the window instead of letterboxing — in full screen and windowed mode. The panel readout shows the effective resolution, not just the nominal 16:9 label.
- Follow Isometric camera — a sixth camera mode (cycle to it with C): the Third Person chase angle rendered orthographic, so you get the behind-the-car framing with Follow's flat isometric look and smoothed follow.
- Kerb blocks — new Kerb White and Kerb Color ramp-type blocks dress up track edges with raised, angled kerbs.
What changed in v5.2.6
Post-processing off by default — the pixel-art outline shader (and the CRT shader) are now disabled on a fresh boot:
- No shaders on startup —
PostProcessTuningnow defaults tooutline_enabled = false(CRT was already off). The world renders without any post-process pass until you turn one on in the Post Process debug panel. This gives a clean, unaltered image out of the box and avoids the outline reading too thick in half-height split panes before you've tuned it.
No other user-facing changes since v5.2.5.
What changed in v5.2.5
The game has a home — a retro arcade landing site is now live at
superdungeonracer.com:
- Landing site — a retro-styled landing page at the root (
/) with the manual, release notes, and live test results; PLAY links to the game at/play. A newsletter signup is wired (signups are logged as a fallback until a datastore is added). - Custom domain — the site is served at
superdungeonracer.com(apex +www) with auto HTTPS. The favicon is now the game's own icon. - Smaller web download — test/dev directories were excluded from the
exported
.pck, so the player download dropped from ~303 MB to ~220 MB with no game assets touched. - Security hardening — strict CSP on the first-party pages, security headers site-wide, rate-limited newsletter endpoint, and a canonical-host + HTTPS redirect so root-relative links always land on the working host.
No in-game changes since v5.2.4 — this release is the web home.
What changed in v5.2.4
Web build performance — the browser (WASM) build now generates chunks on worker threads:
- WASM threads enabled — the web export switched from the single-threaded
template to the threaded one (
SharedArrayBuffer), so chunk generation runs across worker threads instead of on the main thread. The browser build was struggling to keep up with chunk generation while driving; this spreads the work the same way the desktop build does. - Cross-origin isolation — threaded WASM requires the page to be
cross-origin isolated, so the hosted build now sends
Cross-Origin-Opener-Policy: same-originandCross-Origin-Embedder-Policy: require-corpon every response. No action needed if you play the hosted build; if you self-host, your static server must send those two headers or the game won't boot.
What changed in v5.2.3
Mobile-web support — the game now plays in a phone browser:
MobileWebsettings preset — a new shipped preset targets the phone-browser (WASM) build: it enables the on-screen touch pad on top of a low-cost 480p-window / 720p-render display profile. Distinct fromMobile, which stays reserved for native Android/iOS builds.- Debug-UI touch button — the on-screen pad gains a fourth row-3 button,
"UI", that toggles the entire ImGui debug layer on/off. It drives a new global
toggle_debug_uiaction (also bound to F1 on desktop) that is never player-prefixed, so the one shared overlay flips regardless of which player's pad it lives on. A touch device with no keyboard can now dismiss the debug panels. - Touch button font fix — button labels now use PixeloidSans. The geometric arrow glyphs (▲▼◀▶) are not in Godot's built-in fallback font and previously rendered as tofu boxes; PixeloidSans covers both the arrows and the ASCII labels (CAM/MAP/RSP/UI).
- Touch test coverage — a new automated test enables the pad, holds a real touch on the throttle button, and asserts the car reaches driving speed and travels.
What changed in v5.2.2
No user-facing changes since v5.2.1. This is an internal/testing patch:
- Custom boot splash — the game's own icon replaces the Godot Engine logo on startup.
- Boot diagnostics — every major system now logs an
initializing/startedbeacon on boot, and a version banner is logged to the console. The startup checks assert these so a silently-skipped system can't pass. - Test bridge — a
TestManagerautoload exposeswindow.sdr_testunder?test=1so automated tests can drive the game state (teleport the car, read telemetry) without simulating input. Inert in production. - Video recording — every automated test now records a
.webmvideo; the results viewer plays them inline. - Results viewer — new Review (single run) vs Compare (two runs) mode toggle.
What changed in v5.2.1
No user-facing changes since v5.2.0. This is a housekeeping release: the project's own build and release tooling was reorganised, with nothing in the game itself touched.
What changed in v5.2.0
Playable in a browser — you no longer need to download anything to try it:
- Web build — the game exports to a browser build and runs there, using the compatibility renderer. The pixel-art outline and CRT/VHS post-processing still work.
- Touch controls — on a touch device, on-screen controls appear: a steering pad on the left, throttle and brake on the right, a handbrake, and buttons for cycling the camera, expanding the map, and respawning. You can drive the whole game on a phone.
- Automated browser testing — every change is now driven through a real browser end to end (boot, drive, expand the map) with a results viewer that shows the runs side by side, so a broken web build gets caught before you ever see it.
What changed in v5.1.0
First showable alpha — the first version of the fifth rewrite I'd think to show to anyone outside my closest friends. Two features make it one:
- Named saves — save your world and come back to it. A save captures the world identity, where your car is, your quest progress, and a cache of every chunk you actually generated — so the terrain you drove through comes back exactly as you left it, even if world generation changes underneath it later. Saves are offline solo, and may still break between alpha versions.
- Settings presets — named presets (PC, TV, Handheld, Mobile, Empty) that override values across every tuning panel at once. Pick the one that matches your setup and the whole game retunes — display, camera, world streaming, audio — then fine-tune from there. Drop your own preset file in and it shows up as a button.
Everything before this release is groundwork; this is the first one that behaves like a game you can put down and pick back up.
What changed in v5.0.6
Something to do — until now the game had no goal at all. Now every circuit in the world carries one:
- Lap quests — each circuit has a quest: leave the start chunk, drive every part of the track, and come back. Complete it and it's marked done; cut the corner and it fails and immediately re-arms so you can try again.
- Named practices — each quest gets its own generated name from the world seed ("Practice <somewhere> — Restless Ravine"), so circuits become places you can refer to rather than anonymous loops.
- Quest tracking — the active quest shows at the top of the HUD, and a separate Quests window lists everything grouped by status. Quests arm lazily, the first time you actually drive into a circuit's area, so exploring far doesn't drag the whole world into memory.
- In-game log console — a toggleable window showing what the game is doing as it runs, with per-level filters. Useful when something looks wrong and you want to say what you saw.
What changed in v5.0.5
Bring a friend — the biggest release so far: the world stops being a single-player place.
- Local split screen — two players on one machine, top and bottom. Player one on the keyboard, player two on a gamepad (you can swap which is which). Each gets their own camera and their own HUD; music is shared, engine sound is per car.
- Online free-roam co-op — host or join a session and drive the same world together. The host's world seed and settings are sent to joiners, who rebuild the identical world on their own machine — so nothing but car positions crosses the network. Other players appear as ghost cars you can drive alongside.
- Recorder — capture video (with audio) or take screenshots straight from the game, upscaled cleanly so the pixel art stays sharp. Output lands in your recordings folder as timestamped files.
- Hold-to-expand minimap — hold M (or Square/X) and the minimap grows into a large map on the right of the screen; release and it snaps back.
- Gamepad remap and teleport — remappable pad bindings, and a debug action that teleports the car wherever you point it.
What changed in v5.0.4
One world — until now the game had two places: an open world you could explore, and a separate race scene holding the hand-built circuits. They have been merged:
- Everything is the open world — the circuits are no longer somewhere else. Every hand-authored track (Oval, Bertuol, Indy, Eight, Test) is pasted into the open world at the spawn point, so it sits in a biome, with terrain and roads around it, and you can simply drive away from it.
- Choose what you spawn on — the spawn track became a selection. Pick a hand-built circuit to start on, or leave it procedural and get a generated one from the world seed. Either way you land on a real circuit inside a real world.
This removes the last place in the game that wasn't the open world.
What changed in v5.0.3
Pick your font, pick your pixels — two presentation controls:
- HUD font picker — seven pixel fonts ship with the game and the HUD can use any of them, so the speed/rev readouts and the minimap panel match the look you want.
- Window Size + Render Scale — a new Display panel lets you set the window size and, separately, the resolution the world renders at. Drop the render scale and the world goes chunky and pixelated while the HUD stays crisp on top of it — the pixel-art look is now a dial, not a fixed choice.
What changed in v5.0.2
Biomes, roads and a HUD — the open world stops being a test bed and starts being somewhere to explore:
- Biome regions — the world is carved into irregular cells, each with its own biome and its own block palette, so terrain changes as you drive between them instead of being one texture everywhere. Circuits sit inside those regions like strongholds, waiting to be found.
- Roads you can follow — roads are built from the same chunk-tile vocabulary as the tracks (straights, turns, tees, crossroads), snapped to the biome boundaries, so leaving a circuit gives you something to drive along.
- In-game HUD — a proper heads-up display: speed and revs in the corners, position and the block under the car, and a live minimap that fills in as the world generates around you.
- PixelArt Outline — a second post-process look alongside CRT/VHS: crisp dark outlines around world geometry, giving the game a drawn, pixel-art feel. Pick which shader is active from the Post Process panel.
- Top View camera — a fifth mode: a high, zoomed-out overhead view that follows the car, useful for seeing the shape of a circuit or where the roads go.
- Crash sounds — the car now makes a noise when you hit something, with its own volume control.
- Better tuning panels — every numeric setting became a slider with
-/+steppers, sections collapse, and each panel shows a live readout — so live tuning stops being a wall of numbers.
What changed in v5.0.1
The world opens up — until now the track was the world. This release grows a landscape around it that keeps generating as you drive:
- An open world — terrain is generated from the world seed in stages: biomes first, then a heightfield of gentle hills, then the circuits themselves, which sit on flattened plateaus with ramps leading up to them. It generates lazily around the car, so driving in any direction produces more world rather than an edge.
- Roads between places — circuits are no longer isolated. Roads are planned between neighbouring regions, so there's something to follow when you leave a track.
- New block shapes — ramps at several angles, slabs and walls join the plain cubes, so the world can slope and step instead of only stacking.
- First Person camera — a fourth camera mode: a bumper cam that rides low at the front of the car and looks ahead down its heading. Cycle to it with C.
- Respawn — press R (or Share/Select on a pad) to put the car back at spawn when you've wedged yourself somewhere silly.
- New music.
What changed in v5.0.0
The beginning. Super Dungeon Racer has been rewritten from scratch five times; this is where the fifth one starts. The first commit is a single textured cube, a light and a camera. By the end of this stretch there is a blocky world, a handful of hand-built circuits, and a car with real physics to drive round them.
- A world made of blocks — the world is built from cubes with a different texture on each face, grouped into numbered block types with per-biome variants, so the same circuit can be laid down in a different biome and look like a different place. Blocks are stamped into the world through chunk-sized layouts rather than placed one at a time.
- Circuits to lap — several hand-authored tracks (Oval, Bertuol, Indy, Eight, and a test layout) assembled from a vocabulary of chunks: straights, rounded turns, a chicane, and a start/finish line. Your spawn is derived from the track itself, so every circuit puts you on the grid in the right place.
- Procedurally generated tracks — circuits can also be generated from a seed instead of hand-authored, and the world streams in around you a chunk at a time rather than being built all at once.
- A real car — the player went from a rolling ball, to a kart, to the current sim car: four independently suspended wheels, per-tire grip, a torque curve and an automatic gearbox, drag and downforce — tuned to feel kart-like rather than clinical. It has an engine sound that tracks the revs.
- Cameras — a free-fly spectator camera, an isometric camera that follows the car, and a chase camera that trails behind it. Press C to cycle. Gamepad (DualShock 4) works alongside keyboard, with analog steering and pedals.
- CRT/VHS look — an optional full-screen post-process pass with scanlines, noise, chromatic aberration, warp and vignette.
- Tweak everything live — an in-game debug layer exposes almost every tuning value in the game as a live control: car handling, camera, lighting, audio, post-processing. Change it while driving, and save what you like.