Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

I mean in GDevelop Yes, but in General, it still doesn't matter using range or collision box or even ray cast...etc it doesn't matter, all of them leads to the same mechanic/result, and in GDevelop range (distance), is the best option to avoid all the troubles I mentioned before, but if you want to go with collision box, sure go with it, check out the Special attacks in the template, they use Collision (hitbox) not distance/range, since they don't deal huge impact to performance, and won't cause any issues at all :)

(1 edit)

The main reason I brought it up is I had actually bought this template and the beat em up, (which also typically use  hit/hurtbox) was to see how you'd set up your boxes.  (I'd hoped to be able to just reuse them, if possible.)

However, your way does seem to be much simpler and easier.  Especially since I'm not planning on making any kind of competitive fighting game.  I don't even plan to have 2 player.  

So, your system actually gave me a different, and easier, way to do what I'm hoping to, which is great.

Now, if I was planning to do something multiplayer competitive (aside from Gdevelop likely not being the best engine to use) how would you get distance to work with things like high/low attack combos?  (Typically, you have at least 3 hurt boxes - head, upper, lower.  Delayed jump attacks, for example, can hit the low hurtbox even if an upper block is active. ) 

How would a character who uses long range normals, (like Dhalsim from Street Fighter), work with range checks?  Not for his own attacks, that's easy, but for getting hit?  His hurtbox extends along his arm/leg when they're extended so you can either avoid or i-frame past his hitbox and counterhit.

I'm guessing you could probably do i-frames with a "cannotbehit" variable and priority could probably be handled with a "priority" variable that gets compared between two attacks, though I'm not sure how precise that would be.

Just to be clear, I'm not dissatisfied with your templates, it has a simpler method of doing something I wanted to do anyway and it very well set up and easy to follow.  I like it and I've already begun making modifications (like making  Mr. AI way less oppressive by increasing his random chances from 1-11 to 1-100 making him less likely to cling to you like a leech and bomb you non stop, though he's still far too aggressive, but that's fixable.) But I just tend to forward think, (probably too much) and I'm curious what your solutions to some of these issues would be, even if it's "Gdevelop just can't handle that level of complexity just yet".

how would you get distance to work with things like high/low attack combos?  (Typically, you have at least 3 hurt boxes - head, upper, lower.  Delayed jump attacks, for example, can hit the low hurtbox even if an upper block is active. )

By checking both players animations, for example: Player is Stand Blocking (high block) and AI is doing crouch attack (kick for example), we check if AI distance is close enough to do damage the player from the low kick, then we check the player animation/status, if he is High blocking, we allow the AI to damage the player, if the player is doing Low block, we block the AI attack.

How would a character who uses long range normals, (like Dhalsim from Street Fighter), work with range checks?  Not for his own attacks, that's easy, but for getting hit?  His hurtbox extends along his arm/leg when they're extended so you can either avoid or i-frame past his hitbox and counterhit.
By using the distance again, but this time you don't check the distance between the Long range character body and the other player, this time we put a point on that long range character arm, and then we check the distance between the player and the Long range character arm/leg...etc, if the point is close enough player can damage the opponent, otherwise no.


Glad you like my templates <3

GDevelop can handle everything in my opinion :3
You just need to think of a way to do it, and there are always many ways 😉

Good luck in your Project ! 💪