Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit) (+3)

I know how it is to be a game dev on a deadline and have ideas of how to expand on a project, how it can be fixed or added to, etc. So please understand if I mention things you already want to fix or add.

0) The alternate skin from walking to the left on the first screen is a nice touch

1) From the tutorial, it seems like the player's exact location ends in relation to the block you hook, but it can vary. You can either end up on the side of it, or buried inside it entirely. I wonder if would help to change the collision code to have the player look for blocks a step ahead of their movement (something like "var inst = instance_place(x+x_movement,y+y_movement, obj_block; if instance_exists(inst) then..." and move the player as close to the centre of the block as possible without overlapping, then stop the horizontal movement)

1a) Hooking a block above you and breaking it with the jump button, to be able to pass through the gap you made, is a great idea. However the player often isn't aligned close to the centre of the block, and will bump their head on a block adjacent to the one that was destroyed instead. It would be a good idea to lerp the player's x position to the block's x position, or y for y position

2) You already have varying jump heights and a good walljump that allows for neutral jumps to bounce away from the wall, the general plaforming movement feels nice. I didn't have any issue with the keyboard controls, but that's because I'm right-handed and used to playing games with Z, X, C etc binded to controls

2a) Would being able to throw the hook diagonally (walking forward and holding up while hitting Z) break the level design?

2b) Not being killed instantly by the ceiling of the room is a nice concession to the player

3) A pause state might seem counterproductive to a game with a time limit, but it would help if the player is caught unawares by IRL matters or wants to take notes on the controls and features

4) I'm not sure of the reason behind it, but occasionally the floating heart's hitbox seems to change and make it impossible to collect unless you approach it from the right side. The graphic itself normally represents the area you need to overlap to collect it, but in these cases it isn't affected that way

5) I was hit by a fishbowl enemy while trying to hook through two rows of blocks below where I was standing. I believe I tried to mash the hook button, and then the game crashed. The hook graphic was visible but the chain and the player weren't (probably due to the temp invincibility).

FATAL ERROR in action number 1 of  Step Event0 for object obj_aGrabber:
Unable to find any instance for object index '106872' name '<undefined>' at gml_Object_obj_aGrabber_Step_0
stack frame is
gml_Object_obj_aGrabber_Step_0 (line -1)

Overall though it's been a fun experience and it's a good start for a game. It sounds like you already have a bunch of ideas for keeping future gameplay loops fresh, but I'll make some suggestions anyways. Penalty icons that handicap the player (inability to jump, extra enemies spawn in, ice terrain, spikes appearing, etc etc) in exchange for a points multiplier. A 'custom settings' option on the pre-game screen that allows the player to change some settings (toggling some penalties to last the whole game or rarely/never appear, reducing/increasing the speed of moving walls, reducing/increasing enemy rate, removing "!" icons, etc) that will in turn add onto or remove from the base points total the player earns through the next game. A competitive co-operative multiplayer where the players can sabotage each other to keep the highest points total before the clock runs down.

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;