The Great Porting Adventure: Day 2

Where's the Start Menu on this thing?

Yesterday, I spent a chunk of time looking into various possibilities for porting my XNA-based game to non-Microsoft platforms like iOS and OSX. In the end, it seemed like learning Unity would be a prudent move and now would be a logical time to start that process.

In true indie fashion, I’m calling an audible.

I wrote off MonoGame rather quickly without much justification, other than saying it felt too much like magic and I would have trouble resolving any roadblocks I encountered. While that may be true, I think the benefits outweigh the small price of experimentation.The biggest potential upside, other than reusing 95% of my codebase, is that I can maintain a single copy of the game moving forward.

After all, if the MonoGame solution works I should be able to get my game running on something like OSX in a very short time. I figure that’s worth trying out. I’ll spend today setting up my borrowed MacBook, getting my environment in order and running through some MonoGame examples. I figure the OSX port will be a good first test, since it will play identically to the Windows version.

Maybe the first 99% of porting with MonoGame will go smoothly. Maybe the last 1% will prove impractical or impossible. Let’s find out.

Meta-Platforming

There comes a time in every XBLIG developer’s life when they ask themselves, “How can I put this”

“onto one of these?”

This year, I want to hit more platforms than just the Xbox LIVE Indie Games market. My first priority is PC, specifically Windows. In this context, XNA is fantastic. I basically get a Windows build of my games for very little effort (some resolution management and key binding support). But what about OSX and Linux? The Humble Bundle (and the feedback I’ve received) has shown that these are non-trivial segments of gamers.

And then there’s mobile. Even I own a smart phone now, so that means pretty much everybody has one.

So if I’m going to go through the trouble of porting, I figure I might as well shoot for the stars and try to hit as many platforms as possible.

Of course, XNA doesn’t “just work” on these platforms. Porting XNA games has been done before by developers like Radian Games (Super Crossfire) and Fun Infused Games (Hypership Out of Control iOS), so it’s not completely foreign territory. Here’s a quick look at my current thinking:

Goal: Port DLC Quest to as many of the following as possible: iOS, OSX, Android, Linux

Approach #1: Native iOS Port

Rewrite the game from scratch for iOS.

  • Pros:
    • Free (other than iOS publishing fee, but all approaches will include this)
    • Potential for good/great performance, as this is as close to the metal as I can get
    • Learn a lot
  • Cons:
    • Most work. Total rewrite.
    • Have to learn Objective-C
    • Doesn’t directly allow for publishing on Android or Linux
    • Not sure how to port to OSX either

Thoughts: This is the most work, to hit only some platforms. But there’s no “magic” – I would know how everything works.

Approach #2: Port to Cocos2D or similar engine

Rewrite the game using Cocos2D as a base.

  • Pros:
    • Free
    • Save considerable time rewriting engine
    • Works on iOS and OSX
  • Cons:
    • Have to learn Cocos2D engine
    • Still have to rewrite game in Objective-C
    • Still does not directly publish to Android or Linux

Thoughts: Similar to above, but cuts out considerable engine work. But I already have an engine anyway.

Approach #3: Convert using ExEn, MonoGame, etc.

Use a MonoTouch based library/framework to do the heavy lifting and keep my codebase mostly intact.

  • Pros:
    • Use existing codebase, kinda (game needs adapting for touch devices/screens anyway)
    • Might be easier to maintain multiple versions in one solution
    • Write in C#
  • Cons:
    • $400 for MonoTouch (and an additional $400 for Mono for Android)
    • Does not directly publish to OSX orLinux
      • Whoops, apparently OSX is supported. Wizorb also managed a Linux version, so that’s a ‘maybe’.
    • Likely won’t work perfectly, require learning how MonoGame works to fix it

Thoughts: This feels like a magic bullet approach. I’m wary of things not working perfectly and then having to grapple with an unknown technology to try to fix it.

Approach #4: Unity

Re-write the game with Unity and reap the multiplatform benefits.

  • Pros:
    • Write once, hit iOS, Mac, Android, Flash. Possibly even Linux soon.
    • Get experience with Unity, which seems like a sensible business choice
    • Write in C#
    • Can potentially reuse some code
  • Cons:
    • Need to rewrite at least some of the game
    • $400 each for iOS and Android publishing. Potentially $1500 for Unity Pro + $1500/iOS/Android if needed.
    • Large learning curve for the “Unity way” of doing things
    • Likely have to invest in SpriteManager or similar library
    • Basically magic

Thoughts: Unity seems to make the most sense, but I’m also reluctant to use it because it feels like I give up too much control.

And the winner is…

Looking at this (and having slept on it), it seems like all signs point to Unity as the way forward. I’m not a big fan of the “magic” involved with Unity but that’s likely largely attributable to a lack of understanding. I’ll give it a shot and see if my reluctance is warranted or not.

I think the last time I used a Mac for more than 5 minutes was with an iMac in computer class over a decade ago. This oughta be interesting.

You said it dog.

Going Loud Studios: 2011 Indie Dev in Review

Well, that’s 2011 finished. This marks the end of Going Loud Studios first full calendar year of business, so I feel it’s time to take a glance back before moving on.

2011 Review

The Games

I released two new games in 2011:

Lair of the Evildoer (June 2011):

DLC Quest (November 2011):

Both games were picks for “Kotaku’s Favorites” list on the dashboard, which was sweet.

Zombie Accountant WP7 goes free

It might also be worth noting that the Windows Phone 7 version of Zombie Accountant quietly (very quietly) had its price slashed from $1 to $0 in… July? To be honest, I did this just to see what would happen – the game was long dead anyway. I kinda forgot to follow up on it though, so here are the stats:

The Awards

Frankly, I think it’s awesome that I even have anything to write here. DLC Quest won Official Xbox Magazine’s Indie Game of the Year 2011.

Social

I’ve been making indie games for over a year now but I only looked into my city’s “indie scene” in the past few months. Turns out, it does exist! I started attending the monthly meetups put on by the fine folks at Dirty Rectangles which has been a ton of fun. Locking myself in a room to make games has been reasonably successful, but it’s great to meet new people and talk about making games in person. I look forward to doing that a lot more this year.

Sales

Or, “Why you came here”. Here are some stats!

Quick analysis: pretty acceptable! Granted, it’s pretty much all on the back of DLC Quest at the end of the year, but I’m okay with that. Not taking a loss on the first year of business? Sounds good to me.

Presence

Interviews! Podcasts! Print coverage! Youtube views! Twitter subscribers! 2011 was a great year for establishing myself on the internet. A few highlights include having some featured blogs at Gamasutra, coverage at big sites like Kotaku, Game Informer and Games Radar, a brief spot on Attack of the Show on national freakin’ television, participating in a few podcasts, and numerous interviews, including one in print in the January 2012 issue of OXM. I made some great contacts along the way too. The Going Loud Studios Twitter account (@WeAreGoingLoud) and Facebook page have also seen a nice bit of growth, sitting at 410 and 156 followers respectively. Oh, and the trailer for DLC Quest has racked up over 31K views so far.

So not quite famous, but it’s a nice start 🙂

Looking Ahead

We’re already three days into 2012, so enough with the retrospective! Here’s a quick look at some thoughts for the upcoming year.

More games

This is a no-brainer. Everything above comes from making fun games that I want to play. That’s the driving force that has gotten me here and it’s the passion to continue making games that will take me forward. I’m itching to make something new right now!

More platforms

If you study the releases above carefully, you’ll notice that 100% of all games I published in 2011 were for XBLIG. That’s a market that has its fair share of problems and has a bit of murky future. Even without that, it just makes sense to spread my games to more places where people can play them. PC is my prime target – heck, I have PC ports of both 2011 releases essentially ready to go. 2012 will be the year when I start publishing beyond the Xbox.

Diversify!

More platforms is great, but I’m thinking of ways to take diversifying a step further by exploring things beyond just making games. Don’t get me wrong, making games will always be first and foremost for me. But there are some complementary things I could be doing to spread myself out. At the moment, I’m thinking along the lines of more blogging and YouTube videos. There are benefits to that kind of exposure that might not directly generate income, but are useful for expanding your contacts, popularity and so forth. I don’t have any concrete plans just yet, but it’s something I’d like to experiment with this year. For science.

Game jam!

Can you believe I’ve never participated in a game jam? Everybody always says you should do that. I’m going to do that.

More learnin’! More seat-of-my-pants adapting!

As always, I plan on continuing ‘being indie’ in the philosophical sense. I picked up some great books on game design and engine architecture over the holidays that will be going to good use. Always learning, always trying new things, and always willing to throw out all of my plans if the need arises.

It’ll be nice to revisit this post a year from now and see how 2012 measured up. Now, follow me on Twitter @benkane!