So there you are, minding your own business, when the CEO of Giant Game Publisher approaches you with an offer: he wants you to lead the development of a brand new entry in That First Person Shooter that he makes, and he wants you to make sure it's fun to play. How do you make sure it's fun to play?
Well, one obvious thing is to make sure the enemies are actually good. Obviously, having a good story, great characters, strong sound design, interesting guns, and great mechanics will help as well, but personally, as a shooter enthusiast, I find that there's one area where most shooters fall short, and it's called feedback.
Some old dude said that every action must have an equal and opposite reaction, but far too often, video games do not feature reactions that seem in any way equal. When I pull the trigger on a shotgun, I expect my enemies to go flying back like they have been hit with a shotgun. All too often, I find that instead, they don't react at all.
One of my biggest pet peeves in shooters is the idea of the enemy health bar. Many games feature this mechanic, from Bioshock Infinite to Battleborn, and all of them are worse off for it. The problem with the health bar is that it feels like it should be a half measure, something developers put into a prototype to show that enemies are losing health, not something that should be in the finished product.
Shield bars are non-diagetic, that is, they exist outside the context of the game's reality; they're metaphors for damage, rather than actual indicators of such. What this means is that damage stops feeling in-universe, and the game doesn't really react to you. It's a lazy means of communicating damage, and it doesn't feel near as believable as it could.
Binary Domain, which is the best third Japanese third person shooter ever made, is so great in part because of the game's emphasis on enemy disassembly. Your enemies are all robots, which are traditionally boring, but when you shoot a robot in Binary Domain, its armour shatters and blows apart. Shoot a robot in the legs, and the robot falls over, then tries to crawl towards you before it explodes. There's nothing as satisfying as that shower of sparks and steel as your bullets slam into the enemy robots.
Halo's elites have energy shields that become brighter the more you shoot them until they 'pop,' at which point electricity crackles around the elite. The shield's brightness provides an immediate level of responsiveness that, over time, becomes easy to estimate. Setting an elite's shield up in stages — glow, pop, electricity — also makes it feel like you're actually getting closer to a goal in a way that an empty bar doesn't.
Even when I see a health bar diminishing in a video game, I rarely feel like I'm actually making progress. When an enemy starts limping or gasping for breath, I feel like I've accomplished something. When he behaves the exact same way throughout his lifespan, then I feel like my shots aren't doing much. If I hit someone with a shotgun and he keeps on running, then the fact that his health bar has a lower number on it now doesn't even register with me.
An enemy who stumbles when he gets shot is waaaay more interesting than an enemy who ignores the bullet. The health bar is a barrier between action and reaction; it's a dissatisfying way of handling reactivity.
There are, of course, other ways of looking at this subject. Here's a great talk by Jan Willem Nijman on the art of screenshake, which is how his studio, Vlambeer, makes their games feel so good. It's the same basic principle.
The more a game reacts to the player's actions, the more tactile the feedback seems, the more interesting the game becomes. If you want your game to feel great, then the best thing you can do is ensure your enemies can communicate their damage states instead of just displaying a lower number on their health bar.