Building a command line tool to design a farm layout in Stardew Valley
johnlekberg.com
johnlekberg.com
1) Stardew lets you grow crops, but it’s time consuming to water them
2) Sprinklers water crops for you, but starter sprinklers water 4 squares only
3) Better sprinklers are your reward for growing lots of crops
4) So having an optimized basic sprinkler layout is time-efficient and useful
Scarecrows are necessary to keep crows from stealing crops, and have their own protection radius - similar to sprinklers, but wider. The python script linked here is a useful programming exercise for trying to start developing these layouts by code, and many improvements could be made to improve the aesthetic - but if you just want to write a quick layout generator and grow some crops, it’s perfectly sufficient as-is for basic sprinklers. Once you progress to advanced sprinklers, you don’t need this algorithm as much as you need a tesselation pattern that fits within the game’s constraints, and that’s what shows up in the player-built maps linked above.
If a picture is worth a thousand words, then go to https://stardew.info/ and scroll down to the “Useful” collection maps. The first map shown is a gloriously efficient honey farming operation: you have to plant a flower within the beehive’s radius, and you have to be able to walk up to the beehive, so this layout meets those rules, while doing so in a way that’s pleasing to the eye.
https://storage.googleapis.com/planner-renders/pink-mayfly-3...
SimCity fans may remember “Magnasanti”, where the same rules and principles were applied: Tesselations of constructs designed for maximize people per square, with the bare minimum of infrastructure necessary to deliver that. Magnasanti was designed by a human being using graph paper and is optimized beyond imagining, just like those Stardew “Useful” maps. HN discussed Magnasanti before:
https://news.ycombinator.com/item?id=16933265
And I’d just like to highlight how much this image from Magnasanti map development could be an image from Stardew beehive map development:
https://rumorsontheinternets.files.wordpress.com/2010/10/mag...
Not sure if you're referring to the same map I'm seeing first:
https://storage.googleapis.com/planner-renders/pink-mayfly-3...
It looks to me like there are a number of beehives that can't be accessed. Also some of them may be a bit far from the flowers.
EDIT: Additionally, when collecting from the beehives on the inside you would be more or less guaranteed to pull up your flowers on accident once they were full grown.
Stardew valley is a great game too, and much more peaceful.
This seems to account only for basic sprinklers that water 4, it would be more useful to account for 8 and 24 models.
Would the optimal placement for iridium sprinkers just be in the center of their coverage area? Seems like this script would always have waste areas too.
And actually it's a more complex problem - what happens if you include crops which you can't walk over, but have repeat harvest (like beans)? Back in the day of Harvest Moon you often had to waste a square because you couldn't access the centre.
In the original game(s) there were other constraints like seeds being scattered in a 3*3 grid centred on you. You couldn't sow individual tiles. At least now you don't waste 1/9 of your seeds on inaccessible tiles.
It would be fun for Stardew to model things like companion cropping, where you could get a productivity boost by planting certain things next to each other. Or if trees/buildings would shade areas. Or if pests were actually a thing, but maybe that would give real life gardeners PTSD when your whole farm dies of blackfly.
Looking at those outputs is a little confusing since not all dots will actually be watered. The partitioning also adds to that.
Now if it included scarecrow placement and shortest distance for non-traversable crops like beans, that would be something else...
I think this could be reframed into an interesting homework assignment given the right description of the rules. I really want to emphasize that this is a very cool article though. Big fan.
Personally I wouldn’t use that random layout on my farm, it would be an assault on my eyes ;) Form trumps function.