1) Come up with an idea
2) Test it
3) Think on what went right/wrong
4) Modify the idea
5) Repeat
Consider Starcraft, It’s important to reason out potential implications for a unit ahead of time. Simply using your brain should be enough to see that introducing an additional fast, ranged ground splash damage unit for Terran seems destined to fail as it already shares many similarities with the hellion.
That said, imagining a situation will only take the design process so far. We can sit around and theorycraft about the implications of certain abilities but without extensive hands-on playtesting there’s no guarantee that the new implementation will work as intended.
Creating a new construct in our mind and then reasoning based on that construct is the major limitation in this sort of thinking. It’s not that hard to look at a unit’s stats and compare them, but it’s hard to visualize that unit actually fighting another in game. It’s hard to imagine the new situation and then do additional analysis based on that new situation. To maximize our analytical powers we need to have as much of the situation constructed outside of our brain leaving as much energy as possible to analyze what’s actually happening. Trying to both imagine the situation and analyze the implications limits our mental capacity substantially and is sure to lead to mistakes.
Once the idea has passed initial discussion, it’s time to get some hands-on testing. Over-design can be a major pitfall at this point in the process. Over-designing basically means adding more content than is necessary to test an idea’s basic functionality. In Starcraft that would mean doing things like making or using more than a basic model or adding voices to a unit that wasn’t really solidified yet. If the idea doesn’t actually end up working out, that extra work put into making the unit look or sound good can go to waste. Sometimes over designed content can be recycled, but there’s no guarantee. That wasted energy slows down the iterative process and thus inhibits the necessary repeated testing needed to refine an idea to greatness.
The desire to over-design can have many sources, but the core of the issue is one of optimism. When designing something, we really want our idea to be ‘The One’ that works out easily and effectively. Untested ideas are largely terrible and even when not terrible generally need a substantial amount of refinement through testing before they are solid enough to have additional cosmetic type design work done. Sometimes I over design due to simple impatience. When circumstances prevent me from immediately testing a new idea I’ll design more content than needed so that when I do have time to test I can get more done. Sometimes I over design due to a surplus of confidence. Maybe an idea seems so perfect in my head that I can hardly believe it wouldn’t be perfect when I put it into practice.
In Discord, the victory condition is based on life total similar to hearthstone or mtg. Get 0 life and you die. Simple and straightforward. I had an idea to make a loss condition based on the condition of your ‘town’. Essentially, whenever you took damage you would allocate it to some number of villagers in your town. Depending on which villager took damage or died, you would get some additional effect, either positive or negative. The idea was to provide another level of decision making in regards to how you would distribute damage. I was so confident I made a slew of different sorts of villagers before I tested the idea at all. After 1 or 2 days I scrapped the idea wholesale for being too complicated and potentially expanding the scope of the project too much without really adding interesting gameplay. The time that I spent making more villagers for this deck could’ve been spent designing other parts of the game, or just as important, resting so that I could be productive sooner. When I over-design content, a substantial part is usually wasted because all of it shares the same fundamental errors.
Meeting an aggressive deadline means cutting corners wherever necessary. After a few over-design related hiccups while getting back into design mode, I’m testing new ideas with the absolute minimum work possible so that I can iterate on those ideas more rapidly. Once a single version of a new idea works out, it’s easy to generate more content using that idea as a baseline. When working with new ideas, remember to test first and design later. Hope for the best, but prepare for it to fail. By rapidly iterating with the minimum effort when going through unexplored territory, it’s much faster to reach the correct solution.