Ideation, Iteration, Realization.
In games production, the initial brainstorming stage is called "Ideation". Generating ideas, figuring out what you want the player to feel while they're playing, thinking about what the gameplay loop will be and so on.
One common misconception that many people have about game development is that you have to have your entire game designed before you start creating it. While it certainly helps to have a solid idea on paper to work with, it's not a good idea to spend too much time stressing about the minutiae.
This is because all games undergo a lot of changes during development, and often the finished project will look vastly different from the initial idea. Regardless of which engine you're working in, or how much time you spend planning beforehand, game development inherently requires a TON of trial and error. THIS IS NOT A BAD THING! It's an inevitable part of the process and the sooner you embrace it, the less painful it becomes.
In the last entry, I described the initial idea for BattleClaws as "A multiplayer game set in a claw machine, where each player controls their own claw with a joy stick and a single button to pick up and drop objects." We're a year into development as I write this, and while the core idea remains the same, the finer details (gameplay mechanics, visuals, etc) are constantly changing.
This is GOOD, because it allows us to experiment without losing sight of the overall game that we ultimately are trying to make.
This is where Iteration comes into play. The term "Iterative design" loosely describes the process of taking an idea, creating a prototype, playtesting that prototype, and then using the results of the playtest to inform and improve the initial idea. Rinse and repeat, until you have a working prototype that you're happy to move forward with. Approaching development in this way will help you to avoid spending too much time working on something that isn't the right fit for your project. Removing features or mechanics that you've already implemented in your game can be an absolute nightmare, particularly at later stages of development when different elements become dependent on one another. Eric Zimmerman explains the concept of Iterative Design in much greater depth in his blog "How I teach Game Design", which I've linked at the bottom of this entry.
I found out the hard way that iterative design can save you a lot of heartache... After initially creating the concept for BattleClaws, our team had just six weeks to bring the concept to life in the form of an extremely simple playable prototype, that we would present to the rest of the class for playtesting and feedback. At that time I had no idea what iterative design meant, and I spent the first four weeks blindly piecing together something resembling a prototype in Unity.
Here's what I got RIGHT:
- I stuck to very simple visuals to get my idea across. (primitive shapes)
- I prioritized the features I felt were most critical to the prototype (moving the player, picking up and dropping an object)
Here's what I got WRONG:
- I didn't consider the dependencies of each element.
- I continued adding to the prototype, without fixing any design or programming issues that I discovered along the way. (And there were MANY.)
- I didn't STOP TO PLAYTEST often (or at all.)
- I did not iterate on my initial idea whatsoever.
The results were not pretty. Thankfully, after some much needed intervention from a more technically minded friend on the team (Who is now the technical lead for the BattleClaws project) the prototype began looking a little more BattleClaws and a little less Frankenstein's monster. We spent the majority of the final two weeks in the college computer labs, feverishly ironing out most of the issues I'd introduced, and in the end we managed to get a decent grade and some invaluable feedback from our playtest. More importantly, I learned a LOT about the process of bringing an idea to life, which has helped immensely as the project has grown.
Including yours truly, BattleClaws is being made by a team of five and iterative design is one of the recent practices we've adopted that I feel has been the most beneficial in terms of production. Here's how we do it:
We share and discuss our ideas OFTEN! Right now, we have a design meeting every two weeks, but I encourage the team to share any ideas in a dedicated channel within our discord server, so that we can iterate on those ideas, or give each other feedback. It's important to be honest in your feedback, but all criticism should be constructive. There is no benefit to being needlessly mean about an idea, and doing this will discourage others from sharing their ideas in future.
We draw it out! Once an idea is starting to form, get it down on paper as soon as possible so that it doesn't get lost. I'm a visual thinker, so I love to see sketches, concept art or even just rough doodles that capture the idea in mind.
We create a basic prototype. I cannot stress the word basic enough here. The prototype you make should demonstrate a single mechanic or feature that you are designing. Try to focus on the most important aspect of the idea and bring that to life in a really simple prototype. This should serve as a functional demonstration of your idea, something that you can iterate and build upon later.
We playtest! Once the prototype is functional, share it with others and try to gather as much feedback as possible. Having others playtest the prototype is ideal, but taking a video will suffice as an alternative.(Unless interaction is essential to understand how the prototype works.)
We discuss! Once the prototype has been tested, we talk about it. What do we like about it? What could we change to make the prototype better? Does the proposed feature/mechanic/visual effect/ align with the overall game that you're trying to create? Will it engage players? Is it easy to understand? All of these questions will be different based on what you're developing, but the feedback is essential to the process.
Once all the steps are completed, it's time to rinse and repeat. Revisit your initial idea, and iterate on it, using the feedback and information you gained from playtesting and discussing your prototype. Over time, your initial idea will evolve into an improved version of itself, until you are ready to implement it into what will eventually become your finished game!
Thanks for reading!
"How I teach Game Design" - Eric Zimmerman https://ericzimmerman.wordpress.com/2013/10/19/how-i-teach-game-design-lesson-1-the-game-design-process/