The game that I am making currently is about cooperation. So what exactly does that mean? It means that every mechanic, every puzzle, and even every piece of art must be scrutinized to determine if it is core to this concept.
The process by which I create new mechanics for the game goes something like this:
Idea – From somewhere, either through playing the game, or from other games or other media, get a possible idea for a game mechanic.
Mentally Prototype – Imagine how the idea would affect the game. For some ideas, this is very easy. For instance, if the element has already been in another game. For others, I may have to skip mental prototyping, since the idea cannot be easily imagined.
Mentally Check for “Core-ness” – An interesting idea that does not fit with the games core theme is not worth implementing. For my game, the core theme is cooperation. In life, people like to establish relationships with people who have strengths where they themselves are weak. (In addition to common interests and similar experiences) Based on this aspect of human relationships, the players in my game must always have different abilities. Usually the bad ideas are those which do not create a give/take relationship between the players. Bad ideas are those do not create interdependence, but instead spur self-centered behavior.
Prototype – If the idea that I have cannot be discarded through mental prototyping, and seems like it may fit in the core of the game. Then I program it in, in the simplest way possible. Usually creating a bunch of dirty code. (But that’s okay, if it’s a bad idea, it’s a waste to write clean code)
Test – I try the mechanic out in many different situations, and in combination with existing mechanics. If the new mechanic creates any interesting puzzles that I couldn’t imagine when I first thought of the mechanic, then it is a candidate for the final game.
But how do I decide which things are interesting enough to make it in the game? That is certainly a tough problem, and there are many solutions. The simplest solution is to include everything that might be interesting. However, for my game, I have some fundamental guiding principles. I believe that the player of my game is an intelligent person, and should be treated as such. They are not stupid, and will be able to solve any of the puzzles that I can create for them, without breaking them down into simpler elements. I also believe that this player’s time is valuable to them, and I should respect their time, and not waste it. So therefore, I should never put filler into the game by repeating ideas that I have already explored.
Based on these principles, I will remove any puzzles which either waste a lot of player time on execution, or have very obvious solutions and may only be different than a previous puzzle in insignificant ways.
Even still, I struggle with this game every day. Sometimes I have to ask myself if the entire game is not just a waste of time for the player. It is certainly possible. But I am a game designer, and I want to make games, not incomplete products. So it is better to ship a game that I found interesting, even if no-one else will, than it is to not ship a game. As the Duct Tape Programmer says, “Shipping is a feature. A really important feature. Your product must have it.”
So time marches on…and there is much work to be done.