Original Post
I've had my share of game projects that have started and stopped. Generally speaking, the "stopping" is because I usually dig myself too deep, try to design my own engine, try to make everything architecturally perfect, and in fact, never get to actually building the game (just the infrastructure, so to speak). A couple years ago, I changed my philosophy to one that aligns with "Agile Programming" techniques (without really knowing that is what you call it). That is, short "bursts" or "runs" of development that accomplish some specific (usually observable) goals. This philosophy fits in well with my lack of spare time, since I am a full-time employee doing less interesting software work as well as a full-time dad, etc. I simply cannot commit to a huge project, I need to see some very visible gains every few weeks. Maybe you can summarize my philosophy as "aim low, shoot often". In the process of setting shorter and very specific goals, I've also learned how to adapt and use other people's software/libraries (as opposed to building everything I need from scratch). Sometimes that's the only way to get something done in the timeframe I give myself. Since adapting my approach, I've created some reasonable successful web applications and browser game demos (in my own eyes) and it's given me something to point to and say "Look, I built this". It's led me to start collaborating with a friend on a simple casual PC game that we can work on together using the same development philosophy. The main goals are always in sight, and the first priority is to "get it working" as opposed to "designing the architecture perfectly". It's led to warts and the occasional re-factoring, but so far, we've stayed roughly on track (ok, we had to give ourselves an extra week one run so that we could each do our taxes). What do people think about this? I'm a software engineer by day, so this type of philosophy rubs my "perfectionist" and "architect" side the wrong way, but at the same time I realize that I just don't have the resources (time and money) to invest in a lot of up-front software design for these hobby projects. Especially when it's such a small team of one or two people. Incremental improvements, baby steps, seems to be the only way I can make advances in my hobby development. I'm curious to hear what other people have experienced/learned...