I just looked back through older blog posts on here, and realized that I have not talked about Catchup as much as I should be talking about it given that it’s my next big game release. (I didn’t even have a blog category for Catchup until I added one just now!)
The game is really starting to shape-up and near completion. A few weeks ago I posted the vine above of the new hex particles when I got those working, and I don’t know why I didn’t post that here. My list of bugs is basically just down to one, and the list of features I want to add is also miniscule. Oddly, my TODO is still super long, but the only real tasks that I’ve committed to completing before release are: 1) Flush out achievements (there are a few in there right now, but potential for so many more), and 2) really hammer on the async code to make sure I’m utilizing all of apple’s push notifications to their full effect. This second one includes writing some code to show the async move as it comes from the server, if you happen to be looking at the game screen when that happens. It’s an edge case that a lot of apps ignore, but I feel a relatively frequent use-case, given the short-timeframe nature of turns in Catchup. Also, it will allow you to essentially play games in real-time, even though it’s still async code through-and-through.
One question I ask myself a lot is why it has taken me this long to get Catchup this near completion. There are lots of factors, of course, but I’d initially scoped the game (back when it was Ketchup) as a very quick-and-dirty conversion, really just the simplest game I could think of that would allow me to write the GameCenter asynchronous code that I’d been wanting to write. But after I got Tysen Streib to agree to help write the AI, and as soon as the game was playable against that AI, I quickly decided I should really make an attempt to put out a “full featured” board game conversion on my own. This meant a lot of things to me, but psychologically, I think the scope of the game ballooned WAY out of control. For a while there, I really thought I was going to write ALL the features I put in the TODO. If I’d had nothing else to do the entire year, from when I started Catchup in Jan 2013 until now, I might have completed all those features. (Instead, I spent about six or seven months of last year working freelance gigs so I could pay my bills.) I’ve also taken relatively frequent “breaks” to work on other games, mostly game-jam scope games, but I’ve spent over a month at this point working on Action Go, as well as about a week writing universal updates for DrawCade and my Fez Translator.
There are a lot of posts I could write about Catchup for iOS. Here are some ideas for topics:
– Why (else) has it taken me over a year to put this game out? (Short answers, which could all probably be their own blog posts: Polishing a game is hard! Managing scope on a personal project is hard! A “minimum” list of features for successful board game conversions turns out to actually be A LOT of features. And finally — this could probably be its own post — how bugs in your code can move into the realm of psychologically demoralizing and depressing, and possibly keep you from wanting to work on your project.)
– About Color customization, or why you shouldn’t allow your users to customize the colors in your app. (How I did it for Catchup; why it was “easy” but still took up A TON of time; and the trials and tribulations of using an open source library that is poorly written.)
– How catchup uses Generic Game Model. (Which is basically the story of why GGM has hex support at all.)
– About the features that I cut for version 1.0 of Catchup: showing a list of games with visual previews (like in Carcassonne!); ELO for online games; saving of all completed games, and the ability to review them turn by turn; IAP and/or Ad supported version of the game, Player avatars (or even just showing GameCenter avatars in-game). I could talk about how I chose (or basically, for a long time, didn’t choose) which features would “make it”, and which wouldn’t.
– A post about how much money Catchup needs to make for me to break even. (I’ve actually started this post already, but didn’t get too far, as it’s rather a depressing topic.)
– A post about the Game Center asynchronous code, possibly including making my
GameCenterAsyncHelper class available publicly.
– A post about convincing other folks to work for nothing on your personal projects. Why it’s generally (I think now) just a bad idea. I suppose this could also be a post about paying for artists versus just making all the art yourself (where I started versus where I ended up).
Let me know in the comments if you really want to see a particular one of these ideas flushed out, or if you have some other specific question!