June 25, 2017, 08:41:18 AM

Author Topic: How to Spoil Food  (Read 1887 times)

Impaler

  • Full Member
  • ***
  • Posts: 145
    • View Profile
How to Spoil Food
« on: August 06, 2014, 05:02:05 PM »
The infinite lifespan of most food items presents a significant gap in the games realism and challenge, it's been said many times that sieges can't be threatening when the player has a untouchable food reserve.  Spoiling food would limit the size of reserves and also introduce a lot of potential for happiness mechanisms, without fail in all cultures and at all times eating fresh food is considered highly pleasurable and rotten food is extremely unpleasant so giving the player control of what (and perhaps how much) is eaten is the single most powerful happiness tool in the players arsenal.

The main problem with implementing food spoilage is how to present it to the player in a understandable format.  The naive implementation is to simply make each food item 'rot' after a set period of time.  As most crops are harvested in a short period of time this means an equally short period of time later in which it will all rot.  This can be very hard for the player to manage as sudden disappearance of food can seemingly come out of no ware and put the settlement in danger of starvation.  Worse the player could be confronted with a quandary if foods rotting time is sufficiently long that multiple batches of different ages of the same food stuff are in storage at the same time, a strawberry that is a month old is now very different from one that is a year old and about to rot.  Displaying all this information for every type of food stuff would be an interface nightmare.

Thus I propose that food rot on a PROBABILISTIC basis rather then on a purely time driven basis, think of it like radioactive decay, over a given period of time each unit of food regardless of age has the same change of rotting.  This eliminates the need to distinguish between different strawberries, the player just needs to know his total strawberry count and he can accurately predict how many will rot over any foreseeable timer period.  We can go further by grouping food into classes of equal decay rate, if all strawberries, apples and other fruits have the same decay rate then their quantity can be aggregated without impairing the players ability to predict.  I believe that just 4 classes should be adequate, half life is relative to a real year for illustration purposes, adjustment to Gnomoria day/month ratios will be necessary of course.  AI of course eats the most perishable food first.  Lastly it is vastly simpler to program as food doesn't need to hold a variable to record it's age, we simply iterate all food on a regular basis like once per day and roll random numbers to rot or not rot it.

Very Perishable - half life 3 days     (Grapes, Strawberry, Milk, Sandwich)
Perishable - half life 2 weeks          (Oranges, Eggs, Meat, Bread)
Stable - half life 3 months               (Apples, Sausage)
Very Stable - half life 1 year            (Wheat)

In addition it makes sense to have several stages of rottenness before food items disappear completely so the player can both see the gradual change and that the rotting dose not immediately removes food from possible consumption but rather reduces potential happiness from the loss in quality.  Again 4 states seem appropriate, each food retains it's original perishability rate as it rots so highly perishable milk would continue to advance through each state at the same probability.

Fresh - Maximum Happiness gain
Stale - neutral Happiness
Rancid - Negative Happiness, 25% reduced nutritional value
Rotten - Very Negative Happiness, 50% reduced nutritional value plus disease potential

Rotten food that decays further simply disappears completely into unusable muck that simply needs to be cleaned up.  The AI automatically eats the most rotten food first but the player can set a lower limit on what will be eaten, so for example Stale could be selected as the limit and anything below that (Rancid and Rotten) will be thrown out immediately and only Stale and Fresh will be eaten.  Any of the 4 levels can be selected as the limit and Stale would be the default limit.  Setting a higher limit guarantees more happiness but will result in more food being thrown out, a lower limit will guarantee no food is wasted but at the cost of lower happiness.

Lastly we want to let the player control the quantity of food consumed, many of you may remember Oregon Trail and it's food settings, again I'll go with 4 settings here, shamelessly ripped strait from OT.  I'm assuming that Gnomes don't have fat reserves so some of the effects here like disease and weakness are more immediate then would be logical, loss of strength is a major factor in making military weak.

Sumptuous  - 133% of requirements, bonus happiness
Filling - 100% of physical requirements for normal work, normal happiness
Meager - 66% of requirements, work slows, strength reduced, happiness penalty
Bare Bones - 33% of requirements, work nearly halted, strength nearly gone, large happiness penalty, disease very likely

Between the two big 'levers' of food quality and food quantity the player gains a lot of control over their settlements happiness and the game becomes a lot more flexible to changes in food production, we move away from the boring binary states of 'more food then I can eat that piles up to the sky' and 'less food then needed so mass starvation and rapid death'.  Having this kind of flexibility is the first requirement of making food production less reliable as under the current system it will just push the player into the death zone without any real way to respond.  But with Perishable food and these simple but powerful management settings adds immediate game-play while opening the door to future improvements.

Onishiroi

  • Newbie
  • *
  • Posts: 27
    • View Profile
Re: How to Spoil Food
« Reply #1 on: August 08, 2014, 08:02:30 PM »
While that add considerable reality, I think it also adds more complexity than It adds to gameplay value. At the moment, in a kingdom that goes well, it's not hard to have surplus food (make it a capital S in surplus...) that could counter spoilage. In that fashion, the complexity of the proposed system would add little change to the actual gameplay, in the fact that I could essencially counter the effect by making huge stocks (wich is already done even unwillingly).

Maybe we could make something like making food not placed in a storage having a (very) faster decay rate, and food placed in special storages having slower. This way, I could be directed to think "should I spend resources building this metal barrel for my drinks and priorize hauling of this food storage or invest in more distylleries to make excess to compensate de spoil?", much like the golens surging from excess unstocked goods made players reconsider how they manage stocks.

I'm not disagreeing with ye, I really think that actually food is something that needs to be changed, since it's easy to overproduce (I have trouble only in the first winter, if any) ant even the problems of overstock (MANTIS! It seems like Moses cursed us!) can be overcome with a merchant stall... add that gnomes don't mind eating only the same thing for life and there's not even need to have multiple food sources as it would be in a realistic scenario. We really need something to make it demmand a more profound though in player strategy and decisions, and allow for more different approaches that change more than just the color of the product, but I think that your proposal as it is adds little do real game decision while adding some complexity that would quickly become a "oh well, from time to time food decay, so make surplus. Oh, we already do. Thanks, less Mantis will be coming now".

Impaler

  • Full Member
  • ***
  • Posts: 145
    • View Profile
Re: How to Spoil Food
« Reply #2 on: August 08, 2014, 10:30:21 PM »
It's obvious that food is excessively generous in Gnomoria (a hold it's DF roots) and that means their's no challenge from the food supply portion of the game past the first year just as you said.  But under the current non-spoiling paradigm their is absolutely no way to fix that problem, any decrease in food output will simply result in bigger farms and perhaps 1 additional years of tight food at the start of the game.  Once your food production exceeds consumption your supplies will grow towards infinity and food supply will never be a challenge again. 

Spoiling food is not the whole solution by any means, it's simply the frame work that needs to be in place for any OTHER fixes to actually matter, and I'd very much like to see thouse other fixes like happiness and health based on food diversity, and more realistic and variable (crop failure) output of farms.

Food preservation be it by processing the food or putting it in containers fits into the perishability system I described quite naturally, you can see where I have Sausage being more stable then Meat, so Sausage making is preservative.

Thus I find your counter proposal odd in that it is not counter at all, it seems more an extension onto what I've described, slower decay of containerized food necessitates a decay mechanism and different rates of decay which is central to what I'm proposing.  What dose not work is exempting food stored in containers from spoilage, that just repeats the 'bigger farm' problem by appending a container making industry to the food production chain, your food stocks still just grow to infinity.  A container industry (or any labor consuming food preservation) dose achieve one thing though, it will make a kind of 'knee' in the difficulty curve as you try to accumulate food stores, if your living hand-to-mouth (as is typical early game) you save resources by ignoring containers/preservation.  This is good because it allows us to make food supplies tighter in the late game without completely starving out the player in the early game.  In other words it's an adaptive difficulty ramp-up mechanism.

Their is a lot more here then just "food decays so just make more", I've proposed two big mechanisms for managing the consumption side of food, currently the player has absolutely zero control of consumption, these new decisions for the player to make will require constant adjustment based on changing food supply situations.  Decisions like this are the soul of game-play in my opinion

Grahbarn

  • Guest
Re: How to Spoil Food
« Reply #3 on: August 09, 2014, 01:41:31 AM »
Don't forget, RoboBob works ON HIS OWN! (has done since creation), only a few people have helped him with bug fixes over time (i think) and they know a bit about coding as well... although they do not give him constant support, if any..

What i am trying to say is, Rob probably won't implement this if he is working on his own, as its too much for one coder to handle... If you or someone else was willing to get to gether and colaborate on this there would be more cahnce of seeing it happen

a VERY good idea though, and i would like to see more realism added to the food production myself, but its a GAME

Juord

  • Full Member
  • ***
  • Posts: 249
    • View Profile
Re: How to Spoil Food
« Reply #4 on: August 09, 2014, 02:27:25 AM »
Don't forget, RoboBob works ON HIS OWN! (has done since creation), only a few people have helped him with bug fixes over time (i think) and they know a bit about coding as well... although they do not give him constant support, if any..

What i am trying to say is, Rob probably won't implement this if he is working on his own, as its too much for one coder to handle... If you or someone else was willing to get to gether and colaborate on this there would be more cahnce of seeing it happen

a VERY good idea though, and i would like to see more realism added to the food production myself, but its a GAME

Wait.
This is a suggestion, in the forum "suggestions".

Where is the problem ?
~1700 hours on Gnomoria

English is not my native language, thanks !

Merry76

  • Moderator
  • Hero Member
  • *****
  • Posts: 3448
    • View Profile
Re: How to Spoil Food
« Reply #5 on: August 09, 2014, 06:05:18 AM »
I really love this suggestion, because it mirrors the suggestion I made a while ago. However, I chose to deal with it with the quality that is already in the game, but the core suggestion stays the same.

Introduction of Rot to Food

Both suggestions try to handle the overabundance of food, and try to make winter a bit harder than it is (because it isnt really hard right now... it was a bit more dangerous back when you couldnt eat goblins and ogres...)
Have a problem or a fortress so awesome it needs to be shared?

Well, go on, dont be shy! Use the GnomeworldPool Dropbox account!
How to share Savegames

Grahbarn

  • Guest
Re: How to Spoil Food
« Reply #6 on: August 09, 2014, 11:10:27 AM »
umm... why should my post be a problem??? all i said is that rob works alone, and as such MIGHT not implement it, but that it was a good idea... i never said he WONT implement it :S

Juord

  • Full Member
  • ***
  • Posts: 249
    • View Profile
Re: How to Spoil Food
« Reply #7 on: August 09, 2014, 12:12:36 PM »
umm... why should my post be a problem??? all i said is that rob works alone, and as such MIGHT not implement it, but that it was a good idea... i never said he WONT implement it :S

The purpose is not implementing.
The purpose is suggesting.

Your role is not to say what Bob can do or not, he knows better than you or us what he can do.
Here you just throw your idea to increase the game experience thanks to you experience, that's all.
Bob will read it and if something is interesting at this point of view, he will check it for a possible future release.
~1700 hours on Gnomoria

English is not my native language, thanks !

Grahbarn

  • Guest
Re: How to Spoil Food
« Reply #8 on: August 09, 2014, 01:16:56 PM »
ok so next time I myself come up with an idea, dont hate me for it (i know a few have) im only expressing my oppinions, its a free world after all

Juord

  • Full Member
  • ***
  • Posts: 249
    • View Profile
Re: How to Spoil Food
« Reply #9 on: August 09, 2014, 01:25:57 PM »
ok so next time I myself come up with an idea, dont hate me for it (i know a few have) im only expressing my oppinions, its a free world after all

It was not an idea or an oppinion than you expressed here.
I let you read your post again :

Don't forget, RoboBob works ON HIS OWN! (has done since creation), only a few people have helped him with bug fixes over time (i think) and they know a bit about coding as well... although they do not give him constant support, if any..

What i am trying to say is, Rob probably won't implement this if he is working on his own, as its too much for one coder to handle... If you or someone else was willing to get to gether and colaborate on this there would be more cahnce of seeing it happen

a VERY good idea though, and i would like to see more realism added to the food production myself, but its a GAME

It is more a brake for suggestions than a suggestion...
Think twice.
« Last Edit: August 09, 2014, 01:27:46 PM by Juord »
~1700 hours on Gnomoria

English is not my native language, thanks !

Grahbarn

  • Guest
Re: How to Spoil Food
« Reply #10 on: August 09, 2014, 05:03:57 PM »
ok let me explain myself fully then, if my aspergers allowes it

I said that rob is very buisy and probably wont implement it as he is working on his own and the fact that it might be too hard to code...
I also go on to say that he might need some help to bring this about.

i will also quote myself "a VERY good idea though, and i would like to see more realism added to the food production myself, but its a GAME"

what i meant in the above quote is that yes, it is a very good idea and one i would like to see implemented... at the same time, me saying it is only a GAME means what it says, it is only a game, and to have too much realism might possibley spoil the majority of fun ( i know i DIDNT say that, but thats exactly what i meant)

sorry for any confusion on my part

Impaler

  • Full Member
  • ***
  • Posts: 145
    • View Profile
Re: How to Spoil Food
« Reply #11 on: August 09, 2014, 07:26:16 PM »
Grahbarn:  I think Juord's point is that your reply didn't really advance the discussion of this particular suggestion as the same comment could have been said about ANY suggestion on this forum.  We all know how the game is developed and suggestions are just that, a suggestion to the developer.  We players try to review and critique each other suggestions to create the best possible suggestions and to give Rob a sense of what features are most desired.


Now I would like to point out what I think was in error on your part, this idea is by no means hard to code, trust me I am a programmer.  The spoilage process would be done when iterating objects and would be a simple random number generation or a counter that rots every Nth item.  The consumption management options would take a bit of UI work to do but 2 sets of radio buttons hardly represent a lot of work their, and the code to put them into effect would just be a switch statement somewhere in the AI, probably on the period of time between meals or the amount eaten in a meal.


Now if you think it is too hard for the PLAYER to manage and understand what's going on then that is another issue, but so far I haven't seen anyone say that, I think doing the rotting Probabilistically is the key to making spoilage easy to comprehend because it 'flattens out' so many of the details. 

I should acknowledge Meryy76 really already had all the key effects like happiness and diseases around rotting in his original suggestion, except for this key Probability thing which is really my only original idea here.  And it is all just for the players benefit, the game could easily track the age of every individual strawberry and make it rot exactly X days after picking, but it would be an incomprehensible mess for the player.  Lastly all the consumption management options are just things I pulled from Oregon Trail so I can't really call that original either.


Also no one wants rotting food for realism sake alone, realism is admirable (for the immersion to player feels with the game environment) but only when it improves game play, some of us feel that adding more challenge to feeding your settlement will be an improvement.  Others may feel that food systems should remain minimal.  I think a lot of the distinction comes down to 'sandbox' vs 'rouge-like' play-styles, Sandbox play style doesn't really want to be faced with challenges that have a real chance of ending the game because they want to build without being bothered and least of all to be reset to square one, Rouge style wants to see a whole slew of ways to die and important choices being made to adapt to constantly changing threats.  Having options to turn off invaders (or turn them up) is a big appeasement tool as it lets both camps play the way they want, I could easily see food spoilage becoming optional for the same reason.

lawlbotsama

  • Full Member
  • ***
  • Posts: 102
    • View Profile
Re: How to Spoil Food
« Reply #12 on: August 09, 2014, 11:24:08 PM »
the only thing i would be worried about with rotting food is that my gnomes might eat something rotten when there is perfectly good food available.  i'm sure this could be easily fixed by having gnomes always prefer fresh food first.

and what would happen to rotten food other than when it completely rots away?  does it get moved to a rotten food pile? smelly lol

only reason i kept cats in DF was to eliminate vermin.  vermin corpses started to stink if they weren't moved outside or to a shaft where sunlight is shining thro.  i kinda miss miasma but i don't miss DF. 

sorry - bit off topic i guess.   rotten food would smell tho and possibly affect the gnomes happiness. 

Merry76

  • Moderator
  • Hero Member
  • *****
  • Posts: 3448
    • View Profile
Re: How to Spoil Food
« Reply #13 on: August 10, 2014, 07:07:12 AM »
Also no one wants rotting food for realism sake alone, realism is admirable (for the immersion to player feels with the game environment) but only when it improves game play, some of us feel that adding more challenge to feeding your settlement will be an improvement.

We feel the same way then. Realism can be a very good thing (it makes the game world more "believable", and thus more interesting), but driven over the edge it can be fun destroying. After all, if I want perfect realism, I open the door and take a walk.

I feel Gnomoria could do with a little more danger from food shortage - its way too easy to keep gnomes fed, and a bit of (manageable) difficulty would do the game some good. I have to add that I definatly do not want that the player HAS to micromanage his stocks to survive. Stuff like that is rarely fun, and fun should be the goal of any game. On that note, its a pain to see what qualities of -anything- we currently have, maybe that needs some help too.

And yes, games can be challenging to keep your inhabitants fed and still be fun. Take a look at Banished for example. Death by starvation is rampant there, and a crops blight can kill off your village if you are not careful. I havent played much Banished, so maybe its just me being a muppet.

On a side note: can we please stop with the discussion if its allowed or not to shoot suggestions down? It should be possible to say if you dont like a suggestion, especially if you reason it well. I have seen this discussion several times over (because I tend to shoot some suggestions down), and I cant see the point of it.
Have a problem or a fortress so awesome it needs to be shared?

Well, go on, dont be shy! Use the GnomeworldPool Dropbox account!
How to share Savegames

Cat

  • Moderator
  • Sr. Member
  • *****
  • Posts: 335
    • View Profile
Re: How to Spoil Food
« Reply #14 on: August 10, 2014, 08:46:07 AM »
Let's keep on topic here, now that you've worked out your differences.

I think we can all understand that not all suggestions are implemented, and we all understand that RoboB0b is busy with his own priorities within the game. I feel Merry76 gets the closest in saying it right now, that there should be some sort of system, but one that isn't unbearable.
Wiki | Bugzilla | Chat | Bugs
The views expressed are my own and do not reflect the views of Robotronic Games unless specified as such.