This is the first public, playable build of Ultraviolet. One test level, the full movement and combat kit, none of the final presentation. A run takes about 5–15 minutes. The point of this build is to check one thing: does it play well.
What the game is about
Wrocław, present day. Under the wet asphalt and the neon there’s a war older than the world, and the city has no idea. You play a hunter in the service of an order that has spent seven hundred years doing what nobody officially acknowledges: hunting fallen angels. You have a katana, a revolver, and skin covered in holy scripture.
The end goal for Ultraviolet is a 2D action rogue-lite — neon-noir, permanent between-run progression tattooed onto the hunter’s body, single-use relics for one mission each. Combat is a platformer with a fighting game’s soul: blocks, parries, combos, dashes with i-frames.
For now what you get out of that is the combat core and one corridor to clear.
What’s in this build
- Melee (katana) — 3-hit combo with three variants of the third hit (heavy finisher with knockback / fast cheap hit / launcher that pops the enemy into the air), a charged attack, camera shake on the stronger hits.
- Revolver — 6 rounds, reload, 8-directional fire.
- Block / parry / guard break — blocking costs stamina; a parry lands in a narrow window just before the hit and staggers the enemy.
- Dash as dodge — invulnerable for its duration, passes through enemies.
- Ledge grab — jump toward the edge of a platform and the character catches it and pulls up (stamina cost) — forgives missed jumps.
- Resonance — the purple bar in the HUD. The katana charges it, the revolver spends it. With no resonance a shot barely scratches; with a full bar it hurts. The bar decays while you stand still.
- Enemy poise + execution — parries and hits into a block chip away the white bar above an enemy. At zero the enemy staggers → walk up, E → the enemy is gone and a big chunk of resonance comes back. You can also just cut them down normally.
- 5 relics — single-use modifiers for one mission, each changes the rules and each has a downside (stronger shots at the cost of your combo, healing on executions, a second chance after death, a lethal first shot with a long jam afterwards, time-slow on a parry).
- 15 enemies in 3 types, told apart by color: red — melee, yellow — ranged, blue — blocks your attacks.
- Test level — a 6-zone corridor running left to right: warm-up → platforming with a dash gap → melee pocket → ranged pocket → arena with a lethal pit → finale. Exit portal at the end.
- Hub — a small room with a reliquary and a portal. The “hub → mission → hub” loop is still just a skeleton.
Controls
| Action | Key |
|---|---|
| Move | ← / → |
| Jump (double — second one mid-air) | Space / Enter |
| Melee (combo) | A — tap |
| Charged attack | A — hold ≥ ~0.5 s, release |
| Third-hit variant | hold ↓ = heavy · nothing = fast · ↑ = air launcher |
| Block | D — hold |
| Parry | D — press just before the hit lands |
| Dodge (dash, invulnerable) | Shift |
| Shoot (8-directional) | S — direction = held arrows |
| Reload | R (auto on an empty magazine) |
| Interact / throw out an enemy | E |
| Ledge grab | automatic; climb up = jump / ↑, drop = ↓ |
A gamepad works (full Xbox / PS mapping), but the keyboard is enough.
How to run it
| System | File | Notes |
|---|---|---|
| Windows | ultraviolet.exe (+ ultraviolet.pck next to it) | SmartScreen may warn about an unsigned file — “More info” → “Run anyway”. |
| Linux | ultraviolet.x86_64 (+ .pck next to it) | chmod +x, then ./ultraviolet.x86_64. |
| macOS | ultraviolet.app | Unsigned: right-click → Open → confirm. |
Quitting: Esc in the main menu (careful — Esc in the menu closes the game), Alt+F4, or close the window.
This is pre-alpha — what’s not here
- The art is placeholder. Colored rectangles; the player and enemies are “stick figures made of rectangles”. The real art is still being made.
- There’s almost no sound — just random music on the level, zero SFX.
- One test level — a sandbox for checking mechanics, not a real stage. The hub is an empty room.
- Balance is untuned — damage, costs, enemy HP, and prices are all temporary.
- No saving, no death screen, no attempt counter. The “Options” menu is a stub.
- The hub camera can show a sliver past the wall at the edges.
Death or falling into the pit = back to the hub, run reset.
What’s next — v0.2: tattoos
The next big thing is the tattoo system — permanent progression between runs (relics vanish after one mission, tattoos stay):
- 6 slots = 6 spots on the body, 1 tattoo per slot.
- You earn marks from boss souls — 1 soul = 1 inked tattoo.
- Every tattoo is a rule change, not a “+5 to strength” — a different combo window, a hot first shot after reloading, a cheaper dash.
- The hunter works in a suit, so you read your build on the tattoo screen, not on the character in-game.
- The body can’t be expanded — every new verse takes up space.
There are no tattoos in v0.1.0-pre-alpha.
How to report feedback
Two kinds matter:
BUG — something doesn’t work, or works wrong. Tell me: what happened, where (menu / hub / which level zone), how to reproduce it, which platform, and if you can — a screenshot or a clip.
FEEL — it works, but how does it play? Too strong / too weak / too slow / unfair? Was something unclear? What was missing? This is what I most want to hear about:
- the revolver in the first seconds of a fight (before you’ve charged resonance) — useless, or fine?
- dash-as-dodge — too strong (trivializes the fight) or too rare?
- the dash gaps in the level — fair?
- fights against 3–4 enemies at once — a puzzle or an overload?
- poise and the throw-out — does it happen often enough to be a real option?
- jump and gravity — after tuning: fine, too floaty, too heavy?
Leave feedback in the comments under the game or under this post. Testers with the full guide have a detailed checklist there (43 points + a Feel section) — you don’t need to do it all at once, even a partial run helps.
Thanks for playing something that’s still in rectangles.
— SolarNine · v0.1.0-pre-alpha