Does the hunger meter decrease at a constant rate?
Solution 1:
Updated for Minecraft 1.6+
The Food Bar
The food bar consists of 10 drumsticks, which are divided into 20 food points, or half-drumsticks. The effects of different hunger levels are detailed here:
When the Food Bar is at 18 points (9 drumsticks) or above, the player's health will slowly regenerate at a rate of 1 health point every 4 seconds. Note that as of version 1.6, each point healed will cost 3/4 food points (3 units of exhaustion; see detailed explanation below)
If the Food Bar is at 6 points (3 drumsticks) or below, then the player will not be able to sprint.
When the Food Bar is at 0, the player's health will deplete at a rate of 1 (half a heart) every 4 seconds (this makes sleeping impossible). On easy difficulty, the player's health stops dropping at 10 (5 hearts), on normal it stops at 1 (half a heart), and on hard it keeps draining until either the player eats something or starves to death.
Hunger Mechanics
As stated above, the 10 drumsticks above your hotbar represent the 20 food level points in units of half-drumsticks.
Another aspect of hunger, which is not visible to the player, is food saturation. The player's food saturation must reach 0 before the player's hunger will decrease one point. The maximum value of food saturation is equal to the current food level, i.e. if the hunger bar is full (20 points), the maximum saturation is also 20. As the player does various activities, saturation points will be consumed over time, and after it reaches 0, the hunger bar will start to jitter periodically, and begin to decrease. In other words, if the player has just eaten food, whether or not it filled the food bar, they have a certain amount of saturation. For example, if the food bar is at 15 after the player eats, it won't start to jitter and decrease for a period of time, until whatever saturation was gained is depleted.
A third aspect of hunger, also not visible to the player, is food exhaustion. This value ranges from 0.0 to 4.0, with higher values meaning more exhaustion. This is the value that is directly related to the various activities which drain hunger. When exhaustion reaches 4.0 or above, 1.0 saturation point is drained from the saturation level, and the exhaustion level is reset to 0.0. If this brings saturation below zero, it is set to zero instead. If the saturation level is already at zero, then the player's hunger level is decreased by 1 point, or half a drumstick.
The final aspect of hunger is the foodTickTimer. This variable is used for two things. If the player has 0 food points, when the timer reaches 80, the player is dealt half a heart of damage, indicating starvation. Also, if the player has more than 17 food points (8.5 drumsticks), and the health bar is not full, when the timer reaches 80, the player is healed half a heart. Each time one of these occurs, the timer is reset to 0 and counts up again.
Activities that increase Exhaustion level
Action and Exhaustion Level Increase
- Walking and sneaking (per meter): 0.01
- Swimming (per meter): 0.015
- Breaking a block: 0.025
- Sprinting (per meter): 0.1
- Jumping: 0.2
- Jumping while sprinting: 0.8
- Attacking an enemy: 0.3
- Receiving any damage: 0.3
- Effects of food poisoning (Raw Chicken/Rotten Flesh): 0.5 per second (15.0 total)
- Effects of food poisoning (Pufferfish): 1.5 per second (22.5 total)
- Regenerating 1 health point: 3.0
The last point is notable; if the player has low health, they will need to eat often to fully regain their health. This aspect was added in 1.6.
Actions not included in this list do not decrease hunger points. Standing still, riding in a boat, minecart, or on a horse are some of the things that will not decrease hunger.
Note: placing blocks does decrease hunger, however this is not documented on the Minecraft wiki, so the amount is unknown.
Adding Food and Saturation points
The different food types nearly all have different values that they each add to the food and saturation levels. Since there are many foods, I will just give a few examples here. The full list can be found here.
An Apple restores 4 food points (2 drumsticks) and 2.4 saturation points. It has an effective quality of 6.4 (food+saturation).
A Golden/Enchanted Golden Apple also restores 4 food points, but restores 9.6 saturation points (not to mention the potion effects they give) for an effective quality of 13.6.
Raw Beef restores only 3 food points (1.5 drumsticks) and 1.8 saturation points, with an effective quality of 4.8.
Steak, however, restores 8 food points (4 drumsticks) and 12.8 saturation points, with an effective quality of 20.8. This is the most effective food in the game.
If two steak are eaten in a row and this fills the hunger bar, the saturation level will also be filled to its maximum possible level of 20 points, 12.8 from the first steak, and the remainder from the second, 20 being possible because the food points will be at 20.
Solution 2:
Minecraft now basically counts your calories. Each action takes a toll on your body; for example:
- 1 meat icon = 800 meters walked (i.e. walking 1 meter costs 1/800th of a meat icon)
- 1 meat icon = 320 blocks broken
- 1 meat icon = 80 meters sprinted
- 1 meat icon = 40 jumps
- 1 meat icon = 20 sprint jumps
However, meat icons only tell half the story. Eating food does not only replenish the visible health bar, but also an hidden 'food saturation' bar, and both max out at 20 points (a meat icon being worth two points). Actions drain "saturation points" before "food points."
Eating adds to both, but any saturation point in excess of your food points will be discarded. For example, a golden apple will give you 10 food points and 20 saturation points, but eat that with an empty stomach and you'll only reap two thirds of the benefit (0|0 + 10|20 = 10|10).
This is why the food bar does not go immediately down as you start playing: you're consuming your saturation points.
Foods that will give you full benefits every time (because they add more food points than they add saturation points) are raw meat, watermelons, apples, cookies and cake. More processed food, such as mushroom stew, cooked meat and golden apples will need at least a few meat icons to give you the full effect.
An additional note on rotten flesh. Food poisoning takes 15 points slowly; rotten flesh gives you 4|0.8 immediately. If you want to get any benefit at all, you'll want to eat 4+ pieces in quick succession.
More information here.
Solution 3:
Mining blocks and sprinting both augment the speed at which the hunger meter depletes. The variable in Minecraft's code that controls how quickly your hunger decreases is foodExhaustionLevel
. Every time you do a certain action, foodExhaustionLevel
increases by a certain amount, and if it hits 40.0
, 1 point will be subtracted from foodLevel
(the visible hunger bar) if foodSaturationLevel
is 0. (foodSaturation
is a hidden variable that gets increased by different amounts when eating food, causing it to take a while before your hunger meter actually decreases.) Breaking a block increases exhaustion by 0.025
, and sprinting increases it by 0.1
for every meter you run. (source)
Solution 4:
There are three aspects to hunger in Minecraft.
1) Food Level: Visible from the hunger bar. Presented as ten drumstick icons. Each icon represents two hunger points, for a maximum of 20 (when full). Replenished by eating food. Amount is dependent on food type.
2) Food Saturation Level: Not visible to the player. The player's hunger will not decrease until their food saturation level reaches 0. The hunger bar will shake/jitter when food saturation is at 0. Replenished by eating food. Amount is dependent on food type.
3) Food Exhaustion Level: Not visible to the player. Value can range from 0.0 to 4.0. Once it reaches 4.0, food saturation is reduced by 1.0 and the exhaustion level resets to 0.0. If food saturation is already at 0.0, the player will lose a hunger point (half a drumstick).
Here's a list of the actions which increase your exhaustion level, and by how much.
- Walking/sneaking - 0.01 per metre
- Swimming - 0.0125 per metre
- Breaking a block - 0.025
- Sprinting - 0.1 per metre
- Jumping - 0.2
- Attacking an enemy - 0.3
- Receiving any damage - 0.3
- Effects of food poisoning (raw chicken/rotten flesh) - 0.5 per second (15.0 total)
- Effects of food poisoning (pufferfish) - 1.5 per second (22.5 total)
- Sprinting jump - 0.8
- Regeneration one health point - 3.0
For further reading and specific information on how different types of food affect saturation, visit the wiki page for Hunger: http://minecraft.gamepedia.com/Hunger