My own experience with game design has shown me that I need to alternate between idea generation and practical iteration. I have found it is essential to know when to switch between the two in order to make progress.
Idea generation is when I wrestle with a cool mechanic I want to implement or problem I need to solve in my game design. I’ll ask myself questions and try to generate as many answers as I can. This often means letting my thoughts wander all over the place, sometimes far from where I started. I find that walking around and talking to myself aloud enhances my creativity. Jotting down ideas and drawing pictures on a whiteboard helps show the relationships between the competing thoughts in my mind. If I have a patient friend available, using them as a sounding board significantly accelerates this creative process. But once I have a notion of a practical way to implement the idea, I have to stop the imagination process and start practical iteration immediately.
Practical iteration is where I put together a quick prototype version of the best idea I came up with and test it out. I will tinker with this prototype on the fly and get a feel for the various possibilities it offers. Once I am confident that I understand the practical implications of the idea, I stop iterating and assess what I have learned. Am I on the right track or the wrong one? If the idea is worth pursuing, I go back to the imagination stage to flesh it out or come up with solutions to any problems it poses. If not, I need to spend time imagining a new idea.