Let’s play a little game. Which of these following statements have you caught yourself saying when dying in an action game?
(A) Oh come on! That bullet was nowhere near me! This sucks! (B) Oh come on! My attack phased right through him! This sucks! © Oh come on! That bullet should have killed me! This sucks!
I’m willing to bet that you’ve never said ©. And the reason for that is obvious: We play games to have fun, and losing isn’t fun. If we somehow survive by the skin of our teeth, even though we were sure we’d die that time, then we are glad. We laugh, say “oh crap, that was close!” and continue playing. We don’t start yelling about bad hit detection or complain that now we won’t have to start the level over from the beginning. We want to have fun, and are happy that the game seems to have turned a blind eye so that we can keep having fun.
As gamedevs we can make taht happen. Can make game more enjoyable, make it turn blind eye. One of most important and powerful thing to have is good hitboxes.
Good hitboxes != pixel perfect. Seems weird, good to be precise right? But two reasons why not true. First, very performance intensive. barely any game uses that. AABB lot easier and efficient. second and more important: precise collision can be frustrating for players. feels good as dev to have made super precise collision system, but can lead to frustrating moments for players. And remember, players want to have fun.
Look at example.
- while technical perfection is cool for programmer who pulled it off, players only care about what feels good. And it doesn’t feel good to die in a game because a bullet grazed a lock of your hair.
It’s easy to make hitboxes feel good. Simply put: Make boxes of bad stuff smaller and of good stuff bigger.
This is a very important thing to keep in mind as a gamedev. Because as the masterminds behind a game we can make those miracles happen. Of course we shouldn’t overdo it, because then our game will just seem janky and unfinished. But we definitely can stack the odds in favor of our players. And one of the simplest and most powerful ways to do that is by having good hitboxes.
Take It to the Next Level!
Want sneak peeks and early access to stuff? Join my Patreon!Become a Patron!
Just Want to Buy Me a Coffee?
A few years ago, Yuzo Koshiro posted a pile of old game design documents for Bare Knuckle 2 aka Streets of Rage 2 on the Ancient blog to commemorate the release of Streets of Rage 2 3D on the Nintendo 3DS. These documents gave a deep insight into the game’s inner workings, technical aspects, designs and even some cut content. They were an awesome resource for one of the most awesome games ever created.
About two months ago I made a few changes to my Patreon tiers, while claiming that “more changes are likely to come”…and behold, more changes have come! Last time I stated that one of my long-term goals was to consolidate my fanbases. Some people only like to play my indie games while others are only interested in Mega Drive dev tutorials. So far, my Patreon has strongly catered to the latter crowd.
It’s time for another SGDK tutorial series! After doing a single player Pong game and an endless runner, it’s time to reach for the stars… and make a space shooter! Apart from things like scrolling and animating sprites, this new series will show you how to deal with multiple entities and their collisions, how to randomly generate backgrounds and more! This project builds upon the previous tutorials, so if you’re new to SGDK programming and have not done those yet, I highly recommend starting with Megapong.