I did it!
made-it.PNG
First of all, this is *awesome* - It's especially incredible that this is your first Ludum Dare! You should be extremely proud of what you built. I've got a lot of feedback, but that's because the game is already extremely high quality, and the little details are what would really bring it over the top
In addition to being awesome, this was also *brutally* hard lol - It took me about an hour and a half to beat, and I love tough-as-nails platformers
Other folks have already discussed the controls, so I'll just echo that I unfortunately never got used to them - I'm not sure if it's because I'm using a US QWERTY keyboard, but trying to use the arrow keys, L, M, and Space was extremely awkward, as was WASD, L, M and Space. I ended up using WASD, Space, and the right mouse button, while *always* holding down the left mouse button, and this was the only way that I get past the more difficult challenges.
In terms of visuals, I loved the parallax effect in the intro area, and the sprites all individually look very good! My only feedback is that it would feel more cohesive if sprites were drawn with a uniform pixel scale. It was strange seeing background elements with huge pixels alongside foreground elements with tiny pixels, and it was especially noticeable when one element would have differently sized pixels inside of it - One example is this small tuft of background grass - If pixels were all the same scale, everything should be lined up on a 1x1 grid, but somehow things get offset by quarter pixels throughout the grass tuft:
pixel-grid.png
Were you drawing your art in such a way that one pixel in your program of choice didn't represent one pixel of the finished sprite? Generally, the easiest way to create pixel art is to draw at a 1:1 scale, and then upscale it with nearest-neighbor interpolation by 1x, 2x, 3x, etc to fit your target resolution. That will easily give you consistently sized pixels, and sticking to whole number scales will avoid any artifacts from upscaling :)
In terms of level design, there were some challenges that felt great to clear, and others that felt very frustrating - The best challenges were the ones where death was an opportunity for learning, and where nailing the challenge rewarded me with some really fluid platforming to enjoy. The most frustrating challenges were the ones where I had to thread an incredibly tiny needle, and had to very slowly and precisely set up each attempt.
unfun-challenge.PNG
The above area is an example of that second type of challenge. I was banging my head against the ceiling again and again trying to hit the finicky wall jump to get through this gap, and it was really unclear *why* the game was asking me to do this. It wasn't particularly fun movement, and there wasn't an interesting puzzle to solve; it just felt like precision for the sake of making things harder on the player. Whenever you create a challenge, it's best to think about the experience you want the player to have, and build the challenge to provide that feeling. :)
Finally, I did run into one physics bug that unfortunately *really* negatively impacted the game feel: Physics seem to be nondeterministic, and the same inputs can produce drastically different results. This was particularly frustrating to discover at one of the last sections of the game, where I could only make the last dash *sometimes*. I suspect that the issue is that you're updating the player's velocity (or a timer for dash length) during update, but you need to be doing physics calculations like that during fixedUpdate or they will be unstable. The below gif shows what I mean:
dash-height.gif
Overall though, this is a *very* impressive game - Please don't take this as me disliking the game in any way! It was awesome, and you're already crushing it. I wanted to provide so much feedback because I spent so long with the game! Great job, and very well done!