The Role of Hunger

From RogueBasin
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.

Benefits Of Hunger

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->Hungry 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.

Uses of Eating

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:

  • Balance with it in mind
  • Have different levels of resistance. Thus, maximum resistance requires the item + the eaten intrinsic
  • 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".

Implementation Details

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.

A variant of this used by Crawl is to have some food stuffs that you can only eat when hungry. Most characters refuse to eat raw meat unless they are already hungry, even though they'd be quite willing to eat an apple.

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 ADOM, 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).

Hunger Hatred

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.