@GaucheArtist posted a video proving MMX3 was created by a B team with B team design philosophy, which has plunged my designer brain into lecture mode. So you want to learn about game collision? 1/8
The first thing to realize is collision boxes are not 1 size fits all. For your character to feel right, each box needs to be built for its explicit purpose. In other words, every 2D action character is the Vic Viper, when you get down to it. 2/8
The sprite is just paint on your character. Your character's actual physical form is these hit boxes - so they need to work for all its animations (early builds often just have rectangles running around. X here, for example, is a 1x2 unit rectangle man. Er, bot.) 3/8
But I'd like to think X's collision was set in stone after the perfection that was MMX. So this X3 issues likely spring from the Hornet's boxes. But it's not as simple as just applying what we learned from X. 4/8
In games where running into enemies causes damage, enemies have an Attack box at all times, unlike the player character. You might assume this should match the Def or World collisions - but it should not! 5/8
So what is the actual rule at work here? Are boxes big or small? Why can't I make up my mind? Simple - boxes should always be sized to give the player the advantage. Enemies must be easier to damage than the player character. ...why does this sound wrong, though? 6/8
The culprit: Fighting Games. When most players think about hitboxes, they're thinking fighting games. However, in these games there are no "enemies" - only players controlled by the CPU. No character in a fighter can have an advantage over the others. 7/8
If the only player is... the player, games feel better when it's cheating for their benefit. Attacks should narrowly miss the player, while grazing shots damage enemies. It's true - find a game where this isn't the case, and you will KNOW. That's the tweet. /fin
You can follow @Hypnocrite.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: