Hi, I'm Henry. In 2012 I quit my job as a programmer at BioWare to spend a year making my own indie games. This blog is about what happened next...

Like Spaceteam? Want to support my work?
Join the Spaceteam Admiral's Club!

Android

I had the busiest summer. I was trying to do several things simultaneously:

  • 5 weeks of contract work for a friend on the survival-horror game Outlast (let me know if you want a free Steam code, I have a few to give away)
  • Getting a private, customized version of Spaceteam ready for a special client (who prefers not to be named)
  • Finalizing Spaceteam for Android!

Luckily all these things resulted in money and/or exposure but it was still pretty exhausting.

I decided that an Android port was necessary when every other person who came to my booths at PAX and GDC asked “is it coming to Android?”. I should have made a sign that I could point to, to save my voice.

When I started investigating how do the port, the obvious solution seemed to be Cocos2d-x, the cross-platform version of the game engine Spaceteam uses. If I had built the original game with this in mind then the Android version would have been much simpler. But since I chose to use the iOS-specific version, I would need to rewrite most of the code in a different language (probably Javascript) and that didn’t really appeal to me.

The Deal

Then, with uncannily perfect timing, I was approached by Apportable. They liked Spaceteam and wanted to help. Their technology converts iOS-specific code (written in Objective-C or C++) into a package that will run on Android devices with very few changes to the original source. This already sounded pretty good.

On top of that they offered to do the technical work themselves and provide QA testing and customer support. This is a pretty big deal since the Android market is so fragmented, with over 4000 different devices and many different software versions. It’s difficult and time-consuming to diagnose individual problems, especially if you get an unspecific customer email that basically says “your game is broken, please fix it!”

In exchange, they asked for a (relatively small) percentage of my revenue from the Android version of the game. Also the project would help improve their technology since Spaceteam has complex multiplayer networking requirements.

(Apportable also offers fixed-rate contracts for support, if rev-share isn’t your thing.)

The deal seemed beneficial to both of us, which came as a pleasant surprise since I’d just finished negotiating another contract that was pretty exploitative (and that I eventually declined… but that’s another story).

Challenges with the Android platform

I was very happy to have someone else worry about the Android version, and as development progressed I realized how much work it actually would have been had I attempted it myself. I’m sure I would have become frustrated and miserable, and eventually given up.

Here are some of the networking challenges we faced:

  • Some devices simply don’t support DNS multicasting, which is what Spaceteam uses to find other players. This limitation isn’t advertised by the manufacturers (unsurprisingly), so it was difficult to even figure out which devices could play the game at all.
  • Depending on the OS version Wifi and Bluetooth support are sketchy, so we had to disable some devices entirely, or only support Wifi connections but not Bluetooth. This complicated the user experience and I ended up adding a toggle/indicator to the Title screen on both the Android and iOS versions, to keep things consistent.
  • Even when it does work, Bluetooth on Android has annoying mandatory permission dialogs. First you have to “allow” the game to broadcast, and then “pair” with other devices.
  • Additionally, the broadcasting only happens for a set time (eg. 120 seconds) so if you don’t connect in time the game just stops being available and you have to retry.
  • Because of this flow when using Bluetooth, I had to make the player choose whether to “Host” a game, or “Join” one (instead of just choosing “Play”). This is not something the player should know or care about.
  • Bluetooth is restricted at a low-level such that we couldn’t support cross-platform (ie. iOS-to-Android) play over Bluetooth. This adds more confusion to the user.

I was hoping to keep the connection process as smooth as possible so I’m not overjoyed with the result. But we ended up getting the game working on a lot of devices, and people seem to be really happy about the cross-platform support.

The Launch

Spaceteam for Android launched on July 20th on Google Play and August 19th on the Amazon App Store (for Kindle Fires). Along with the launch came a new iOS version with compatibility support for the new features.

I wanted people to know that iPhones and Androids could play together (this is an important feature) so I added “Android support!” in the release notes of the iOS version. Apple didn’t like this :) I got a call and was asked to remove it. I guess they don’t want anybody to know that there are competing products out there!

To be fair, Google also didn’t like the fact that I only had iPhones in my trailer video, so I made a new one. Here it is:

So far after a few months in the Android stores, these are the numbers:

  • Google Play Downloads: 110,570
  • Google Play Sales: 2,213
  • Amazon Downloads: 1,103
  • Amazon Sales: 20

It also has 2084 ratings so far with an average score of 4.8 (out of 5), which is pretty good.

I’m hoping to be featured by both Google and Amazon, which should help with exposure, but it hasn’t happened yet. Hopefully soon!

Selected Reviews from the Google Play Store

Genius This is quite possibly the greatest game ever conceived. The creator is no doubt a God among men

~~~

This game has cured my cancer, helped me find love, gain material and personal wealth and shown me The Truth. Get this game. Your uncle will become famous.

~~~

Better than Call Of Duth There is no better game that ever existed … OOOOOO ajajja

~~~

Now you can look crazy on the street too. Nothing quite like staring at a small screen while walking from A to B shouting incoherently at your friends. I used to think that these people were down on their luck, perhaps inebriated or high on drugs. Now I realise they were all just part of some spaceteam somewhere!

~~~

Superspaceteam Team… Team team team. I even like saying the word TEAM! Almost as much as I enjoy this game. Super simple, super fun… Super team!