Posted February 18, 2016
dtgreene: Modern bullet hell shooters look like they have bad hit detection; it is not unusual for bullets to pass through the player's sprite. The thing is, it's quite intentional, and it is one of the reasons those games are manageable in the first place. So, the hit detection might look bad, but it's actually a very intentional design choice that works well.
In the original Super Mario Bros., only the very bottom of a piranha plant is deadly. It is quite easy to jump through a piranha plant without getting hit, and it's a common strategy in speedruns. Note that this was changed in the All-Stars version.
The easiest way to make the game feel like it has poor hit detection is to design the hit boxes so that they don't favor the player. On the other hand, if the hit boxes favor the player, the game will be significantly less frustrating, and it will feel like the hit detection is very good, even if it actually isn't.
Modern computers are so fast that there's no particularly good reason to just rely on bounding box collisions alone. Instead, that should be used as a maybe/no cheap detection and if the result is "no", move on, but if it is "maybe", then do a more in depth test either at the pixel level or with smaller bounding boxes. No need to make close calls favour neither the player nor the AI, just do proper collision detection where it is actually a real hit or it is a complete miss. Of course if a developer is purposefully going for that "retro" style and intentionally resorting to poor collision detection as per a particular era, then that is an intentional artistic choice but personally I'd find such a choice to be more annoying than to value the artistic value of it. In the original Super Mario Bros., only the very bottom of a piranha plant is deadly. It is quite easy to jump through a piranha plant without getting hit, and it's a common strategy in speedruns. Note that this was changed in the All-Stars version.
The easiest way to make the game feel like it has poor hit detection is to design the hit boxes so that they don't favor the player. On the other hand, if the hit boxes favor the player, the game will be significantly less frustrating, and it will feel like the hit detection is very good, even if it actually isn't.
Funny enough though, 20+ years into 3D games and nobody has yet to make a 3D engine that totally gives believable collision detection across the board. Some are quite good at giving a reasonable illusion of it, but every game has noticeable CD flaws if you look for them. It's bad enough that in some games you can break the game engine and walk through walls and stuff due to bad collision detection. *cough* Skyrim *cough* :)