← Devlog
v0.4.13-pre-alpha

Ultraviolet v0.4.13-pre-alpha: seven versions, and a generator that rolls dice

The last build on this page was v0.4.6. Seven versions have happened since — so this one catches you up in a single pass, then gets into what this post is actually about: v0.4.13 changes how a mission is put together, and you will notice it in the first room.

What you missed, in one pass


v0.4.13 — the actual point of this post

Three things in one release, because they share one piece of data.

Enemies aren’t on fixed spots any more

Until now every arena had a handful of fixed markers and the enemies stood on them, so the same room always greeted you the same way. Now each room has spawn zones — stretches of floor and platform — and the game draws the exact spot from the map’s seed. A few rules keep it honest: nobody starts closer than ~120 px to a door you can actually come in through, enemies keep 36 px between each other, archers prefer a ledge, shield-bearers stay on the ground. About half of all enemies now stand on platforms, where before it was none.

On top of that, every room gets a threat level — empty, patrol, normal, heavy — including corridors:

Rooms: same shape, different look — and bigger

A room is now a shape (its doors and size) plus a variant (what’s inside). The generator lays out shapes first and then picks a look for each — six different decorations fit every standard room, so two rooms with identical doors can have different platforms. The crossroads keeps its own look.

Rooms also aren’t limited to one screen any more: there are now wide rooms (two shafts / two floor gaps), tall rooms (two floors) and a big 2×2 room, each with doors on every floor. And the boss can now be entered from the left-hand door of the previous room, which the old generator couldn’t lay out.

A map that tells you more

The minimap and the overview (hold Tab) now show:

WARNING: A mission-in-progress save from an older version is dropped — Continue takes you to the hub (your tattoos and souls are untouched; hub saves work normally). And the same seed now gives a different map than in older versions, so any seed you noted down is not the same map any more.


Controls

Same layout as before, with the additions from v0.4.9 and v0.4.10 marked.

ActionKeyboardPad (Xbox)
Move← / →left stick / d-pad
Jump (double)Space / EnterA
Wall-slide / wall-jumphold toward the wall in the air to slide · jump to kick offsame
Melee (3-hit combo)A — tapRB
Charged attack — lunging slash, ↑/↓ tilt it (v0.4.10)A — hold ≥ ~0.5 sRB — hold
Third-hit varianthold ↓ heavy · nothing = fast · ↑ = air launchersame
Stomp↓ + attack in the air · direction + ↓ + attack = diagonal (v0.4.9)same
Block / parryD — hold / tap just before the hitLT
Riposteautomatic — hit within 0.4 s of a parry, same enemysame
Dodge (dash, i-frames)Shift · ↑ + direction = diagonal, one per airtime (v0.4.9)LB
Shoot (8-way) — hold to open the aiming bar, ↑/↓ aim, release to fire (v0.4.10)SRT
ReloadR (auto on empty)Y
Interact / throw-outEX
Collect ash (hold ~1.5 s)Xclick the right stick (R3)
Look up / down↑ / ↓ held (standing still)same
Full map + overview (held)TabSelect
Pause / menuEscStart
Ledge grabautomatic; climb = jump / ↑, drop = ↓same
Debug console~ (backtick)—

How to run it

SystemFileNotes
Windowsultraviolet.exe (+ ultraviolet.pck beside it)SmartScreen may warn about an unsigned file — “More info” → “Run anyway”.
Linuxultraviolet.x86_64 (+ .pck beside it)chmod +x, then ./ultraviolet.x86_64.
macOSUltraviolet.appUnsigned: right-click → Open → confirm, or xattr -dr com.apple.quarantine Ultraviolet.app.

Quitting: Esc in the main menu closes the game. In a run, Esc opens the pause menu — quit or return to hub from there. Continue on the main menu resumes your last save.

The Linux build was smoke-tested on a Linux machine; I haven’t been able to run the Windows and macOS builds myself, so if one doesn’t start, that is worth a bug report.


Still pre-alpha — what’s not here


How to report feedback

The fastest path is the debug console: press ~, type report, and it drops a log + version/scene/seed/HP file straight into your file manager — drag that into a comment or a message. Include the seed (the report has it) and where on the map it happened.

BUG — what happened, where, how to reproduce, which platform. “I can’t get through this room” — which room (wide? tall?) and which door.

FEEL — the part I actually want to hear about:

Leave feedback in the comments under the game or this post.

Thanks for playing something that’s still mostly rectangles.

— SolarNine · v0.4.13-pre-alpha