Thank you so much for taking your time to make a really indepth review. It's very appreciative! Lemme comment on all the things you listed...
0) He's sort of my mascot! He's been hidden in all my gamejams thus far haha
1) The hooking system is very buggy so unfortunately I never figured out why the player actually gets pushed inside of blocks sometimes. This bug also extends to a problem you explained in a later issue, so it's something I'll definitely try to figure out. However, some of the issue may be due to the player's hitbox size. By default the blocks are 16x16, and the player's sprite is a whopping 24px high. I ended up making the mask of the player much smaller than what it visually looks like, and as such about 10px from the top, (the majority of his head), actually clips into blocks visually.
1a) After discussion with some friends, I definitely plan to switch how hooking works and making it align to a block instead. At the moment, the hook will hook itself to a block and stay at the offset it was hooked at, but in the end this concept did not work well with the block-based gameplay the game has. Thank you for your feedback on this! It helped me make the decision to switch.
2) Thank you! I'm used to keyboard controls like that as well because of how I grew up. I normally add some form of keybind system in my gamejam games, but time really took the toll this time.
2a) Diagonal hooking was actually implemented at one point! I ended up removing it though after playtests showed that it's very hard to hook upwards when you're moving, and because of the verticality of the game I decided to favor the 4-way hooking.
3) A pause screen will be added soon! I realize that a long game that could potentially go on forever should have a way to take a small break.
4) This one is a HUGE issue, because I actually have no idea why or how the heart's hitbox actually changes! There's no code related to it changing a hitbox at all, nor anything that makes it drawn at a different offset. I believe this may be due to it trying to reach a location outside of the room, (since it always locks onto a block to follow), but otherwise I'm lost as to why this happens.
5) Thank you for the bug log! I believe I forgot to make a case for the hook making sure the player exists before executing code related to it. I'll fix that soon :)
I really love the suggestions you made! I do have a lot planned, and your suggestions are really nice to think about adding as well since it feels like it'd fit right into my game due to the arcade nature it has.
A form of local multiplayer will be added soon! The code actually exists in the game already, but I disabled it since I couldn't balance the game well between 2 players cooperatively.
Again, thanks for your very well-written feedback. It makes me really happy ;o;