So I bit of self-indulgence before I get to the point of this post.
Considering my age, I’ve been programming for a pretty long time. I started out writing games (well, tweaking games) and I’ve never really wanted to stop. I have unfinished games dating back every year since high school. I have a couple of Ludum Dare entries, as well as entries in a bunch of other game jams. I’ve tried to do One Game A Month a couple of times now, though never finished a full year. Programming aside, I can write half-decent music, and I have at least some basic art ability. So I’m in a pretty good place to be creating games - at least as a hobby.
The most recent thing I worked on was Purchess which was an entry for ChessJam. I had a lot of fun making it and I feel happy with how it turned out, especially considering it’s the most complex game I’ve written in Rust so far.
But almost as soon as I published it, I realized I didn’t have any intent or motivation to keep working on it. Which is fine - it is what it is. It doesn’t necessarily need more work. At the same time though, it’s a prototype. A proof of concept. It’s not something I feel comfortable showcasing to anyone. I’m proud of it, but not that proud.
There’s other issues with that too - because it is such a small, experimental project, a lot of the work that went into it doesn’t feel like it paid off enough. For example, the sound and music playback system. It wasn’t exactly arduous to write, but even then, the impact it had on the final product was so minimal, it feels a little like a waste of time.
I feel like all of my projects end up like this. Whether I’m working with a deadline or not, I start small, make an MVP, and then stop. It ends up feeling like running the first ten minutes of a hundred marathons. It’s good exercise, but it doesn’t feel like much of an achievement.
In Jonathan Blow’s talk on deep work, he recommends that your side projects should always be smaller than the biggest thing you’ve shipped. I would suggest a corollary that your main project should always be bigger than the biggest thing you’ve shipped.
What I want is to make something I can be proud of. It doesn’t have to be perfect. It doesn’t even have to be great, it just has to be complete. More complete than anything I’ve made before, at least. I’m willing to dedicate years of my life to this if I have to.
There’s just one wee problem with this: I don’t really have an idea that’s worth years of my time to make. This leaves me in an awkward place where I don’t want to waste any time on tiny projects, but I also don’t want to sit on my hands while I think of something worthwhile to make.
The best thing I can think to do is something kind of in between. I have a reasonably modest idea for a game in mind - not too ambitious, but not a toy either. I’m going to finish it.
Even though this isn’t necessarily my ~dream project~ I think this is valuable for a few a reasons. Firstly, it’s practice at finishing something. Secondly, the lessons learned from it are likely to be applicable to whatever project I move on to next. Finally, I’m pretty committed to writing Rust at this point, so it’s likely a lot of the code and tools I produce will be applicable too.
I have a checklist of things I want to include in this game, which will almost certainly grow over time:
Some of those probably seem too small or obvious to even list (title screen, sound effects…) but I have failed to include them in the past. Some of them also probably seem a little paint-by-numbers, or shoehorned in (optional content, cutscenes…) but I promise they all make sense for the game I have in mind.
Lastly, I’m going to try to blog about this game throughout development (hence why you’re reading this now). I won’t commit to a schedule for it or anything, but any time I have something interesting to say or show, I’ll put it here.
So, we’ll see how this goes. Wish me luck!