34
\$\begingroup\$

When designing any hero-based game, be it adventure, RPG, brawler, or similar, you eventually need to decide on your health system. Barring any regenerative systems with zero UI (like Call of Duty), should you use a discrete set of heart containers, Zelda-style, or a continuous health bar, like Street Fighter?

Here are some points of contention that I've been thinking about:

  • Hearts are easier to understand (very clear how many hits you can take)
  • Hearts give a better sense of accomplishment when expanding (A whole extra heart! Rather than just a slightly longer bar (or worse, no change))
  • Hearts grow to take up a lot of screen real-estate, while health bars can stay compact
  • Health bars allow for really fine control over health/damage balancing (using float rather than int)

Since I haven't been able to find any relevant game design articles on the subject, I'd really appreciate if everyone with some knowledge on the matter, or even just some insightful links would contribute, thanks!

\$\endgroup\$
6
  • 8
    \$\begingroup\$ Nothing stops you from designing a system where you can take less than one heart of damage.. or health bar that changes in 10% increments. I think the difference is rather arbitrary. \$\endgroup\$ Commented Mar 14, 2013 at 20:30
  • \$\begingroup\$ You can combine both, this way it will look like a set of hearts, but the health can be subtracted/added "float-style". \$\endgroup\$
    – Den
    Commented Mar 14, 2013 at 20:36
  • 1
    \$\begingroup\$ +1 It is a good question if you are at a stage in development where either is a good solution, what kind of health values can the player have in your game design and what increments of damage can they take? \$\endgroup\$ Commented Mar 15, 2013 at 8:49
  • 2
    \$\begingroup\$ Voting to close as "not constructive", since the author has clarified that his intent was to start a discussion, rather than to get an answer to a real question. \$\endgroup\$ Commented Mar 15, 2013 at 23:00
  • 1
    \$\begingroup\$ Health Bars taste better than Hearts (unless you're a vampire). \$\endgroup\$
    – smokris
    Commented Mar 19, 2013 at 4:39

9 Answers 9

23
+50
\$\begingroup\$

Most answers have addressed the feasibility of using heart container systems, I'd like to present a reason why you would want to use them over a health bar.

Here's a word for you: Subitizing. People can make near-immediate judgments about the number of items in a group if you keep that number round about 4. Once you go above that point confidence and speed declines drastically.

Consider this example of having 5 HP and taking a 1 HP hit:

Example

With the heart containers I am immediately sure I can take exactly 3 more hits and the 4th will kill me. With the health bar, it is 4 or 5? I'm not as certain.

This is a useful concept to take advantage of if the number of hits your character can take maxes out at a fairly low number (10 -12) and it is important for the player to be able to quickly and confidently know how many more hits they can take.

\$\endgroup\$
18
\$\begingroup\$

If the health can grow significantly over the course of the game, I think that health bars are more appropriate.

For example, in my current mmo game, the characters starts with 300 health, but that health can grow to over 3000 as the player levels. If this were implemented as hearts, it means you might start with one heart but have 10 or more hearts later on. This would either take up a lot of room that could be used otherwise, or the hearts would be so small that the health would be hard to read.

Also, if the player starts with one heart of health, it will be very hard differentiate between 10%, 25%, 50%, etc levels of health. Having a bar of health gives a consistent measure of health as a percent throughout the whole game, i.e. 50% health is always halfway down on the bar.

\$\endgroup\$
5
  • 2
    \$\begingroup\$ I completely agree with you, when it comes to RPG games with a very long player progression (Diablo 1/2/3 spring to mind), using hearts would never work, as they would take over the entire screen! \$\endgroup\$ Commented Mar 14, 2013 at 20:51
  • 3
    \$\begingroup\$ Doesn't matter, actually. Numerically going from 300 health to 3000 health is equivalent to a reduction in damage taken by 90%. I.e. you can model the same effect as an "armor rating". \$\endgroup\$
    – MSalters
    Commented Mar 15, 2013 at 12:10
  • \$\begingroup\$ good point, though the scaling of heart containers can be fixed \$\endgroup\$ Commented Mar 15, 2013 at 12:40
  • \$\begingroup\$ @MSalters precisely, and that's also more credible IMHO \$\endgroup\$ Commented Mar 15, 2013 at 12:41
  • 3
    \$\begingroup\$ This answer is point number 3 in the original question. \$\endgroup\$ Commented Mar 15, 2013 at 14:22
17
\$\begingroup\$

Why not do both? You can have a health bar divided on discrete intervals. That has a lot of the advantages of both systems:

  • You can make health increases be always an extra block.
  • After you get hit, you know how much of a block an attack takes and it's easier to measure how many hits you can take.
  • You can choose whether to make the bar longer or the blocks smaller when health increases, depending on how much of the screen you are willing to use on showing the player's health.
  • You have the same fine control of health as you get with health bars.

League of Legends does this, and that's a game where current health is really important.

You should however consider the aesthethic difference between heart containers and a health bar. In my opinion, the bar puts the player a lot closer to the mechanics of the game, while the hearts emphasize the fact that this is the life of the character you are showing. Hearts have a lot of meaning attached to them, and you can use this on your favor for some kinds of games.

\$\endgroup\$
4
  • \$\begingroup\$ I like this system, a good example I can think that is similar is the League of Legends health bar system. They have ticks along the health bar for every 100 health but the overall length stays the same. At every 1000 health you get a bold tick. This makes dynamically lengthened health bars easier to read and means reading opponents health is quick and intuitive. \$\endgroup\$ Commented Mar 15, 2013 at 8:46
  • 1
    \$\begingroup\$ @Blue I guess think you missed it, but I mentioned LoL in my answer. \$\endgroup\$ Commented Mar 15, 2013 at 12:35
  • 1
    \$\begingroup\$ I sincerely apologise :D The incredible amount of caffiene I have drunk today has frazzled my brain. \$\endgroup\$ Commented Mar 15, 2013 at 13:23
  • \$\begingroup\$ Reminds me of Kid Icarus. I sorta disagree with your wording of "do both", seems undecided \$\endgroup\$
    – bobobobo
    Commented Mar 15, 2013 at 18:06
4
\$\begingroup\$

pauld's answer already points out that a simple heart container system may not scale if the maximum health in the end-game differs by orders of magnitude compared to what you originally start with. But there are two ways to fix this:

  • Just like with money where you have e.g. gold, silver and bronze coins with a 1:10 or 1:100 scale, introduce a multi-digit system. You could e.g. use three rows of ten hearts, where the topmost row represents the hundreds, the second the tens and the bottom one the ones. Or use a different icon that represents a tenth of a heart, e.g. a drop of blood

  • Scale armor instead of insanely vast amounts of heart containers. When you progress, enemies that used to attack you for half of your hearts only cost one heart or later on only tickle. (That's probably preferable if you want to have a more credible experience)

\$\endgroup\$
2
\$\begingroup\$

I've always preferred the heart system. I feel like it ties into health better, whereas a health bar abstracts damage and doesn't give you any believable relation to damage. All damage results in critical failure at the 0 point.

To give you an idea of what I mean, I really liked the Assassin's Creed health style (from the 2 line). You could regenerate the last partial health block. Health blocks had a discrete 4 hit damage. And damage was reduced by armor.

Not only that, but armor was health, and any "damage" to armor resulted in a max-health penalty. Any "potions" you take was limited by armor damage that had to be repaired.

The new system in Assassin's Creed 3 takes all that away and replaces it with a health bar, and while that gives more control over the health, it replaces the believable system of damage with a critical failure.

In 2, you could get damaged down to 1 health and keep regenerating it and keep fighting through a lot of pain, the extra health that didn't regen was more like a failure buffer than a real health.

I liked this. I felt that it let me survive a lot more than health alone, but gave me an even more suspenseful feeling at one health block left than in 3 where it regens out of combat and I start at full health instantly.

It also limits you from being a infinitely growing system (like most MMOs) because you can keep "improving". This turns out to be a lie, because monsters simply scale in damage to where in reality actual health number is irrelevant. I personally think this needs to die. I feel this is an intellectually lazy, and gameplay cheap system. That cheats the player out of a better experience. One of my favorite MMOs is the Guild Wars line, because improvement isn't a measurement of levels, but skill-based (both player skills and actual activated skills). They cleverly made end-game improvement a hunt for skills. To apply this to WoW would be similar to having an ever expanding list of dropped skills, glyphs, and talent options. To apply this to Diablo 3, would be to have the standard list of runes be level-based, but then have dropped "elite" runes like Diablo 2.

So a recap:

In the 2 line:

  • Armor equated resistance to damage and max health. If damaged it reduced max health, and had to be repaired.
  • You were allowed to easily regenerate partial blocks.
  • Higher suspense at 1 block left, becuase even though with careful planning you could live through infinite damage, you couldn't take a lot in one blow.
  • More believable roleplay because of a need system (repair, potions, etc.)
  • Limiting max health requires more focus on gameplay mechanics instead of just "moar damage, moar health", and requires a more fun endgame play than just rerun raid X for 1

None of this could be adequately represented with a health bar. And I think the health bar has lowered creativity and believable in lieu of easier maintenance.

A big thing to remember is that if healing mechanics are health-percentage based and not health amount, then a floating-point health is really no different than a fixed health with more damage resistance.

\$\endgroup\$
1
  • \$\begingroup\$ Thank you for discussing the user-experience implications in more depth. As developers, we all too often focus on the system itself and forget the big picture; your answer does an excellent job rectifying that! \$\endgroup\$ Commented Mar 18, 2013 at 19:37
2
\$\begingroup\$
  1. Hearts are cute. Binding of Isaac also used hearts.
  2. Hearts go in wholes, or halves. If I remember correctly, the only thing that did less than half a heart of damage in Zelda was the Peahat. 1/4 heart damage didn't show up though.
  3. Don't forget that games like Doom just used raw numbers (100% etc)
  4. Diablo and Ultima Underworld used "potions", which are like themed health-bars.

In games like streetfighter, there were so many different attacks, the discretization imposed by hearts was probably not useful. Punch, kick, uppercut.. all slightly different amounts of damage. A more continuous looking thing like a health bar seems more appropriate there. Plus, hearts would probably be too cutesy.

\$\endgroup\$
1
\$\begingroup\$

It depends of the actual value you are abstracting. A value that starts in 3 and go up to 20 is easy to represent as hearth containers, but if the value represented can vary a lot over time or from one character to another (where applicable), then a percentage based health bar will be easier to represent and read.

Trying to represent a value like 112/435 in hearth containers would be hard to read or innacurate.

\$\endgroup\$
1
\$\begingroup\$

The only time you would need to subtract tiny amounts of health would be continuously-damaging terrain such as walking on hot coals or running through toxic fumes, in which case you could just a timer to subtract a quarter of a heart per second.

It shouldn't take too much screen space. If the player is expected to take 100 hearts-worth of hits between chances to recover, there's a problem with your game design. Also, you can use tricks like Zelda's heart-doubler to reduce the quantity of hearts.

Generally, the heart system seems to work better for third-person adventure games while small healthbars are better for third-person games like shooters (In these types of games, you could even hide the healthbar completely except when taking damage)

If you do need a really long healthbar, you could combine two ideas and do what Metroid Prime did: have each upgrade earn you a new healthbar, and display the current healthbar and the number of remaining healthbars on-screen.

\$\endgroup\$
1
\$\begingroup\$

It all depends on what kind of game are you making and what is the target audience. Games like World of Warcraft would never work with heart system, because it is all about numbers. People dedicate their free time to discover health formulas etc. Console RPGs work best with hearts. Console games usually hide as much of the game mechanics from players as possible. So it's realy upto you:

  1. You want a game that will be simple, you mostly rely on the story. Hide most of mechanics from the player. Don't show hits as numbers, but simply one hit = one heart. You will probably not show the player any other stats neither. No strength/dexterity/intelligence. Just inventory. Items have no stats, maybe just special attacks etc. Your audience will be casual players, console players, younger children. Use hearts.

  2. You want a game for people who like D&D. You show them stats, you let them design the character by rolling dice/assigning points. Every item will have many stats, and no good player will be able to live without excel spreadsheet. Health bars or pure numbers.


Hearts are easier to understand (very clear how many hits you can take)

Only if one hit = one heart every time. For me understanding health bar is no issue - of course I don't know how much exactly I have, but I'd say to myself: Oh noes! It looks like I am under quarter health, better to drink that potion!

Hearts give a better sense of accomplishment when expanding (A whole extra heart! Rather than just a slightly longer bar (or worse, no change))

No, a proper level up gives me a sense of accomplishment.

Hearts grow to take up a lot of screen real-estate, while health bars can stay compact

See above

Health bars allow for really fine control over health/damage balancing (using float rather than int)

Well, half hearts, quarter hearts... Again, it depends on how do you calculate damage. One hit = one heart, then no need for health bar.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .