The Role of Hunger in Roguelikes

From RogueBasin
Revision as of 11:44, 12 September 2006 by Lochok (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
"Do you have hunger in your roguelike?"
"Not yet."
"Excellent!  I hate that!"

The dislike of starving to death in roguelikes seems, in my
experience, to dwarf the dislike of permament death.  And yet
Roguelike authors continue to rush to implement starvation.  The
following is a collection of thoughts on hunger, largely derived from
discussions I have read & roguelikes I have played.  I look forward to
any expansion people can make.

Section 1:

Why is it that hunger is considered a benefit?  Here is a list I have
gleaned from the wise words of others.  I look forward to more
entries.

B1) Hunger as a Resource

Hunger provides another dimension of resource management.  Like
Hitpoints, Magic points, and Gold, Satiation is another resource that
must be managed.  Since many roguelikes are largely about balancing
resources, removing hunger from the equation would make it easier for
the player to min/max, and thus less challenging, and less fun.

Examples:
- A ring of sustanence uses up a ring slot which the player could use
for another purpose.
- Casting spells consumes hunger, thus having a long term (hunger) and
short term (magic point) cost.
- Food rations take space/weight in inventory, leading to more careful
packing and/or stashing.

B2) Hunger as a Timelimit

The inexorable tick of the Hungry time bomb provides a sort of urgency
to the adventure.  You *must* delve deeper searching for food rations.
 You can't just lock yourself in a room for 2000 turns to
heal/study/etc.

Many aspects of Roguelikes encourage safe & careful play.  Hunger is
often listed as a drive for action rather than inaction.

Examples:
- Cutting trees in ADOM would be a nearly free action if not for going
from Full-&gtHungry in a single user-turn.
- In the early Nethack game, I personally tend to dive quickly if I'm
running low on food in hopes of getting a yummy corpse.  (Note: This
is not directly encouraged as some note that one can always use a
hunger prayer instead)

B3) Hunger as Realism

We have to eat in real life, right?  Of course, we have to breathe in
real life, and few would suggest a "breathe" command be added to
roguelikes.  (It would make an interesting death message though -
"forgot to breathe")  Hunger could always be fully abstracted.  It
could be assumed the adventurer is foraging and eating, much as it is
assumed the adventurer is sleeping regularly in most roguelikes.

I don't consider this much of a benefit, and merely leave it here
completeness.

Section 2:

What use is eating?  Why have eating at all in the game?  Another way
of looking at this, is why would a player want to eat in your
roguelike?

U1) Prevent Death

This is the most commonly implemented use.  And, IMO, is the source of
most of the aggravation with Hunger in Roguelikes.  No food for long
enough implies death.

This use strengthens B1, as any resource which causes death on expiry
(such as hitpoints) tends to be more carefully managed.  However,
Magic Points are another carefully managed resource, and usually
hitting 0 MP doesn't directly result in death.  Thus, to gain B1, one
must merely ensure being Hungry causes sufficient negative properties
that one will be encouraged to manage it.

B2 is more susceptable to the removal of the death penalty. 
Hunger-as-timelimit is well displayed by Ultima III.  In Ultima III,
your party members each had a Food counter.  Each action decremented
that counter.  If it hit 0, the character would take damage until
death.  You had a very good idea about what your time-to-live was by
the counter.  On the other hand, if Hunger has only non-fatal effects,
say preventing magic regeneration, there is no sense of time-to-live.
One could let one's hunger bottom out, spend an arbitrary amount of
time goofing around, and then have a couple cram rations to resatiate
oneself.  (Removing the floor on hunger may avoid this, but IMO would
be an artificial fix)

U2) Allow Healing

Often eating is implemented as a form of instant-healing.  A sandwhich
may give +5HP & +5MP.  One's hunger level is more of a satiation
level, and it is ironically better to be hungry than full as one can
then take advantage of food.  This, however, turns food into YAWTH
(Yet another way to heal), as there are plenty of insta-heal methods
in the Roguelike genre already.

This system does not provide B1 nor B2.

U3) Allow Regeneration

The natural regeneration of hit points and magic points can be tied to
the hunger level.  This keeps food as a method-of-healing, but it
doesn't change an apple into a different looking potion of healing.

This system only weakly drives B1 and B2.  Regeneration is nice (one
gets hp/mp while wandering around, rather than having to consume turns
and items), but can be ignored by uninjured players and high level
players.  Thus, one may find people only eating before major fights
and falling to Starving! whilst moving stuff between their caches.

U4) Allow Special Actions

Actions, such as SpellCasting, or going Beserk, may be limitted to
those who are not hungry.  This has a strong B1 component.  The
strength of B2 depends on how pervasive the requirement is.  (If I can
research spells while Starving!, the hunger system does not contribute
to the balancing of the time taking to research spells)

U5) Gain Intrinsics

You are what you eat.  This benefit for eating is similar to U2,
except usually is not just a clone of another existant process.  It
has serious balance issues, however.  Being able to gain an intrinsic
means not having to use an item slot to fulfill that intrinsic.  One
must be careful not to nerf rings of fire resistance (as I personally
think they have been in Nethack).  There are multiple solutions to
this:
1) Balance with it in mind
2) Have different levels of resistance.  Thus, maximum resistance
requires the item + the eaten intrinsic
3) Only grant temporary resistances through eating.

U6) Add atmosphere

Being able to bake a cake adds to the sense of the completeness of the
world.  One should be cautioned that the powergamers will immediately
clamour for it to be "useful".

Section 3:

What are things to keep in mind when implementing hunger?

I1) Does hunger bottom out?

Even in U1, this is not easily answered.  Ultima III, for example,
does bottom out at 0 food, so as soon as you buy more food you stop
starving.  However, they could have tracked arbitrarily large negative
food.

By not letting hunger bottom out, one can strengthen B2.  While one
may research that spell while Starving!, one can't then just have a
slice of pizza and be back at 100%, you have to eat yourself out of a
very deep hole.  I think such a system would have serious
representational problems.

I2) Is there a maximum that you can eat?

In either U2 or U5, I think this is mandatory.  For the other cases,
it is entirely optional.  Note that removing a maximum cap removes the
inventory management aspect of food in B1.  The other portions of B1
remain, of course.

Note that if one can eat corpses, having no limit lets you stock up
from a room of kills.  Most extant roguelikes require you to
kill-when-hungry.

I3) How does hunger increase?

This is a whole range of possibilities.  One or more of:
- Time.  Every game tick, you grow hungrier.
- Turns.  Every time you do an action, you hunger (possibly relating
to the strenuousness of the action)
- Regeneration.  When you regenerate due to U3, you hunger.
- Special Abilities.  When you use special abilities due to U4, you
hunger.
- Intrinsics.  Possession of certain items/intrinsics/whatever which
are too strong can be balanced with hunger.  Eg, ring of conflict in
Nethack, being invisible in Nethack, etc.

I4) Does one explicitly eat?

In aforementioned Ultima III, one never has to "eat" something - it is
done automatically.  Eating can quickly become a micro management
issue.  However, if one wants U6, one had better have explicit eating.

I5) How is hunger level expressed?

This comes down to a question of granularity:
- A numeric value: This strongly reinforces B2.  One sees the ticking
of the clock in front of one's face.
- A hunger bar: Simpler to reference, feels less fiction-breaking than
the numeric value, but still allows one to watch the slow ticking.
- Hunger Status Line: "Hungry" type status line entries.  Hides the
time limit aspect of hunger.  Often results in newbies being surprised
and starving.
- No Output: Best for systems such as U6 or U2.  Definitely not
suggested for U1.  This avoids spamming the user with something they
may not care about.  It will downplay the role of food in your game. 
Ultima Online, for example, used this system (It maybe categorized as
U6 + theoritical U3, with I1, I2, I3(time only), and I4).

Section 4:

Why do people hate hunger?

H1) It is micro management.

If no non-newbies should ever starve to death, then the hunger system
is just requiring the player to periodically perform extra keypresses.
 If the player doesn't find these key presses interesting, it seems
like meaningless micro management.

H2) It is a time limit.

This is less often expressed, but I think lies at the heart.  People
feel the constant tick of time and know there is only a finite number
of turns before they must get the next food ration.  This may add
excitement to some players, but others are turned off.  Roguelike's
are turn based, after all, so often played by people who want to think
about their moves.  Knowing a wasted diagonal movement may cause
starvation will worry many players needlessly.

H3) Interrupts the Heroic Fantasy

Worrying about food whilst engaged in an awesome task seems petty. 
This is tied to B3, of course, and both are as relevant to the whole
discussion.

Section 5:

What about POWDER?

The About section of the POWDER website originally said that "Sorry,
hunger will be coming eventually - it is required to prevent
conservative play".  I eventually second guessed myself and changed it
to the current:

"I had planned on adding hunger. I'm not too sure any more - corpses
that would add intrinsics would mess up my current intrinsic balance.
And hunger is annoying. The reason for it - to prevent people playing
too conservatively - I don't consider an adequate cause. If people
want to play too conservatively, it is their loss :>"

That being said, I have switched again.  Release 032 has added
rudimentary hunger.  However, my plans are, vaguelly:

No U1: Hunger will not cause death.  Thus, the ticking time limit of
H2 will be removed.  Super powerful players leaving the dungeon don't
need to much around with eating.

No U2: I think this just makes food a different type of heal potion,
so dislike it.

U3: Primary purpose of being fed will be to regenerate.  The
hyper-conservative player will thus soon stop regenerating while
hiding behind the magic-locked door, and thus stop being rewarded for
hyper-conservative play.

U4: Probably.  I like the idea of balancing long term and short term
attributes, such as magic points vs hunger.

U5: I'm very happy with the balance of my worn intrinsics, so am wary
of granting permament intrinsics.  I'm testing with temporary
intrinsics in 033.

I1: Yes.  Otherwise one will end up at a point where one will just
give up entirely on ever eating again as the hunger debt is too large.

I2: Yes.  With U5, I think this is pretty important.

I3: Time, usage, regeneration.

I4: Yes.  What you eat is rather important - a red dragon corpse is
not just a large food ration.

I5: Currently I am using the status indicators.  I do like the idea of
a hunger bar, especially as I'm working in a graphical environment so
can do it without cost.

- Jeff Lait
(POWDER: http://www.zincland.com/powder)