Chris DeLeon of HobbyGameDev has written a post all about the importance of starting simple in game development, and of picking projects that make you reach as opposed to scramble in terms of their complexity versus your current skillset.
It looks like the article came about after a Twitter exchange with “Orange Rectangle” (O.R.), who got pretty defensive about making this super big an awesome idea comparable in scope (in his/her words) to CoD and Uncharted.
I totally know how O.C. feels because this happened to me. The fist video “game” (that’s in quotes because it’s actually more a simulation, in its current form I wouldn’t call it a game anymore) I really really wanted to make was Gastropoda (without the name at the time). When we moved to Australia at the end of 2005 I spent most of my free time in our apartment in Fremantle planning it out - or walking around the city thinking about it. I filled notebooks with layout sketches, attribute lists, database layout plans, snail observation notes, drawings of snails, excerpts of things I read about snails in textbooks, ten-page-long feature lists, etc.
The project had three real false-starts before the current interation, spanning about the last ten years. Every time I started I got stuck on something, spent a few days beating my head against the wall trying to figure it out, and then gave up. I’ve been trying to make this one thing for ten fricking years and getting nowhere. I simply didn’t have the ability to actually code the thing that was in my head. I imagine this is how new artists feel when they have an image in their mind that just doesn’t seem to translate on to paper no matter how much they try. It is infuriating.
Over the years I’ve now seen a number of people massively overshoot their means on an early project and fail spectacularly. In most cases that unfinished game is the last one they work on, never fully recovering from having dug a pit of embarrassment and fighting through considerable frustration every step of the way. Getting some practice before diving headfirst into these kinds of undertakings can help steel us to the complications that they entail.
The above is painfully accurate. I never really had the “embarrassment” part because I never publicly came out and said I’m going to make this super amazing thing and it will be awesome and it will be out in the year 2005 and everyone will be into it. I mean come on. We’re talking about snails here. User base: me. Even with tiny games I’m always more cautious when talking about them (don’t try to skin the bear before you’ve killed it, as they say). But I did definitely experience “fighting through considerable frustration”. I gave up on the idea so many times and every time I failed I said I wouldn’t make another attempt, until it came back and I thought “Hey, maybe it’ll be different this time”. It wasn’t. It wasn’t different until I learned the hard way, by accident, to do exactly what HobbyGameDev suggests and start making less ambitious projects.
When I finally decided to try to really make Gastropoda for the fourth time in PHP form, I wasn’t holding my breath. Except all of a sudden the problems I got stuck on years ago were no longer problems and the things I didn’t know (which is still a lot) were much easier to figure out. My problem before wasn’t just not being familiar with PHP syntax - it was not being familiar with basic concepts of how to structure the program as a whole. And I still don’t know exactly how to structure this entire thing - now I just know where to start and how to take it from there. I’ve refactored the whole thing once already and am constantly rethinking and changing how existing features work. I think I’m spending as much time on revising as features.
The point is - I think it’s totally cool to have big ideas before you’ve made anything small. But (if you’re anything like me) you really won’t be able to do that big idea justice until exactly the time that the rest of your brain is ready for it. Refusing to work on smaller things in the interim to get yourself to that stage is the equivalent of trying to dig a tunnel with a toothpick. You might eventually get to the end, but it’s much more likely that you’ll get sick of it and quit…or die of old age…well before that happens.