Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

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