January started off with quite the busy schedule and it hasn’t let up yet. So much to do so little time! Viva la Turret has turned out to be a critical success and people are enjoying it so that’s great. Coming right off the heels of that I wanted to update Tilt to Live HD with Game Center support. It came, and we screwed up (again) :[. There’s a bug with the scoring that cropped up after I added a last minute fix to a less serious bug involving double vortexes. We do have a thorough test plan for our releases, but given the small amount of features/fixes in this one we didn’t exercise all of them. Hah, the code goblins struck again.

What’s funny is there have been moments throughout the year when I look around and realize how freaking awesome things are going. I feel like we’re on a roll and it’s like racking up a crazy combo in some shooting game. Release done and shipped. BAM. Release done and shipped. BAM. ANOTHER Release done and shipped. BAM! That is usually the very moment a dreadful thing occurs. Usually involving HD. And it’s already live and tanking our reviews. It certainly takes the wind out of my sails.

No developer wants to be seen as someone who writes ‘buggy software’, so it’s something I’m striving to improve. So what am I working on as of late?

One Man Left

We’ve got an update in for Tilt to Live HD submitted this past Friday to fix the scoring bugs. We’re also wrapping up testing on Viva la Turret HD and it’s proven to be pretty fun, yet still feel slightly different compare to the iPhone counterpart. Also got some other stuff in the pipeline for Tilt to Live that may or may not come to fruition.

Blitzmax

So I decided this year to make more time to code outside the daily projects of OML. Every few nights I’ll get back into the swing of Blitzmax and started poking around with a game framework I had written for it years ago. It was written when I was in college and it shows. It’s very ‘academic’ feeling when using it. I was pleasantly surprised at how flexible it was, but there’s a lot of tedious code to write to get a ‘blank project’ up and running. I guess back then I had oodles of time, haha (not). I also got it compiling on OS X, so having two clients on different OSes talk to a windows server with minimal fuss was a neat thing to see :).

I think my next steps will be to rip out the WxWidgets integration I did back then, using Brucey’s module. I had originally intended to code in an integrated editor with the game Unreal Engine-style, but recently decided against it for simplicity’s sake. I’m just going to fork the current codebase and create a dedicated editor out of it while having a ‘game’ branch that is hopefully more lean and mean.

Misc Dev

I haven’t begun any actually coding yet, but I’ve been toying with the idea of creating a 2D editor using Cocoa/Objective-C and OpenGL. I’m currently working on some preliminary stuff for “Game 2”, and intend on trying to keep it mostly C++. With that said, writing an editor on the Mac using Objective-C would give me the bonus of re-using a lot of the game code in it for handling things like rendering, input, etc. It wouldn’t be difficult but I guess it comes down to time. Cocoa seems like a really nice UI library, but I’ll admit I’ve never done much of anything in UIKit beyond hooking up an OpenGL view to the window and going back to XCode, haha.

Where as, if I were to just leverage the code I had written in Blitzmax with WxWidgets I can kind of hit the ground running in creating editing tools for Game 2, as well as making the tools cross platform. The drawback being I’m using 2 separate code bases and 2 separate languages. Although, I think I’m just blowing that out of proportion since a Cocoa editor would most likely be a fork anyway. It would certainly provide me the freedom of just messing with the internal model of how objects are structured since I wouldn’t be concerned about game code. When doing editors in the past I found trying to get relevant data out of game objects to manipulate in an editor went against a lot of the encapsulation and designs in place for the actual game. So this may be the better long term route.

Cocoa? Blitzmax? Jury is still out on that one. I also don’t think I can make a fair judgement until I actually try coding some basic tool using Cocoa UI on the Mac. And why Blitzmax? Well, it’s just that I happened to code in it for years so I’m using what I know. And it’s nice. Too bad there isn’t a good native mac editor for it. I use Blide (running in a Windows XP VM) for Blitzmax coding.

2010 was an amazing year for me. While a lot was accomplished, there was a lot left to be accomplished.

  • June 18th, 2010 was the day I fulfilled my dream of becoming a full time indie game developer.
  • Moved back down south from DC to cut living expenses to help my chances at keeping this up as well as be within shouting distance of Adam, my partner in crime.
  • Tilt to Live became a crazy and unexpected success. It was far from Angry Birds or Doodle Jump in terms of income, but the game keeps selling at a steady rate.
  • Released an HD version of Tilt to Live on the iPad. We had a shaky launch, but the game’s reviews have recovered since.
  • Released 3 game modes for Tilt to Live over the course of the year in updates to keep the game in the limelight.
  • Released 1 new mode and weapon during the holidays as an IAP. Lots of backlash over twitter/facebook and on youtube, but our sales numbers speak a different story.

Those were some of the successes of the year. Some of the shortcomings:

  • Gained a lot of weight since I’ve moved back down south :[. It’s my fault, but I like to blame southern cooking and the non-pedestrian friendly nature of the area.
  • Due to the success of Tilt to Live kind of got caught in a treadmill of constantly updating the game. The very thing I try to avoid in game design.
  • Wanted to release a brand new game during that year after Tilt to Live, but never got around to it.
  • Haven’t kept up on my reading as much as I would like. Both for educational purposes and for entertainment.

So what are a few of the lessons learned from 2010?

On IAP

From releasing Tilt to Live HD to releasing our Viva la Turret DLC on the iPhone we’ve gotten a pretty interesting view of how people respond to IAP. For HD, it was rather welcomed since the core game was free and if people truly liked it, they’d pay for the full version. The purchase experience we setup in HD thanks to IAP is rather seamless and very quick. The negative feedback was very minimal and mostly mis-informed users who didn’t bother reading anything beyond the price tag in the app store to realize what they were really getting. I really like this model because if you have a truly compelling game, it can sell itself once you’ve done the marketing to get it on people’s devices. Usually with marketing you’re trying to get people to shell out money on a vague promise that the game is great. The traditional way worked for Tilt to Live, and made sense at the time considering it was only the classic game mode then. HD has made no where near the amount that Tilt to Live has, but I attribute that mostly to the differences in market sizes, marketing effort, and time on the app store.

With DLC for a paid app we’ve learned we have to be very mindful on how we communicate it. While we mentioned the new weapon and mode would be an IAP in a blog post we only linked to it from twitter and Facebook instead of putting the price in the short posts themselves. We didn’t omit this intentionally but soon learned how important this little bit of info is. Being called ‘scammers’ and ‘liars’ isn’t fun to wake up to.  Be sure that if you’re doing something against expectation that users are aware of it no matter where they get their info from. Do it in twitter, app update descriptions, Facebook posts, anything. Regardless, we kept on trucking and defended our game and position. It was a relief to find that even though there was a group of displeased customers, there was an even much larger group of very happy ones playing Viva la Turret :). Phew.

Like they always say, you can’t please everyone.

So was the expectation of free content valid in Tilt to Live? Well, looking back at the numbers:

  • Tilt to Live has over 550,000 downloads. That’s a lot! But wait…
  • Over 80% of customers who got Tilt to Live got it for free. This isn’t accounting for piracy numbers; this is just the week we gave out Tilt to Live for free.
  • Following that promotion Tilt to Live got a lot of content added as free updates.

It’s understandable to think Tilt to Live would be free forever and always. But hopefully people don’t mistake this as “the end of free content from OML” as that’s definitely not the case, we would just like to still be around in 2012. I have no ambitions past 2012 since it’s the end of the world and all.

On Updates vs New Games

So I had hoped to have a 2nd game on the app store before 2010 was out. When we finished Tilt to Live HD there was about 2-3 months left in the year. Looking at all our game ideas, we simply couldn’t come up with one that would have enough spit and polish ready for the holidays that we’d be comfortable releasing. The app store has changed the typical development cycle of a game considerably. Before, a developer would release a game, patch a few things, and wipe his or her hands clean of it. This still seems to be the status quo on the console market.

On the app store, even if the game has no multiplayer service, there are many that are developed and treated as such. More levels in Angry Birds a year later? Doodle Jump STILL getting new content after being out for how long? Pocket God? POCKET GOD?! 😛 The closest thing I can think of that resembles this model that isn’t an MMO is Valve’s TF2. It’s a really cool business model both for gamers who love to see their favorite games continue to be supported, and for appeasing the ‘perfectionist’ inside the developer to make all those features that got cut go back on the list again. The question in my mind is if it’s sustainable.  Given what Tilt to Live was released as, we could have easily made a ‘Tilt to Live 2’ with all the additional modes and weapons we added, but instead decided to improve the original game. I still don’t know whether one is preferable over the other, because adding to the original game is MUCH cheaper than starting a brand new game (dev costs, marketing costs, ads, etc) but you don’t expand your user base as quickly. We’re definitely releasing a new game this year, but it’s a bit unnerving to think that the expectation is such that ‘release day’ is only the beginning. But maybe I’m crazy and this is a self-imposed expectation…

On Reaching Our Audience

Despite our efforts, the most effective way for us thus far to communicate directly with our customers has been through the app store update text.Twitter and Facebook pale in comparison to the amount of reach that little update text has. I can tweet and post on Facebook until I’m blue in the face, but I still wouldn’t reach that customer that plays our game on a daily basis but doesn’t know what “the twitter” is or doesn’t follow us on Facebook. Going forward, implementing a news feed into the app itself I think is paramount in getting any important info (like our In-App Purchase DLC) out to our customers.

Goals for 2011

So what do I have to look forward to in 2011? Lots of stuff planned, and hopefully lots of pleasant unexpected stuff will happen too :).

  • Release a kick ass game #2. Yea I don’t count Tilt to Live HD as #2, more like game #1.5.
  • Hit 1 million downloads of all our apps combined this year (free and paid). We’ve got a looong way to go, but I think we can do it.
  • Get BACK onto my regular work out schedule. Since moving I haven’t been able to get into a routine again.
  • Become a more efficient developer. I’ve been improving all the while developing Tilt to Live, but when starting dev for game #2 I’d really like to take all that I’ve learned and be able to get things done quicker and with less bugs (isn’t that always the wish?). Guess this will be measured by the amount of pain I feel whenever I need to change a piece of code in 2011.
  • Get back into coding for the sake of coding. Being so focused on ‘the project’ has left a lot of my side projects by the way-side. I’d like to start exploring them again. That Greplin coding challenge was a fun diversion to think on problems I don’t normally come across while developing games.

Here’s to an awesome 2011!