Farming Friday

While Mystery Game No. 1 is making nice progress, in the spirit of “throw stuff at the wall, see what sticks”, I’ve decided to introduce what I call “Fun Time Fridays”. On Friday, assuming the rest of the week has gone according to plan, I get to work on whatever I like, as long as it’s feasible that a game or useful product will come out of it.

If this sounds similar to Google’s fabled “20% time”: it’s totally the same thing, except with a better name. The aim is twofold: one, to get out of the rut and make sure to have some fun, and two, to try new things that I wouldn’t otherwise have time for.

So today, I’m working on an idea I’ve been toying with for some time: a farming simulator. None of that FarmVille crap, a real simulator. Consider Raph Koster’s definition of a game (from his great book A Theory of Fun for Game Design): “a game is a series of interesting choices”. Then consider the choices a farmer has to make on a daily (or at least yearly) basis:

  • 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?

The list goes on. Factors that inform these decisions include:

  • soil type
  • soil quality
  • nutrients in the soil
  • amount of light
  • amount of shelter
  • needs of particular crop types
  • weather and climate
  • market prices
  • ethics

I think this could make for an interesting game, so I decided to use this Friday to make a quick prototype. The real thing would take place on a map, but since procedural map generation is not essential to the core game, I decided to stick with a text-based description of your available fields and their properties, not unlike your ’80s “Lemonade Stand” type of game. If the game can be fun in this form, that would be a very good sign.

I also briefly tried Maxis’s 1993 game SimFarm for inspiration, but found its 1993 UI a bit grating; it’s not the sort of game that’s easy to figure out without reading the manual.

The actual implementation would probably be targeting mobile or desktop, but for prototyping, nothing rivals the development speed of the web. Besides, I’ve been meaning to learn React for some time. Since I know its principles already, I think that investment will repay itself within the day.

Actually, some finishing touches on animations in Mystery Game No. 1 took up the morning and part of the afternoon, so I had a bit of a late start with this. Then I spent about an hour figuring out how to set up NPM, Gulp, TypeScript, React, ReactDOM and Browserify and getting a minimal example to show up. For that reason, I haven’t gotten very far. But now that it’s all set up, development should be fast, really!