GTNewHorizons / SpiceOfLife

A Minecraft mod that encourages dietary variety through diminishing returns
GNU Lesser General Public License v3.0
7 stars 10 forks source link

Quadratic Progression to Extra Hearts Milestones #32

Closed DrParadox7 closed 4 months ago

DrParadox7 commented 10 months ago

In this system, the Food Points requirement increases by 2% of its default value for each milestone achieved.

Default Values:

Food Points per Milestones Calculation:

The new quadratic progression formula is: Food Points per Milestone = 50 + (2 x {Current Milestones})

This requirement increase would amount to +2 food points (1 shank) per milestone gained. This quadratic progression implies that for each milestone achieved, the Food Points requirement grows by a percentage of the default value, introducing manageable diminishing returns.

I'll illustrate this using base values:

Food Point Milestone Requirements (1-6): Before: 50 -> 50 -> 50 -> 50 -> 50 -> 50 After: 50 -> 52 -> 54 -> 56 -> 58 -> 60

There are no excuses for players as food points increase exponentially as you progress in Harvestcraft's higher tier foods.

Source: https://pubmed.ncbi.nlm.nih.gov/17367567/ image

Prunebane commented 10 months ago

Hello,

First of all, if the change is not up for discussion / there has been a conversation about it already, feel free to link me to a place and/or ignore me. I am, ultimately, just a curious player that got a notification towards a linked issue.

Now, regarding the change itself, I'll lead with a TL;DR

Expanding my points: As much as I appreciate the effort put into the presentation of this change, I am missing a clear reason "why" this is being implemented. The only reason I can see is a real-life scientific article regarding human physiology - so I am left to assume that this change should make a mechanic more realistic?

I'll be honest, to me, this feels like introducing unnecessary complexity (and a nerf) to a mechanic that isn't in need of such a change. In the end, I'm not against a nerf, but I do have a problem with the complexity - copying real life != fun in this case, imho I don't think this mechanic will be intuitive to most players, and could lead to confusion over inconsistent changes with existing characters and their varying progress (even if people are made aware of an "upcoming nerf").

I would argue that linear progression is simple in terms of calculating maximum gains out of the system, given a known amount of "food shanks" that one of each food provides. Such a calculation becomes much more rigorous with the proposed system - this can be important for any future balancing changes.

If the main intention of this change is to nerf health gain from Pam's foods, I feel a much more simple way of achieving that is changing the shank scaling from 50 per point to e.g. 60. In fact, from the graph, if the goal is to have ~30 bonus HP at the 2 500 shank mark, you could set the linear scaling to 85 shanks per 1 HP - this would reach 30 HP at 2 550 unique food shanks (roughly the same).

Essentially, I would just like to hear the "why" to this change - I think we could work on improving it from there? (also re-iterating, I'm a nobody, so if this has been discussed already elsewhere, please ignore)

Best regards, Prunebane

DrParadox7 commented 10 months ago

@Prunebane It's very simple.

You can currently get an uncapped amount of HP from eating food. On top of that, you can also get 30 extra hearts from Tinker's Canisters To add more, you can also increase your max health further by 20 Hearts with Odin's Ring.

Food from GTNH can provide you with up to 52 hearts extra hearts (based on the Excel provided by mitchej123). Which means the player, can achieve HP values of 100 hearts of extra HP without armor, potion effects or other mechanics.

This change reduces that value to around ~80 extra hearts but felt mostly towards the stages of the game where extra HP matters the least for normal gameplay. Early game extra hearts (which is where it matters most) are still at similar levels of difficulty.

A player with any decent modded armor would realistically be playing in God-mode.

Now addressing your points:

I'll be honest, to me, this feels like introducing unnecessary complexity (and a nerf) to a mechanic that isn't in need of such a change.

Yes, it is a nerf aimed at reducing excessive hearts at late-game. We don't want to make it harder to get hearts early on. however we don't want to cap players either as that's just removing the whole incentive for food entirely at a certain point. I don't think this mechanic will be intuitive to most players

There is a book showing your progress and your next milestone. The progress is 2 food points or 1 shank per milestone (aka per current extra heart).

With or without the book, this is quite intuitive in my opinion.

would argue that linear progression is simple in terms of calculating maximum gains out of the system, given a known amount of "food shanks" that one of each food provides.

Sure, it is simpler to calculate but you are making the early game more punishing this way. Depriving the player of extra hearts when they need it most more is not the way as that's never been the concern.

Such a calculation becomes much more rigorous with the proposed system - this can be important for any future balancing changes!

What part of the calculations are so rigorous exactly? If I have 20 extra hearts, I know that the milestone will require 25 shanks (base) + 20 shanks (1 food point * 20 extra hearts).

mitchej123 commented 10 months ago

Been a bit busy, will take a look. If nothing else having it as an option is likely a good thing.

Here was my analysis from NH's food when I switched to haunches vs # of food - https://docs.google.com/spreadsheets/d/1Cxvp7ZNjX-rb7N4DWTQxT-1RDad5Bcj9gnQpALt_MGc/edit?usp=sharing

DrParadox7 commented 10 months ago

Been a bit busy, will take a look. If nothing else having it as an option is likely a good thing.

Here was my analysis from NH's food when I switched to haunches vs # of food - https://docs.google.com/spreadsheets/d/1Cxvp7ZNjX-rb7N4DWTQxT-1RDad5Bcj9gnQpALt_MGc/edit?usp=sharing

Yeah, based on the values in the excel the max hearts would go from 52 to 32 (graph captures most of that range). This does not include any bonus/diminishing returns or items added since the excel was last updated. Thanks for that mitchej123

chochem commented 10 months ago

The initial PR was indeed lacking important info. But thanks for the clarifications now. So the main purpose of the PR is that you consider the hearts too strong and want to nerf them. Specifically at the top end. I guess thats a fair position. I don't think I mind either way myself really. will post it in discord to see what other devs think (edit: mitch already did :P).

Prunebane commented 10 months ago

Re: @DrParadox7 I was going to mention that the "uncapped" food side is not quite correct, but, if we consider it from a long-term perspective, you are right that it's theoretically uncapped, so long as there will be new foods added to the pack over time. In practice, the bonus is capped to whatever set of foods is present (there's no way to repeatedly generate a "new unique food" in-game, to my knowledge).

But, okay, the goal is to nerf lategame without punishing early game too hard if possible. I can get behind that, considering the listed flat bonuses from other sources and lategame armor. And, the change would be towards a soft cap instead of "no cap", in terms of potential future added foods.

I don't think this mechanic will be intuitive to most players

There is a book showing your progress and your next milestone. The progress is 2 food points or 1 shank per milestone (aka per current extra heart).

I agree, the scaling is understandable, but the beauty of the current system was that I didn't really need the book to check how much progress I need for the next heart. But, I feel like it's going to be my opinion vs. yours, so let's agree to disagree - I can imagine getting accustomed to it.

What part of the calculations are so rigorous exactly?

You mention an instance+1 calculation captured in a specific moment (which is fine), but I'm concerned about the total calculation, from two perspectives:

* - Thinking more, this might already be part of the pull request, though - I guess the coded formula just applies from fresh on every login anyway, iterating until it hits the end?

Either way, thank you for the answer! Did provide insight into the change, and I appreciate trying to keep early game less impacted. :)

bombcar commented 10 months ago

I agree, the scaling is understandable, but the beauty of the current system was that I didn't really need the book to check how much progress I need for the next heart.

this is what I’d love to see since I don’t book and just eat if it says “not eaten” - a chat log after a new food telling how many remain. “Yum! Maybe 23 more new foods would make me feel stronger” or something.

DrParadox7 commented 10 months ago
  • Balancing a total amount of hearts (you can't just plop X*Y into calc, instead having to go for an iterative formula)

This PR makes it so that you won't need future rebalancing:

Early game hearts will remain somewhat what they currently are (current 12 extra hearts is equivalent to this PR's 10 hearts).

Even if GTNH tripled its current nutritional values tomorrow to indirectly nerf the Healing Axe, the new max heart cap would be as follows: Old Calculations:: ~160 Hearts (300% increase) This PR's: ~70 hearts (220% increase)

This makes it way less important to drip feeding the playerbase in a controlled fashion as balancing it is a simple task of slightly increasing the increment if that's even deemed necessary.

  • Re-calculating existing players' hearts *

I believe that's already done automatically.

Pelotrio commented 10 months ago

I dont quite understand at which point of the game is having a lot of hearts is considered too strong. In the beginning you get a lot of different foods from the questbook and the sourroundings and as early as ev you can disable mobspawning if you follow official gate rules. Later in the game you get really strong armor and have basically zero combat unless you do tf or some other magic progresssion. I dont really understand why this would require any changes for a mechanic that I consider relatively nieche but maybe that comes from my playstyle. Can you elaborate at which point of the game you consider having a lot of hearts as too strong?

Hikari1nVoid commented 10 months ago

This is a nerf for nerf case.It shouldn't be accepted. Also what makes you strong is those late game armor which can counter kill command,not these hearts.

DrParadox7 commented 10 months ago

Also what makes you strong is those late game armor which can counter kill command,not these hearts.

On one hand, the arguments here acknowledge that late-game armors provide a near-godlike status, making the player virtually impervious to harm.

Later in the game you get really strong armor and have basically zero combat unless you do tf or some other magic progresssion.

On the other hand, it suggests that late-game players having over 100 extra hearts should not be nerfed because there zero combat at the stage the nerf would be most felt (implying all combat outside of bosses cannot even be considered a real threat).

Both perspectives tacitly concede that the late-game armor options alone renders the player impervious to what is considered "real threats", thereby questioning the necessity of a 220 health bar.

These arguments, while not overtly agreeing with me, make the point that the survivability offered by this mod's extra hearts at the very least greatly undermines the relevance of protective gear at the stage where I am trying to nerf it.

DrParadox7 commented 10 months ago

Added configs. You can argue balance among yourselves.

Hikari1nVoid commented 10 months ago

The key point is not late game.They key is the early game.You got most of these hearts from early stage/qb before EV(As not many good armor available).This already touches the red line for the pack and that's why I will call it nerf for nerf. Conclusion:Early stage players suffered&late stage players don't care=>early stage nerf.

Dream-Master commented 4 months ago

So what we gonna do with this pr? approve-> merge? reject? discuss again?

TerraSleet commented 4 months ago

My vote (for whatever it's worth) goes to reject, reasoning below:

What purpose does this change serve? As others pointed out max hearts are only relevant in pre-LV when you're vulnerable to infernal mobs and can't easily prevent mob spawns or craft decent enough gear to fight them. This PR doesn't change that (which is fine because IMO it's balanced fine as-is). Infernal mobs are mostly an early game survival challenge that also adds complexity to mob farming. Beyond that, hearts are 100% irrelevant because of OP armor and enchants like Last Stand. Doesn't matter if you have 10 hearts or 10 billion, so this change feels pointless to me - unless there are plans to make combat a challenge at all stages of the game, which would have to start with significantly buffing post-nether mobs, nerfing modded armor and removing Last Stand.

mitchej123 commented 4 months ago

I don't mind adding configs. This is used and supported outside of the pack. As long as it defaults to the behavior we want I'm fine.

Dream-Master commented 4 months ago

If this a config option and off by default we can add it. @DrParadox7

DrParadox7 commented 4 months ago

Go ahead and merge

DrParadox7 commented 4 months ago

Closes #37