The easiest way to describe Harvest Moon is as a farming game. However, it's executed in a different way from regular sim" style games such as Sim City or Transport Tycoon. In Harvest Moon you taken on the role of the farmer in an almost RPG way, and you run around planting crops and doing most of the work yourself.
There is also more of a focus on story and relationships, and there is a town full of people that you can befriend, and several lucky people that you can marry.
It's a quite a simple concept in essence, but layers of extras are added on to create a strangely compelling game. So what game design lessons can we learn from it?
There is a huge amount of freedom in the game, much like the more traditional sim games. Very little of the game or story is forced onto you, which gives the player a lot more control over how they progress.
Players can earn money with crops, livestock, mining or even just rummaging in the mountains for fruit and mushrooms to sell. Some routes are easier than others, there's really no set way the game should be played.
The social aspects of the game are also optional, and you can choose to befriend everyone in town and get married or stay in your farm like a hermit.
The freedom given to you also fosters a sense of discovery, as there are little stories hidden away in the game that you're free to discover at your own pace. There are a few cut-scenes to illustrate important events, but the majority of the story can be discovered entirely at the player's pace.
Some sim games can dig a little too deep into micro-management, but Harvest Moon gets it just about right. You plant seeds, water them and then pick the crops to sell. There are no complex menus and dialogs about setting prices or managing transportation. This helps to keep the gameplay light enough to be enjoyed more casually.
Being nice has an effect on the game, and can have rewards for the player. Some townsfolk may give you items, but some also open up new areas of the map.
A large example of this are the characters known as the "Harvest Sprites". There are seven of them in total, and if you're nice enough to them they will help out around your farm. You need to give them gifts in order to gain their friendship so that they'll help. You'll get bonus "friendship" points if you remember their birthday, and you can also wrap the gift for additional points.
In any RPG, it's beneficial to give the player a sense of ownership of the character. Very little about your farmer can be changed, and a few additions such as house decorating or changing clothes would have gone a long way to making the adventure seem more individual.
I grew up with text adventures, when making maps and writing things down was part of the game. However, there's a lot more complexity in modern games and keeping track of everything can get quite difficult, especially in an RPG.
The game does keep track of all your recipes, and has a library with shipping prices and crop growth times, but there is still a lot of information left out. A "Smart" notebook that fills in facts as you go could be useful, especially as not everyone wants to fill a Moleskine with pages of notes about a farming game.
Always be on the lookout to simplify things. Instead of adding new, complex features, see what you can remove until you're left with the core elements of what makes you game fun.
This does depend on your target market though. For example, a flight simulator aimed at hardcore fans won't be popular if you simplify it to a few key presses. However, most games can do without some of the more complicated elements.
On a slightly more technical note, take advantage of data driven game techniques. There is a lot of content in Harvest Moon, with around 20 different crops and hundreds of recipes. Coding each of these into a class would be a nightmare, so always be on the lookout for ways to make your code more data driven.
There is often the temptation to railroad players into playing the game exactly as you want it. This can either be to avoid bugs cropping up, or it could be because you want the player to experience the game as you designed it.
If you've ever watched someone play a game you've created, you'll quickly find they'll do things in a different way than planned. This doesn't have to be a bad thing. Give your players some tools and an environment to play in, and watch what happens.
You don't have to make your game completely open-ended, but look for ways to let the game take care of itself instead of events being heavily scripted. An added side-effect to this is that it gives a lot more replay value, and it can also generate those "You've got to see this!" moments for players.