I can’t stop having calorie problems, how much do you need?

Calorie burn on vehicles and things is something I haven’t looked at at all, and for bikes at least is gonna be complicated

Perhaps the issue lies instead in the amount of calories burned for a given activity level. Lets look at day 33 of Tazeell’s log as an example: 275 minutes of active activity was by far the largest contributor towards the total of 10529 calories that were burned that day. 275 minutes is a decent time for a marathon, so I’ll compare it to that: According to this site, a marathon runner at 70 kg burns just over 2700 calories. Add that to maybe 2000 for BMR and some other lighter activities, and you get 4700, less than half of what the game has calculated.

Also of note is day 41; spending only 400 calories during a day is impossible. Even a 40 kg & 150 cm female has a BMR (basal metabolic rate; calories burned if doing literally nothing all day) of over 1200 calories/day.

Given that running counts as active comparing it to a marathon doesn’t sound that off.

day 41 is only a partial day.

That definitely explains that; still, days 14 and 15 are a bit low at ~900 calories.

I haven’t looked at the section of code, but it seems to me you could just hold a counter on the avatar and add the current met to it every turn, then every minute you divide it by those 60 turns and get the average for that minute.

So I code-dived to figure out how the numbers are meant to work, thought I’d share for anyone else that’s curious:

Exercise Level MET Calories burned for 24h of this activity (BMR of 2000 calories)
None 1 2000
Light 2 4000
Moderate 4 8000
Brisk 6 12,000
Active 8 16,000
Extra 10 20,000

I have two conclusions after learning this:

  1. Going back to day 33 of Tazeell’s log, 10529 does seem oddly high, even for how the game is meant to work. I calculated that his average MET should be ~2.9 given the log data, which would correspond to a BMR of a whopping 3600 calories! Even a huge 200 cm person shouldn’t have a BMR of much over 2500 calories. Either my math is wrong, or something in the code isn’t working quite right (or maybe Tazeell has Extreme Metabolism or something, I suppose)
  2. I am highly skeptical about Moderate being the “standard” activity level for crafting; does someone sitting and working with their hands (most tailoring, most electronics, etc) really use 4x the calories that they do at rest?
3 Likes

If the default is high, people can make a case for dropping it, if it’s low, theres little to no incentive for players to report it.

1 Like

Davibones:

  1. Definitely worth checking the math. if someone wants to go through and check the posted numbers to see if they add up right that would be great.

  2. Examples of 4ish MET activities IRL:

  • golf
  • housework
  • low intensity weight training
  • yard work (5 met)
  • brisk walking (5 met)

Examples of less than 3 met activities:

  • sitting at a desk (1.3)
  • strolling slowly down a country lane (2 mets)
  • washing dishes (2.2)
  • Hatha yoga (2.5)
  • fishing (2.5)

In general I’ve actually been pretty conservative with METs. The problem is that players want their avatars to do things like walk quickly for six hours, fight for an hour, dig a line of pits, drag a travois for a kilometer, and more in one day. That, and conceivably there could be a math error in our calorie counting which is definitely worth checking out.

1 Like

They want to walk quickly when they are casually out-walking slow zombies. Otherwise they probably don’t care much about how fast they are walking. That’s not exactly easy or sensible to implement, though. :stuck_out_tongue:

Well if it ended up getting too low then players would likely report that they are seemingly getting overweight to fast. Although there is likely a middle ground that would still be unbalanced.

Also, what does MET stand for in this context exactly?

We do actually have character avatars speeding up and slowing down a bit based on fatigue. Once calorie costs of walking are adjusted to be based on your walking speed and load, we could possibly also have you slow down slightly when in safe mode.

The trouble there is the possible micromanagement. What if I want my character to walk faster to get from point a to point b?

Really, walking everywhere is good exercise at any speed, and the difference in calorie burn isn’t that much between walking at a brisk pace or a moderate one. Anything that adds micromanagement or frustration to slightly mitigate calorie loss is going to be a net negative for the play experience

I was in a coma somewhere on that list, might have been those super low days in a chilly basement. Dunno if that would explain calories being low as I have no way of knowing how long that coma lasted or how an infection coma would impact ingame cal usage. Most of my run has been heat dependant to very heat dependant as I got it early so that may be good to keep in mind for the calculations. Would explain the lows and I dunno if getting hot in summer would then boost metabolism to burn it faster than normal or not. I’m sure this gets complicated for the cold blooded.

Could it be a option to also include a calorie cost for healing and having a higher BMR when you are cold.

Very neat thread. Its great reading:

  • Math
  • Investigations into real life equivalences to game mechanics
  • Devs interacting with players
  • Charts!

All while being civil with each other.

2 Likes

i do

  • 7am - 800 cal
  • 10am 800 cal
  • 1 pm 800 cal
  • 4 pm 800 cal
  • 7 pm 500 cal
  • 10 pm a snack before bed

get up at 6 i don’t leave my base for a minimum of an hour in the morning i have done 4 meals of 1500 cal at random times of the day and some nights i stay up so you need the energy, i get fat when im doing base stuff and when scavenging a lot i lose the pounds with a diet but i guess if you exercise every day your good

I did want to address the math question, as I looked up METs and did some math when I noticed calories being very high in my game, and I’m curious what formula is being use to calculate METs to calories.

From what I found:

1 METs = 3.5 x weight in kg ÷ 200

If we use the North America average weight of 80kg, we get:

1 MET = 3.5 x 80kg ÷ 200 x 1 min = 1.4 calories burned per minute

Lets use day 65 of redxlaser15’s game as a quick calculation, I’ve done the same to my games and found similar results:
Capture

Moderate (MET * Activity Level * Time):
1.4 * 4 * 105 = 588 calories

Light:
1.4 * 2 * 5 = 14 calories

None:
1.4 * 1 * 1330 = 1862 calories

Total calories by MET = 588 + 14 + 1862 = 2464

The game is calculating 3053 for that day, which is over 500 calories difference.

Additionally, this was done with the North America average of 80, if you use the EU average of 70kg, the numbers dip even lower to 2156 calories.

Can someone point me to what file the actual MET/activity numbers to calories is performed so I can confirm this in the code?

/* src/consumption.cpp */
units::mass Character::bodyweight() const
{
    return units::from_kilogram( get_bmi() * std::pow( height() / 100.0f, 2 ) );
}

/* src/character.cpp */
int Character::base_bmr() const
{
    /**
    Values are for males, and average!
    */
    const int equation_constant = 5;
    const int weight_factor = units::to_gram<int>( bodyweight() / 100.0 );
    const int height_factor = 6.25 * height();
    const int age_factor = 5 * age();
    return metabolic_rate_base() * ( weight_factor + height_factor - age_factor + equation_constant );
}

int Character::get_bmr() const
{
    int base_bmr_calc = base_bmr();
    base_bmr_calc *= activity_level();
    return std::ceil( enchantment_cache->modify_value( enchant_vals::mod::METABOLISM, base_bmr_calc ) );
}

height() returns values in centimeters.
get_bmi() return the character’s body mass index.
metabolic_rate_base() is influenced by mutations and options, but without those is 1.
activity_level() is one of 1, 2, 4, 6, 8, or 10 METs.

If you have any further questions about the code (or just don’t know how to read it), I can explain more.

Thanks! I got VS2019 set up last week so I can step through and debug stuff, I’ll see what I can find. I’m not used to C++ at all so it’s slower than usual :stuck_out_tongue: