The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.
Two health-centric blogs (1 & 2). I thought I’d add my perspective to the mix.
Health should follow intuition or convention; otherwise, the designer risks alienating his/her audience. I believe most health rule sets are based off logical fallacy: while most work, they are rarely fair to risky players. Ever since Halo, regeneration has been the newest trend in health; today I offer a new solution.
Consider the following:
A player with 100 health instantly regenerates to full after five seconds without receiving damage. In case one an AI enemy shoots the player with a sniper, dealing 98 damage, waits six seconds and repeats. For the purpose of this experiment this AI enemy could safely do so forever without killing the player. In the second case, the AI enemy fires one pistol round at the player through eight concrete walls every four seconds, dealing less than one point of damage per bullet forever. The difference? In case two, the player will eventually die, assuming the damage isn’t rounded down to zero.
To me, regeneration is most frustrating when, on the brink of regenerating, a stray bullet resets the timer. After all, if a pistol round is nothing like a sniper round, why do they reap the same benefits?
A relatively simple solution would be to make regeneration constant, while putting regeneration in queue based on the amount of damage received. For instance, 98 damage puts the regenerate function in queue for almost five seconds, whereas one damage puts regeneration in queue for a few frames.
While this implementation alone would lead to less frustration, I will go a step further to detail a more elaborate system.
In physics, the derivative of position is velocity, and the second derivative of position is acceleration. Similarly, I propose health has velocity (regeneration/degeneration) and acceleration (recovery). Regeneration, unlike Halo, can be any number from the player's maximum regeneration to an infinitely negative number (to simulate damage from bleeding, poison, fire, etc). Recovery is a positive constant, similar to gravity, which seeks to normalize regeneration and, consequently, health.
In this system, I generally consider the bullet to deal two types of damage: impact damage and bleed damage. Although impact damage can be thrown out altogether, it is particularly useful for the verisimilitude of headshots and high-powered rifles. To further stress the usefulness of impact damage, damage types can be separated into two levels of lethality, both of which can only kill after a certain threshold. For instance, to prevent stalemates, a designer can make impact damage kill when the player is already at half health or lower, whereas bleed damage will instantly kill the player when they get to zero health. This gives health adequate room to recover before the player “bleeds out” after an average firefight, since dead players can no longer dish out impact damage.
Three-dimensional health assists in player recovery after easy fights while inhibiting recovery after long, drawn out battles, making post-fight disadvantages scale accordingly to difficulty level, which I believe will speed up pace and flow in the majority of firefights. Furthermore, since players are always “recovering,” they will be more willing to risk encounters at lower than full health.
Halo set the precedent for upgrading health systems back in 2001; I feel it’s time to shift health up in depth. If you take nothing else away from this post, know this: when coding health, there are more than two options, some of which may be more intuitive to players than health packs.
Feel free to comment.