Solve creative platforming puzzles as you guide a wayward hollow through the shadow of death.

Collect all the chalices to show your skill, though finishing is achievement enough!


- Try and keep your soul and body on screen at the same time to avoid unnatural death

- The levels can crush you if you're not careful! (You'll see what I mean)

- There are 10 levels total, runtime should be 5-10 mins

- If you're stuck, try moving your soul around!


- Movement: WASD / Arrow Keys

- Reclaim Soul: Ctrl Key

- Control Soul: Shift Key (toggles on hold)

PlatformsWindows, HTML5
Rated 4.6 out of 5 stars
(37 total ratings)
AuthorUppon Hill
Made withGodot
TagsLudum Dare 54
LinksLudum Dare


Download NowName your own price

Click download now to get access to the following files: 26 MB
Version 17


Log in with to leave a comment.

I don't know if I beat the last level the right way but at least I got it XD

10/10 trophies and 10/10 mechanic. Bravo!

i like this game

Hey! I'd just like to ask how it is that you map the animation frames of the jump to the vertical velocity, since I'd like to do the same in my games. Thank you in advance!


You've pretty much just described it. I have a function called Map() which basically lerps a value from one range (max velocity, min velocity) to the sprites in a list (0, sprites.count). Velocity goes in, animation frame index comes out.

The Map function code looks like this

public float Map(float value, float istart, float istop, float ostart, float ostop) {
     return ostart + (ostop - ostart) * ((value - istart) / (istop - istart)); 

Ah, I see! Since asking the question I had found a video of yours where you explain that function, and I’m quite grateful that you do, but the reason I’m asking here, with this game specifically, is because it’s made in Godot. 

You see, I’ve been trying to replicate that in a way that is clean and unmessy, but the only way I could get close was mapping the velocity to a seek time in the animation player. 

If it’s not too much trouble, could you tell me which method you’ve used to make the sprite list? Furthermore, how do you control which one is being shown at the mapped velocity(which node is actually doing the showing of the frames)?

I see I’ve written quite the reply, I thank you for your time and patience in advance. 

I want to try it out but i cant get the web versoin to work :/

Hi. I had the same problem where the web version on the page did not load. The game loaded, however, when right-clicking the game and selecting "This Frame -> Open Frame in New Tab" when using firefox.

Had a good time with the game! Love the atmosphere <3 Just struggled a bit with the controls of the flame :D

Played. Great concept.

Awesome Concept!


Fantastic game, executed well. Some of the puzzles were frustrating, not unfair but just annoying where the screen would reset unexpectedly. I had a lot of fun with it though, the art is great and the mechanic is definitely fun.

(1 edit)

This was a very fun and tricky to learn game! Just wanted to share my play thru :) Great retro aesthetic with the mood colors too. Thanks to the dev for making this!

great concept and great execution!

left me kinda hungering for more (which is not a bad this in this case!)

and of course, your art is wonderful as always.

Cool concept!

Super cool concept. I loved the dark fantasy vibes.

that was a pretty cool idea and used really well, nice job mate!

that was verry fun , loved to collect all the calise , good job on making that game :D

Very clever game. Cool and simple design. It was great.

Nice game. It was fun and simple.

All chalices obtained! This was fun and the aesthetic was really well done.

Lots of fun to play, but even more fun to watch all the effort over the course of the weekend. Thanks for streaming and good luck!

Super nice animations and the concept is really awesome. You did a good job coming up with such diverse level design in such a short amount of time! Excellent work!!