Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Pretty fun. I got 2 out of 3 secrets.

In the final room, I'm not sure if having plenty of throwable items was intended to help or hinder, but I found they worked as shields for the enemies, so I ended up throwing them all out of the room except for one.

Yeah, they unintentionally ended up being frustrating. Part of the issue that that items prefer swapping over throwing. And the other part is that I couldn't find a way to allow the items to collide with other things but not with each other when using Godot colliders. (I just ended up not using colliders for some of the collision detection, but ran out of time.)

I've never used Godot myself, but not having the items collide with each other is actually something I have a decent idea how to do in Godot, as I had to unblock a friend learning Godot on that.

My understanding is that, for each type of item, you define a layer it pertains to, for example, walls on layer 1, enemies on layer 2, player on layer 3, bullets on layer 4, thrown items on layer 5, etc and then for each item you define the mask, which represents what it collides with, for example, you want your thrown item not to go through walls, to hit cancel bullets and to hit enemies, so you'd tick the mask on 1, 2 and 4 but you don't want it to hit the player throwing it itself or other items, so you don't tick 3 and 5.

Obviously, there may still be a need to differentiate the effect it has depending on what it interacts with. Like, a wall just stops it meanwhile a bullet or enemy makes it both stop and damage anything close by. I imagine one way to do it would be with a single node (if I remember the word correctly) and just checking the layer of the collider (or some other info) in the collision callback and having different effects based on that check. Another way to do that is to have 2 nodes, both with their own collider, one having a mask to interact with walls and one having a mask to interact with bullets and enemies and then each having different behaviours in the collision callback in their script. That second solution would typically be preferred if you work with non-programmers, as it allows more things to be done directly in the editor.

Of course, it's a game jam, so just going for the quickest thing you manage to get working is typically best. Last jam I participated in, I also ended up redoing collisions manually because it was faster than figuring out how Unity colliders were interpolated between frames and how to get them to behave how I wanted (between each frames, my objects were moving a lot relative to the origin of the world but not relative to each others, which led to very imprecise collisions before redoing my own collisions).

That's how I thought it should work but either it didn't or (more likely) I was suffering from jam-induced insanity. :P