Jump to content

Multiplayer - food spoilage / crops growing


daretmavi

Recommended Posts

I mostly play single player, but I'm thinking about creating my own multiplayer server.

I read, that one of the worst frustration is food spoilage or crops dying when offline. Game should be fun, but should not take over your real life. If you have to login to take care of your food or crops, than something is no right.

What about to stop food spoilage and crops growing, when player is offline (or no member of the players group is online). Maybe this could work only on claimed areas by the player (player group) to suppress some weird situations. If you get online, your crops (planted by you) continues growing and your food (in your chest, put in by you) continues to spoil.

Food in the inventory should not spoil at all if you are offline. So you can go to on exploration trip even if you log once a week.

  • Like 1
Link to comment
Share on other sites

The server already stops the progression of time when nobody is online. If you play with a group of friends that gets online together and stops playing aorund the same time, then it won't feel any different from how singleplayer works. The problems you have heard of occur on larger servers that have players on them for most of the day, spread across different timezones. If the server never gets to pause because someone is always online, then 30 ingame days pass for every 24 RL hours.

Your other suggestions are unfortunately not as clean-cut and easy as they sound at first glance. They either can be exploited for an ingame advantage, or they lead to unintended, un-fun, and immersion-breaking behavior (such as every single player on the whole server feeling pressured to run into their cellar before logging off, and emptying all of their shelves into their inventory, only to have to sort it all back onto the shelves when they next log back in).

  • Like 2
Link to comment
Share on other sites

13 hours ago, Streetwind said:

They either can be exploited for an ingame advantage, or they lead to unintended, un-fun, and immersion-breaking behavior ...

Yes, I know there are Risks, so maybe this could be on option in server config.

This is why I suggest to implement it only on claimed areas. If I understand claimed area correct, than only owners of that area can break, etc. blocks. This can be immersion-breaking by itself. I see claimed areas as something like time bubble :), if no owner is online, time is kind of stopped (crops not growing, food not spoiling, ...).

13 hours ago, Streetwind said:

(such as every single player on the whole server feeling pressured to run into their cellar before logging off, and emptying all of their shelves into their inventory, only to have to sort it all back onto the shelves when they next log back in).

Is this really worse than if you play once a week and always when you come back to your game, all your food is spoiled?
Is can be extreme frustrating and player would (and are) actually quit playing.

I don't see a big exploit in it. Player invested time and resources to get his food. Why should he lost it, only because he has a real life?
Players who are online more often are progressing faster, so the only advantage of the causal player is, that he preserved his food, but he can be in stone age, while other player are already in steel age. What an exploit is this.

If someone would use an extra player account to store his food, than this account could be banned.

Edited by daretmavi
Link to comment
Share on other sites

Well, not saying that nothing should be done. Clearly there's room for improvements. But perhaps we can do better than offering the choice between two suboptimal setups.

When you drill down into the problem, the real issue is the disparity in the passage of time between real life and game time. When you log in once a week onto a server that never goes idle, then somewhere around 200 ingame days will have passed... and at default settings a VS year only has 108 days. So almost two years will have passed since you last played. This does indeed ruin all your food storage except for the really long-lived things, like grain. And your crops will have had to endure the changing weather throughout all this time.

But this timescale was actually tuned for singleplayer. With this configuration, it takes 86.4 RL hours of playing for one full ingame year to pass, and that is a lot. Most games on the market are designed for total playtimes shorter than this - and that's only the first year, in the first world you ever try. We definitely don't want an even slower progression of time for singleplayer.

We can, however, accept slower progression in multiplayer. Even those players that are online every day probably don't play for much more than a third of a RL day, on average. So if we went and set the length of the month from 9 days to 30, a bit over three times the default length, then such a frequent player would have an experience very similar to singleplayer as far as it comes to seeing an ingame year pass by. And since the year now has 360 days instead of 108, the player who logs in once a week will see roughly half a year pass by since the last time they were there. Furthermore setting food spoilage to 0.3 will roughly triple the shelf life of foodstuffs to match the roughly tripled year length.

And hey, if the server is meant specifically for casual players, you could slow things down even further. If you even need to - because whenever the server is allowed to go idle, less time passes for everyone.

Unfortunately this approach isn't perfect yet, since the season integration isn't complete yet. Crops, berry bushes, and wild mushrooms, for instance, do not scale their growth times with year length at all. Nor do bee skeps, or the gestation periods and growing times of animals. All sorts of foodstuff you produce now keeps way longer, but still takes the same short amount of time to produce. At the same time, yield of food sources doesn't scale either, so preserving food for the now far longer winters requires much more work. Because of this, I'd say this is the area of the game that should be worked on in order to improve the experience on multiplayer servers. If the game can maintain its intended feel and challenge rating at any arbitrary time scale, then server owners will have a powerful tool to customize their worlds.

 

In the meantime, though, the casual player who logs in once a week can also do some things to improve their own situation. Such as, for example: farming only grain, not vegetables. Vegetables won't keep a single RL week, but grain will last multiple. Select a type of grain that will survive the temperatures around where you've settled - or settle somewhere you know at least one type of grain will survive being left outside. You can trade your grain with other players to obtain vegetables, or set up in an area with lots of natural mushrooms to supplement your diet. Also, go heavily into animal husbandry and beekeeping. Animals never die of old age, and breeding them will actually be easier if you skip forward in time whenever you log off. That supplies you with on-demand meat and milk, taking care of two nutrition meters. Don't bother to make cheese, just drink the milk directly. Bee skeps, and even harvested honey, do not ever go bad either. Do not attempt to store fruit, but instead try to obtain berry bushes, so that you can harvest fruit whenever you log in. Use your honey to cook jam to stretch your fruit supply - it may not keep, but it'll let you get away with fewer berry bushes, which I understand may be in short supply on servers. If you do it right, you should be able to keep your nutrition meters reasonably well satisfied without storing any food at all beyond just grain.

I mean... why would you even try to store all the food in the first place? You don't need to last the winter. Even if you happen to log on in mid-winter, you play a few hours and then log off, and you've skipped all the rest of it. Storage of any kind is almost entirely superfluous for you.

  • Like 3
Link to comment
Share on other sites

  • 4 weeks later...
On 9/25/2021 at 7:39 PM, daretmavi said:

What about to stop food spoilage and crops growing, when player is offline (or no member of the players group is online). Maybe this could work only on claimed areas by the player (player group) to suppress some weird situations. If you get online, your crops (planted by you) continues growing and your food (in your chest, put in by you) continues to spoil. 

Connecting spoilage to land claim and within the claim to the playtime of the players, sounds perfectly fine to me. I don't even see a problem programming this, nor any possible exploits.

It could also just be an option in the world config. You wouldn't have to use this mechanic when setting up a server, but it would be nice to have the option.

Link to comment
Share on other sites

An alternative option to consider perhaps is the ability to actually freeze certain foods solid. Frozen foods won't spoil. Of course we're talking about grand-scale freezers packed with ice and such... But the concept is somewhat there with the cellars.

Link to comment
Share on other sites

As for crops... I've played on a relatively large server before I had to quit due to my bogus internet connections. If you plan your crop growths out correctly with the server time, you can at the very least hoard a decent amount of food before your next potential hiatus from the server. And if you don't have massive fields of several hundred blocks of farm land to upkeep... Maybe you can even strike a deal with a local neighboring player to keep an eye on your farm plot while you're away for.. I don't know... A cut of the profit.

Having good reliable friends or even trustworthy business partners in servers can be of big benefit to you, and them.

Edited by Windego
Link to comment
Share on other sites

  • 4 weeks later...
On 9/26/2021 at 12:55 PM, Streetwind said:

[...] So if we went and set the length of the month from 9 days to [...]

default is 12 not 9 days per month. a real time day is 60 ingame days (ingame day default 24h and a ig-hour lasts for 60 irl-seconds) making it 5 months per 24 irl-h, hence default setting means slightly less than 3 ig-years (35 ig-months) per irl-week per default.

 

if i remember correctly food spoilage/cropgrowth etc. isn't tick based but derived from time, you could setup the server in a way that day length is doubled by using /time calendarspeedmul 0.5 and that way double the time it takes for crops to grow and foods to spoil, than add 3 days to each month via /worldConfig daysPerMonth 15 (making it 15 days lengthening a month to exactly 12 irl-hours) and lower spoilage to 0.8 via /worldconfig foodSpoilSpeed 0.8, meaning it would still spoil in the same amount of months as before that way you'd only have 14 ig-months per irl-week, with a good cellar (multiplying the spoilrate by 0.22 at best) you'd even be able to keep vegetables and fruits long enough for the next time you log on... And if you rent out your greenhouses to your more often online neighbor there is quite likely something growing in there anytime you go online... or the server can just be set up with /worldconfigcreate bool allowCropDeath false, which should mean you can plant it and harvest it when you come online a week later...

of course you could even go /time calendarspeedmul 0.25, making it only 1 passing ig-month each irl-day with the above settings (if the server never stops because there'd be always someone online)...

The problems with these options for configuring the server is of course the players that are online much more might not like longer nights and years, i'm not sure if hunger and sapling growth rate is tick based (though you can just adjust it too if thats the case).

Link to comment
Share on other sites

9 hours ago, Hal13 said:

default is 12 not 9 days per month. a real time day is 60 ingame days (ingame day default 24h and a ig-hour lasts for 60 irl-seconds) making it 5 months per 24 irl-h, hence default setting means slightly less than 3 ig-years (35 ig-months) per irl-week per default.

Erm... no? None of this is correct, sorry.

Don't take my word for it: launch the game, go to create a new world, and mouse over all of the presets. You will see that each and every one of them says "Days per month: 9 (7.2 real life hours)".

If you then click "customize" and review the options you have for that setting, you'll see that 24 real-life hours corresponds to 30 ingame days, not 60. Each ingame day lasts 48 RL minutes, each ingame hour lasts 2 RL minutes.

Link to comment
Share on other sites

5 hours ago, Streetwind said:

Don't take my word for it: launch the game, go to create a new world, and mouse over all of the presets. You will see that each and every one of them says "Days per month: 9 (7.2 real life hours)".

Then the wiki is wrong, again... under server commands worldconfig the default is listet as 12...

5 hours ago, Streetwind said:

If you then click "customize" and review the options you have for that setting, you'll see that 24 real-life hours corresponds to 30 ingame days, not 60. Each ingame day lasts 48 RL minutes, each ingame hour lasts 2 RL minutes.

Then either another default (/time speed) is wrong in the wiki (it says 60) or somehow the game doubles it to determine the irl-seconds per ig-minute...

but nevermind the math doesn't change that much, the only things that change in my calculation would be setting foodspoilspeed to 0.6 instead 0.8 to make stuff last for as many months as without the added days and that with /time calendarspeedmul 0.5 it'll be 15 ig-days per irl-day already, not just with setting it further down to 0.25.

Of course that's only relevant if one wants to somewhat keep the vanilla proportions between stuff spoiling & growing over the length of an ig-year...

 

As the spoiling and growing stuff doesn't spoil/grow connected to a timer but actually servertime based freezing the timer/time while someone is logged off won't work (it'll just spoil/grow instantly then when that persons loggs in), at least that's how i remember it working, without changing spoilage/growth completely. it's easier to play around with the settings until one gets to a point that's satisfying for the server's players.

I mean theoretically it might be possible to make an option for localised foodspoilspeed settings (still growth has no setting yet, apart from saplings), but if the player is able to set it themself in the end most will claim a small room and set it to 0 in there, won't they? And if serverstaff has to do it, it creates unneccessary additional work for them especially on big servers (on the small ones players tend to not be on 24/7 anyway)... Maybe a setting on cellar efficiency or something instead? that could be set globally and it wouldn't change too much, the setting could just be a multiplyer for how good cellars slow down foodspoiling.

Or even better introduction of ice cellars and later on heatpumps resulting in buildable refridgerators and freezers...

Edited by Hal13
Link to comment
Share on other sites

Yeah, the wiki is edited by volunteers, and may contain omissions, misconceptions, outdated information, and straight-up mistakes :)

The best course of action upon spotting something incorrect is to (first doublecheck it and then) correct the wiki yourself.

...I would offer to do it, but... erm... I kind of forgot my login... 😓

Link to comment
Share on other sites

1 hour ago, Streetwind said:

Yeah, the wiki is edited by volunteers, and may contain omissions, misconceptions, outdated information, and straight-up mistakes :)

The best course of action upon spotting something incorrect is to (first doublecheck it and then) correct the wiki yourself.

...I would offer to do it, but... erm... I kind of forgot my login... 😓

just found out what the problem with my calculation being of by a factor of 2 was/is, it seems calenderspeedmul has a default value of 0.5 and therefore already halves the irl-seconds passed before converting them into ig- minutes, therefore you'd have to set that multiplyer to 0.25 to get to 4 irl-seconds per ig-minute (and therefore 15 ig-days per irl-day)... another error in the wiki... maybe i should request an account to edit all the misinformation i stumble across?

forgetting the login is one thing, not having a login another... ^_^

Link to comment
Share on other sites

by fooling around with those settings i found another error in my calculation... /time speed x seems to be how many ig-seconds per irl-second, and most things not done manually by anyone rely on that (inclusing spoiling, growing, the pit kiln and charcoal pit, breeding)... without changing anything else just set time speed to 2 and you'll get 1 ingame day per irl day (provided no timeskips by sleeping), i highly recommend lowering the hunger rate and heighten the sapling growth rate if you do that (or not but then be prepared to really be a hunter-gatherer for quite some time)...

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.