It’s Fun Time Friday again! And a good thing too, because I’ve been busy with Mystery Game No. 1 all week, which I can’t blog about yet. So apart from the welcome break, the Friday farming prototype also gives me something to write about.
I’ll be using this post as an informal design document for the game, just reasoning my way through it as I’m writing. Let’s start with the list of (potentially) Interesting Decisions from last week:
- What crops do I grow?
- Where do I grow them?
- When do I plant them?
- When do I harvest them?
- How do I fertilise them?
- Which equipment should I buy?
- How much personnel do I need, and when?
It might help to view the game as a state machine, whose state is changed by the player’s actions and by the passing of time. Then the question is: what does the state consist of? And for this prototype in particular: what is the minimum amount of state we can get away with?
- equipment and personnel
- market prices
(I’ve already decided to keep animal husbandry for a possible future expansion.) These aspects all hang together in various ways, but I’ll try to break them down a bit below, and decide for each whether the prototype needs to incorporate it.
Managing finances is essential to a game like this. Time is the other major scarce resource, but being able to exchange time for money or vice versa (by hiring more hands or buying better equipment) makes for interesting gameplay decisions.
Decision: a cash balance is a must-have.
Of course your crops need something to grow on. This could be a fixed plot of land, and not part of the varying game state. But that would mean there is no element of long-term growth to the game. Numbers don’t get bigger; the game doesn’t get more challenging by increasing the number of decisions you have to take in the same time period. There’s nothing for the player to aspire to. So this one is also pretty obvious.
Decision: the game must allow buying of land.
(Leasing is another interesting possibility, but one that we can do without for now.)
Equipment and personnel
Land and equipment/personnel go hand in hand: the more land you have, the more machinery and people you need to take care of it. You can get by with less, but that means reduced parallelism during the busy seasons (planting and harvesting), and thus suboptimal timing. So there are definitely interesting player choices to be made here.
Let’s consider how the game would look without this aspect. Equipment and farm hands are used to work the land: tilling, ploughing, fertilising, sowing, reaping, and so on. In real life, these actions take some amount of time, presumably proportional to the area of land. If we don’t simulate limited availability of work, these would be instantaneous, but that would feel weird, and make timing decisions less interesting: the player can perform an action immediately whenever they think is the right moment, rather than having to create a schedule for their limited resources.
So let’s consider a slightly more complex approach. Working the land does take time. But instead of going all-out and letting the player decide on buying farm equipment and hiring people, these come “automatically” with buying more land. This adds the interesting scheduling decisions, but I think it will feel frustrating to the player that there’s no way to get more resources without also getting more work to do. So I don’t think this is a good option.
Decision: working the land takes time; equipment needs to be bought explicitly.
How about people to operate the equipment? In the simplest case, we pretend that tractors drive themselves. Interesting choices could be added by distinguishing full-time personnel from seasonal “part-timers”: a full-time farm hand would have a contract for at least a year, maybe twiddling their thumbs for some of that time, but in return their wage would be lower than that of a seasonal worker. People could also have particular sets of skills: driving, maintenance, repairs, and so on. However, I think most of this isn’t essential to the core of the game.
Decision: tractors drive themselves.
Market prices for seeds, harvested crops and fertiliser can either be constant, or vary over time. If they vary, it might pay to buy a lot of seeds while they are cheap, assuming the market price will rise afterwards. On the selling side, you might hold on to your harvest a little longer to increase the price fetched. However, to make this more than just a lottery, the market will have to be at least a little predictable. We could make the market price for a particular crop type fall during typical harvest season, making it potentially worthwhile to harvest before everybody else (at reduced yield) or after (at the risk of losing your harvest to frost).
With fixed (constant) market prices, a lot of the day-to-day timing decisions go away. The game would be more about predicting the weather than anything else. Furthermore, a strategy that works this year will also work next year; there will be no incentive to keep innovating in response to a changing environment, and the game will be much the same from year to year. Fluctuating market prices will give me, as the game designer, a great tool to keep the game interesting over a longer period.
Decision: market prices vary, both in the short and the long term.
Stockpiles and buildings
Let’s consider what the game would be like without any stockpiles. The game could auto-buy seeds as soon as you sow them, and auto-sell produce as soon as you harvest it. This would make sense if these things are perishable. Better yet, since no storage space is needed, we can do without buildings in the prototype as well.
Decision: automatically buy seeds and fertiliser, automatically sell harvest. No storage buildings for now.
Of course, crops aren’t fully grown instantaneously. This takes time, depending on the type of crop. Furthermore, the yield (per square metre) should also depend on circumstances, like weather and soil. So a single number to capture growth is not enough.
Decision: crops grow over time. They have a growth percentage increasing over time, and a yield percentage depending on growth and environment.
Pests and diseases may also affect crops, often severely. There are definitely interesting tradeoffs involved with these. A monoculture is at a greater risk, but might give greater profits. Pesticides can reduce the risk, but cost money and time, and may reduce revenue because you can no longer label your stuff as posh “organic” produce. However… I think this need not be in the prototype.
Decision: add diseases and pests later.
A farming game without any weather would seem silly. In the simplest case, we just have a sine curve with a period of 1 year that describes the “weather quality”, with no variations from year to year. However, wouldn’t it be far more interesting to have varying weather? There could be a long-term forecast, proclaiming whether the summer will be long, short, hot, cold, wet or dry, of course with some degree of unreliability built in. And there could be a short-term forecast, which is more reliable the closer it is to today. Based on these forecasts, the player could choose to play it safe and wait until this year’s frost is gone for sure, or to take a gamble and plant early so as to beat the market.
Decision: weather varies over the short and the long term. Forecasts exist for both.
What about the aforementioned “weather quality”? In real life, weather consists of sunshine, temperature, wind and precipitation. Would these add significant interesting decision making to the game? I would argue yes: some crops require a lot of water but not a lot of sunlight, others can cope well with wind but perish if they get too wet, and so on.
Decision: weather consists of sunshine, temperature, wind and precipitation.
Let’s assume that the climate is such that nothing will grow in winter, and all fields will lie fallow. With no stockpiling, there will be little game state that carries over from year to year, so long-term planning is not needed; you can just decide at the start of each season what you want to do that year. The main driver for longer-term planning can be the state of the soil, enabling techniques like crop rotation. I think this aspect is full of interesting decisions; in fact, it’s what mostly drove me to this game concept in the first place.
Decision: the soil is stateful.
This takes us to the heart of what crop farming is all about. It turns out to be a huge subject, with a lot of scientific research behind it, and far more involved simulations being done than I could ever want to do in this game.
What soil state do we need? Some background reading helps. The soil needs to contain nutrients. The level of ground water is also important, as is acidity. Each type of crop has different preferences regarding these, and also has its own effect on the soil. The crop’s yield will be impacted by how closely its preferred soil composition is matched.
Let’s consider nutrients. There are three primary nutrients that are important in various degrees to various types of crops: nitrogen (N), phosphorus (P) and potassium (K). Each type of crop has its own requirements, and not only the quantities but also the ratio between these elements is important. For example, legumes (e.g. beans) actually add nitrogen to the soil, whereas most other crops consume it, making legumes essential to most crop rotation schemes. Fertilisers are designated with three numbers N-P-K, for example 13-00-44, to indicate the amount of each. With a limited palette of fertilisers available, with each crop making demands on both quantity and ratio of nutrients, and with each crop consuming (or producing) them in different ways, this is very fertile ground for interesting decision-making with enough information to make it not just random, but also with no obvious best solution.
Decision: simulate the amount of N, P and K in the soil. Ignore other nutrients.
How about soil acidity (pH)? Again, much to read about this topic. Whilst certainly important to plant growth, in real life acidity is easy to change independent of other factors, so not a great candidate for interesting gameplay decisions.
Decision: ignore soil pH.
And, of course, there’s water. Rain obviously adds water to the soil, whereas sunshine evaporates it at the surface. Over time, water drains into the ground at a rate dependent on soil type (sand, clay, and so on). Farmers can affect soil moisture levels using various irrigation systems, from ditches to sprinklers. And there is interaction between water and nutrients: excessive water flow will flush away some nutrients (depending on type and form), but some water is needed to dissolve nutrients so the plant’s roots can absorb them. For now though, I think I can keep it simple.
Decision: simulate the amount of water in the soil as a simple percentage. Simulate only a single soil type.
As if all this isn’t complex enough, soil is not uniform over depth: nutrients might only be present near the surface (e.g. after you’ve just added fertiliser) or the ground water level might be very deep. Some plants root more deeply than others, making depth a relevant factor. Do we need to include this in the simulation? I will try not to.
Decision: pretend the soil is uniform over depth.
Despite all the simplifications, I think these factors already make for a sufficiently complex and interesting soil model. There will definitely be differential equations involved. And taken together with market prices, weather forecasts and environmental properties, I think we might have an interesting game here. Of course this post doesn’t fully describe it, but that’s the point of prototyping; I just wanted to identify roughly what I should and shouldn’t build. Off to implementing it now!