Inspiration

We wanted to see if a genuinely atmospheric action-platformer could be built entirely in React without any game engine or external assets Games like Hollow Knight set the bar for what mood and world-building can feel like. We chased that feeling with procedural art and hand-crafted level design.

What it does

A 2D action-platformer set in a world that was once divine, now decaying. You play as a Veilwalker wh is a soul-bound wanderer who cannot die, only be pushed back through time. Fight through three cursed zones, each ruled by an ancient guardian, and uncover what sank the throne. Fluid combo combat with dodge, dash, and spell casting Soul Resonance: kill streaks amplify your damage Time Rewind: press R to revert 5 seconds into the past Phase-based boss fights, a full upgrade shop, and ability gating across zones

How we built it

The entire simulation runs in a requestAnimationFrame loop via a custom useGameLoop hook. All mutable game state lives in useRef to avoid React re-render overhead at 60fps. Only the HUD (HP, currency, boss bar) syncs to React state. Physics is AABB collision resolution. The camera is a spring-damper. The time-rewind mechanic uses a 300-frame ring buffer (~5 seconds at 60fps). Zero image assets with every pixel drawn procedurally.

Challenges we ran into

The main challenge we faced was involving creating a neat and vibrant background that had multiple layers and differentiated the regions. We also faced challenges in reload of weapons and abilities held by the player.

Accomplishments that we're proud of

A fully playable game with three zones, three bosses, and a progression arc with zero game engine dependencies The Soul Resonance and time-rewind systems both feel genuinely good to use Every visual including environments, bosses, particles is procedurally drawn at runtime

What we learned

React is a perfectly capable game host if you respect the ref/state boundary. Procedural art removes the asset pipeline entirely, which is a real freedom. Small, composable systems (particles, screen shake, hit-stop, damage numbers) stack naturally without coupling.

What's next for Veil Of The Sunken Throne

New maps Hardcore mode save file storage refinement

Share this project:

Updates