Hi, so I want to request a great addition to the engine (In my opinion). That is multiple masks to an object. I know that you can already have multiple masks to an object. Want I mean is those mask can be used individually. Like, I can have two mask to an object called âMask1â and âMask2â and I can check if âMask1â is colliding with another object and vice versa. So, for example if I want to check if a object is colliding with it from a specific side, I wonât have to do this:
I can just make masks that I can use instead of having to create objects on all sides.
The masks should have another option, that is to change if that mask should be included in the hitbox of the object. Like, if the hitbox option is opted in, it will be included in the hitbox. Otherwise, the mask would be abstract and can only be used to check the collision with another object.
The masks can have different names that can be used in a function to check the collision
the masks should have two options, Hitbox and collision mask
- A hitbox will be included in the objectâs hitbox
- A collision mask will be abstract and wonât be included in the objectâs hitbox
- Both types of mask can be used to check the collision
This can be helpful in many projects, like if you are making a car AI for your game and want to check if player is near the door, you would need to make a object attached to a point and check if that is colliding with the player. And it is another story of deleting that object when the car is deleted. Instead with this, you can just have a collision mask (that is abstract) at the door named âDoorâ and check if player is collision with mask called âDoorâ and you wonât need to worry about anything.
So, as a heads up, you can accomplish what youâre talking about right now by just making âhitboxâ objects (plain sprites shaped however you want, named hitbox whatever).
Then you add points to your main object where you want the hitboxâs upper left corner to be.
Then just set up events that change the hitbox objects to the MainObjectName.pointX(âpointnamehereâ)/Y() of the points.
That said, I think it could be useful for those to be easier, yes.
Yes, you can, and I am frequently doing it (That is what I am dong in the first picture). But, it is some what kind of a taped up work and the script to use it becomes very long very quick. And the game will start to lag after sometime. And I started to face issues when deleting the âhitbox objectsâ. I think making 4 objects for just 1 object is just an overkill. Adding something like that removes all the problems. But, that said, I donât know how easy it is to add something like this
HmmâŚnone of the issues youâre describing should occur, as 4 objects for 1 is only 5 objects total, which will not slow down any game unless youâre doing something thatâs causing some kind of endless loop.
I have some scenes right now with roughly 200-300 objects that are actively moving (not necessarily all visible on the camera) at the same time, and it runs fine on my PC as well as my Laptop.
Also, as far as I know objects are tracked using the same basic logic as hitboxes already, so if youâre experiencing these issues with 4 objects youâd have the same issues with 4 extra hitboxes.
Hmmm, you are right. What I meant was that it will cause more lag (When there is 100s of object) than have one object. Ah, at least the hitbox will not have to display a png.l But, if you hide the object, it also does not display one.
You could end up with lag, but really only if you get into the 1000s of objects range, and you really shouldnât need that many custom hitboxes for any current modern game type I can think of. (Edit: Remember, even though that you have objects, those hitboxes are only being used for collision detection. You shouldnât be manipulating them other than movement. Link them to the main object, and then just ensure you âtake into account all linked objectsâ when deleting the main object. This will reduce your number of events.)
Separately, hidden items still fully functions, they are just not displayed in the scene. They work fine for all collisions/events/etc.
You will need to have a sprite of some kind for the hitbox to work for collisions, though. Iâm not sure on the specifics, but the engine doesnât take âsprite objectsâ without a sprite into consideration for events, I believe.
Again, I want to reiterate that I donât think custom/named hitboxes is a bad idea. I just wanted to provide alternatives so that you didnât have to wait for it to be implemented to proceed with an idea you have that may need something similar.
It would make fighting games a lot more easier to make because I think itâs difficult to make hitbox objects follow an animation.
I did a quick search, it was asked here too: https://forum.gdevelop.io/t/2d-fighting-game-1/29346
To be clear, it is almost the exact same process to make these hitbox items follow an animation as it would be multi-hitboxes.
The only difference is you are updating Object points for each frame of animation on your object, rather than the object hitboxes. Even with this feature request, youâre still going to have to update the hitbox every frame, it wonât be automatic.
You would still only have 1 event that attaches the hitbox objects to your custom points. You wouldnât need separate events per frame of animation, or anything.