Farming issue is still at large

got to sit down and play some stonehearth today, so I can actually get back to participating at least a bit for today.

now, I’ve noticed that one of the issues I had back at A10 or A11 is still around, one that makes hearthstone not very survivable past a certain point, or at least not growable.

currently, if you set 2 hearthlings to be farmers, the second hearthling will be wasted due to how job priority is set up. Example A: set 2 hearthlings to be farmers they start from roughly the same spot, and then set a 11x11 square to be tilled. at the same time, set that field to grow turnips. the hearthlings will set forth to till the field. Hearthling 1 (Misty) tills up a plant tile (the bump) while hearthling 2 (Raguna) tills up the tile next to it which is just empty space. Misty and Raguna till the tiles at roughly the same time, and so both tiles are tilled. Raguna then turns around and runs over to the plant tile Misty tilled to plant some turnips, while Misty runs to the next tile to be tilled (another plant tile). after finishing tilling, Raguna runs over and plants turnips there too, and this continues until Misty reaches an empty dirt tile, and Raguna goes back to tilling dirt. This seems like an increase in production.

Example B: Set Misty and Raguna as farmers, they start away from each other, and set up a 11x11 farm between them. Misty tills a plant tile on one side of the farm, Raguna tills an empty tile on the other side of the farm. Raguna notices the plant tile on the other side and runs over to plant turnips, delaying his actions by making him run over there. Misty then tills an empty tile before Raguna manages to finish planting turnips. Misty starts tilling a plant tile and Raguna finishes planting, and goes to till more dirt, but halfway through his tilling animation, Misty has finished tilling the plant tile, and Raguna runs over there to plant some turnips. The tile he was tilling is halted halfway through, and no tilling gets done. This is a minor setback.

Example C: Misty is already a farmer, and has completely tilled and planted a farm. In fact, the farm is almost done growing. Raguna comes into town and you make him into a farmer. The turnips finish growing, and Misty and Raguna go to harvest the turnips. Misty gets there slightly before Raguna and thus finishes harvesting her turnips just before Raguna does, leaving an empty plant tile. Raguna now stops harvesting his turnip because there is an empty plant tile. He runs over to the plant tile to replant a turnip and runs back to restart harvesting that turnip, as the animation has been reset. by the time he’s halfway through harvesting the turnip, Misty has finished harvesting another turnip, and Raguna once again runs over to plant another turnip. the efficiency continues to spiral downward until Misty goes to unload her bag full of turnips somewhere. dammit Raguna!

as you can see, although you have set 2 farmers, only 1 farmer’s load of work is managing to get done because of the downward spiral in example C. A lot of time spent in animation is being wasted by stopping mid-animation to do another job.

observably, this means that the job priority for farmers is Planting>Harvesting>Tilling. example C can be prevented by changing the job priority to Harvesting>Planting>Tilling. Preferably, all 3 could be prevented by making it so no job action (as in not building, mining, or hauling) can be interrupted by anything except for hunger, sleep, and danger. In this case, even though there might be a job of higher priority becoming available, a hearthling will not start doing it if they are currently in the middle of another job. This will prevent wasted animations.

also, +1 to anyone who gets the reference made in the example lol

3 Likes

I noticed this too… and i agree with your solution… make their actions uninterruptible unless for hunger/sleep/danger and it wont be a problem anymore.

I think it used to be planting first… but they changed it because it slowed down crop growth because they wouldnt plant anything until everything was harvested which meant longer times till the next harvest.

1 Like

the problem, though, is that then you get a lot of crops that just aren’t harvested, and they rot. in a game I played 2(?) months ago (I believe it was during A11), I made 8 11x11 farm tiles, but thanks to wheat, nothing else was ever harvested, and all of my farmland was rotten. even after getting rid of the wheat, I had to reduce it to 4 tiles just to make it somewhat sustainable, and that was with 2 farmers, since the 2nd farmer attributed absolutely nothing to production. never harvesting half of your crops just so you can grow the other half of your field doesn’t lead to an increase in amount harvested, only an increase in the amount of harvests.

I believe the main reason for doing that was actually because once they harvested the tile, they were already standing there, so by planting it immediately, they would save time, instead of running across the field to plant it again, and, like you said, the sooner it’s planted, the sooner it’s harvested. my first suggestion was just a work-around for the issue that’s mainly causing the huge loss of productivity on subsequent farmers. it’s by no means a fix, and it’s hardly efficient, and there would still be some loss in productivity, but it’s minor compared to the loss caused by example C, which is downright devastating. stopping animation interruptions would eliminate all of the inefficiency while simultaneously allowing farmers to continue being efficient with their planting, and keeping harvest frequencies high.

currently, production from farmers at 1->2 is 1->1.1. it’s more efficient, but at that rate I’d rather make the hearthling something else, something more reliable. like, maybe a hunter or shepherd. solution 1 would change it to 1-> 1.7-1.8. not the best, but at least the extra farmhands would be doing something. the reason I mention it at all is because it’s very easy to implement. it’s just a change in variables. solution 2 would change it to 1->2 (which is what you would expect from a 100% increase in farmers - a 100% increase in production). this solution could potentially be much harder to do, even harder depending on the code.

if you plots were around 3x9 and 6x8

Farming is one part of the problem, the food IS the problem.
It is the same situation for the food they eat. Instead of eating your awesome meaty stews or anything better than turnips, they take whatever they want. And then they say “Hey, I’m always eating the same food !”.

what i do in that situation is stop makeing that specif food and change it. basicly changeing what ordor the food list is in.
[carrots,pie,bread,cake] -> [cake,pie,carrots,bread]
although it would be easier if the harthlings ai for food picking was changed by defualt or a mod.
{
race:harthling
rank:worker
workprocess:job,mine,hual,build
todaysfoodchoice:random.randint(1,15)
if 1 eat pie
if 2 eat carrots
if 3 eat bread
if 4 eat meat stew
if 5 eat eggs…
careforself:danger,food,sleep
when idle:
play with cards, write a story tell storys, hopscotch
when towndefncemode:
weak in spirit:
flee and not come back running to the threat
strong in spirit:
fight along militia and when low on health,hunger or sleep retreat to live another day.
}
shush i know they dont use python.

I would love if there was things for them to do when “idle” maybe even have a break time during a section of the day where they could actually behave like people for awhile rather than slaves who never stop working.

oh trust me, there is. sets a forest to be chopped down in an attempt to get hearthlings to stop sitting around the fireplace and work for once lol

aside from the current “idle” behaviour that’s actually just bugs/inefficiency, there almost certainly will be an idle period, but it’ll likely have to be mandated by you. in other words, your hearthlings will need rest or their happiness will go down and the like, so you will have to give them breaks.