Thank you so much ! It means a lot ! I always love speedrun so I try to always make my game speedrun friendly. I'm working right now, but i'll definitely record a run myself to see the difference. I'm actually still not sure about the best route yet so i'm curious about what you did. Even if it took me 8 years too I think. I need to redo it to make sure of that. Although 8 years when you designed the level is one thing, but well done for doing so fast !
Got it down to 2:03.91 in 7 years now, and I'm still working on the route so it should go lower.
The main thing I wanted to ask you about is categories. My run is completely optimised for the in game clock, that's the number I'm trying to minimise. But because of that I keep going up in years, since dying is really cheap on that timer. I went from 5 years to 7 and the time dropped by over a minute. Two of my lives now are just spawn and die. So a real time run, or a least deaths run, would look nothing like what I'm doing. Do you think there should be separate categories for those? Right now it's not really clear what the record even means.
There's also something about the timer I wanted to tell you about. I noticed in game that the life where you blow up the wall doesn't seem to get counted, so I went and looked into the code, and the clock only gets saved when you die. The explosion sends you to the year screen without going through that, so all the time in that life just gets erased. Not sure if that was intentional. I actually really like it for routing, it makes that whole life free, but it does mean the in game time and the real time can end up very far apart. 
Ah! really interesting for the death on the explosion, I included the speedrun at the end just before release so of course there is some bugs like this ! :). It should definitely count and it will in the future when I can change the code. Even if this is also what I like in speedrun on half life or stuff like this. Anyway, for the categories, I'm not sure I should do anything about it. I think just making the timer constant and the lowest time count. Because trying to find some arbitrary rules with a score system and stuff seems out of place for a game like this it feels. In your first video, it was the route I was doing, but with the explosion bug, i'm sure there is better things to do. What do you use at the end to see the route like this 😮. Thanks for sharing all this. I wonder also how you die so fast the 2 and 3rd life ?
Just to say up front, I hope you don't mind that I went digging through the game's code. It's purely for analysis and route planning. Everything I changed is in a local copy on my machine for logging and measuring, I'm not touching your build or redistributing anything. If you'd rather I didn't poke around in there, just say so and I'll drop it.
On the categories, that makes sense, one timer and lowest time is the cleanest thing for a jam game. Worth knowing though that once the explosion life counts, the route changes completely. Right now that life is worth about a minute to me, because I dump all the slow ferrying into it and none of it shows up on the clock. So my current run would be a lot slower under a fixed timer.
For the fast deaths, it's two things in your own code. K calls die(), and die() first waits for the player to land, it checks is_on_floor() and velocity.length() < 5.0, with a 2 second cap. So if you press K while you are in the air or sliding, you sit there for up to 2 seconds doing nothing. Press it standing completely still on the ground and it fires immediately. Then the 6 second corpse animation is skippable with jump, but only when next_dead_id > 0, so only once you already have at least one corpse (note that water deaths and the wall explosion don't leave a corpse, so neither of them unlocks the skip either). That means your very first death always costs the full 6 seconds and every one after that can be mashed through with space. Put those together and a throwaway life is about 3.5 seconds of real time and roughly 0.3 seconds on the in game clock, which is why buying years is so cheap.
For the route view, I unpacked the .pck and ran the project in Godot directly. I added an autoload that writes one CSV row every physics frame with position, velocity, state, which keys are held, the year and both timers. The map is not a screenshot, it's rendered from game.tscn by walking every CollisionShape2D, so it's the real collision. Then one script draws the logged path over it with a colour per life, and another renders it as a video with a trail that stays behind so it ends on the full route.
The same setup also draws every collision and trigger box live in game, plus a free camera so I can check whether a route exists before wasting lives on it.
Happy to send you the logging and drawing scripts if you want them, they're generic enough to drop into any Godot project and might be handy when you go back to the timer.
I'll keep the actual route and the other glitches I found to myself for now, mainly because I'm still improving it. But honestly I'd love it if you left them in. Half the fun of routing this game is finding that stuff, and without them there's a lot less to work with, so please don't patch them yet :)
I mean it's weird to know you can just see my code like this and it is interesting to note this for futur stuff i'll be doing easy it is to do this. I'm not sure I like it, but I'm not sure I mind it either. I'd rather learn from this :D
My code is wrong on so many levels since it's for a jam. I'd rather have someone look into a better project ahah.
Ah I forgot I added the skippable death after the first one. I knew the animation was kinda long so that is why. The death check is so poorly implemented it was just to avoid having corpse floating in the air if you're on a ladder (but it still happens since you can jump after the death *facepalm*)
Super smart and interesting to see how you did a run visualizer that fast. I was sure you were using the real collisionshape as i did them so irregularly on the different areas.
For the glitches, I won't try not to patch them so keep them for you. But since it's a prototype, if I rework on the project, obviously a lot of stuff will be changing. But i'll always let the jam build and I hope the new one will be more fun to speedrun (and still with a lot of exploits for sure). And I'm not planning on doing anything so soon, you got time :D
Thanks again for all the feedback and inputs !
Congrats on the results! Narrative at #88 out of 10.5k entries is seriously impressive, and it deserved it. Solid scores right across the board too.
Here is my final run:
1:46.49 in 7 years, down from the 3:14 I posted when I first commented. The last 40 seconds of the video is the route i could come up with
Worth repeating that this is on the current build with the explosion life not counting, so it will not be comparable to whatever times look like once you fix the timer. If you do rework the project I would happily route the new version too. :)
Thanks for making something worth spending this much time on!!!
Thanks a lot. Such a cool run and finds ! The jump to get the torch and the wall jumps in the caves. Good job ! Thank a lot for the time you spent on this, and the feedback all along ! I completely redid the controller. So I'm hoping doing release just to have a cleaner experience if someone try it in the future. We'll see where it goes !