I usually start with an idea. But start it small. If I wanted a tank in the game for example, I just get it to work. Then get the thing to do functions. Get that to work. After Im happy with it, I start adding more things. And sometime along that journey, I think of something EVEN better, and get that going. Every single time I layout my project, I usually change my mind about something. Add features, take em away. If I drew out the whole project and did just what I wrote down, I dont think it would be as fun. Always be open for change.