Oddhop Status Update
To kickstart the new year, I thought a status update type of post is in order, to document what's going on with Oddhop and what still remains to be done. We shall see if I can make this a monthly occurence — no promises — but I will try. 🙂 Before we start, you can have a new pre-alpha screenshot from the game! Enjoy! 🙂
Oddhop TODO-list, January 2016
Alright, here is a partial (I've left out some minor things that are not of any interest) and tidied up list of things that still needs to be done with the game. These are not in any particular order, mind you.
- Analytics: For some reason I have never bothered to implement analytics in any of my games, but for this game we want to see how the game is played, which levels are difficult, which are too easy and so forth. The data might even help us make the game better, so no reason not to use analytics this time. Maybe throw in some vanity metrics for a good measure, too! 😉
- Localization: We probably want to support different languages, although we're aiming to have as little text as possible in the game. The tutorial sign tips are the biggest bulk of text in the game. It is entirely possible that we're launching with English only, though.
- Sounds & Music: This is kinda biggie: there are no sounds or music in the game yet! We're hoping to hire someone to compose original music for the game, but first we need to get to the early Alpha stage.
- Menus: Yep, 90% of the menus are still to be done, not to mention any animation for them. I did however do a menu background thingy; I decided to use the actual gameplay backgrounds but with a colored blur filter on top, to not be too distracting.
- Final levels: the game designer Teemu has been doing the puzzles and we've got all the levels (likely launching with just over 100 puzzles), but they still need a pass or two to replace some of the weaker levels and maybe tune the order etc. Iteration, iteration, as always. 🙂
- Binary level package format: This is not an user-facing feature, but currently the levels are in textual format so we can easily share them by email (99% of the communication between me and Teemu happens over email as we live quite far apart). For the final game the level packages and the levels in them will be serialized in binary files.
- Player profile: I need to store all the player progress, scores and stars earner per level, playtimes, what level packages have been unlocked etc. Luckily it's simple stuff to implement.
- Tutorial system: We got most of the tutorial tip texts, but the system driving them needs to be implemented. We have an optional tutorial system in that each level has a sign post, and if you tap on it you get tips relevant to the gameplay mechanics in the current level. There is one tip per game mechanic, so of course they're quickly exhausted. The sign will sparkle and wiggle when there are new tips to be read, so you don't miss them. But the nice thing is nobody forces the player to read the tutorials, they can freely try and discover the game mechanics on their own (we've tried to keep most of them quite intuitive). 🙂
- Settings system: Another non user-facing thingy that is so simple that it probably takes me more time to write this description than to implement it, but nevertheless settings need to be saved and loaded, UI fields will need to be bound to certain setting values etc.
- Social stuff: Another big thing missing: Google Play Games (Android) and Game Center (iOS) integration, meaning achievements, high scores and whatnot. Part of this (for syncing purposes) needs to happen after the player profile is finalized, so it'll be near the end of the project. And achievements, oh boy I hate those! We still need to think about what kind of achievements we want/need, and of course I need to then implement them. Screenshot / score sharing to social media is also in, but that I have already done, which is nice. 🙂
- Ads: As the game is likely ad-supported (don't worry, there's an option to remove the ads with a single purchase!), at least on Android, I need to actually implement ads in the game. Not the most fun of things to do, but needed nonetheless.
- Creature Animations: Luckily I've done most of the required animations, but some polish animations remain, one more important than others. It's likely I do at least that then, for each creature type.
- Code cleanup, refactoring: Basically getting rid of any remaining prototype-quality code, there is still some nasty stuff left in there and I really don't want to be the one maintaining that for years to come! (But alas, I am.)
- Testing!: Goes without saying, once the game is in Alpha-stage (and especially in Beta) some serious testing needs to be done. We're going to have private Alpha for friends and family, and a public Beta after that, so do keep an eye out for beta access later on if you want to help! 🙂
- Polish, polish and more polish!: 'Nuff said, I think.
So what's done then? Well believe it or not more things are already than not done, even though writing my TODO list out like that was slightly frightening.. (It certainly didn't look as bad when in more condensed format, shit! 😛) For example all important graphics have been drawn, backgrounds are done, most of the visual effects have been done. Of course at the polish phase I will probably go over and add more effects and stuff, but still.
When Teemu and I started talking about doing another game together some years back, we eventually decided to do something quick and simple first, instead of a bigger project. So here we are: working on the game since February 2014, so almost two years now. Not full-time though, and there were periods of month or two where I barely worked on the game, but still. "Quick and simple", hah! 😄 Believe me I'm going to be very happy when the game is finished and released, no matter how well / poorly it does! To any aspiring game developers reading: do not underestimate the time it takes to make even a small game! So start small, and finish it! That's the most important and hardest part, finishing a game. 🙂 Anyways, I better get back to work. See you around!