Tuesday 19 August 2014

r0x (Extended Play) Post-Mortem


Well, here we are, just shy of two weeks after launching r0x EP onto the unsuspecting public, so I figured that it would be a good time to type up a brief post-mortem about how the game has performed out there in the big wide world. To be honest, I might have to revisit this at some point to add more info, or at least write a follow-up, but for now this will do. Grab a coffee/tea/beer and let's get down and dirty with the numbers!


Revisiting r0x

First of all though, let's go back to the beginning and talk about why we chose to revisit r0x. For those of you unfamiliar with the game (i.e. everyone), r0x was a simple little demoscene release RGCD co-developed with NoExtra for the Atari STE back in 2009. It was a just-for-fun project by myself and coder/tracker Tomchi, with Templeton on the pixels and a whole variety of Atari musicians providing the soundtrack - which to be fair is probably the strongest part of the game.


Developed in the short space of a few months, Tomchi and I had plans for a considerably more ambitious sequel based on Terry Cavanagh's excellent Self Destruct, and in fact there's a pretty far-on prototype kicking about on various hard drives, but hey, life, jobs, kids and relationships got in the way. I kept on hoping that one day we'd finish it, but as time passed... well, you get the idea.


It's been a while since I've been directly involved in any game development projects, but when my fellow oldschool-tech enthusiast Jamie Howard decided that we should fire up GameMaker Studio and make an Ouya game together for a demoscene party we were attending, r0x came up as the immediate suggestion for our first project. It's a super simple and familiar design, and I'd been working with the guys at Reboot recently on an Atari Jaguar port for a few weeks already (another unfinished prototype). The plan was to add a few bells and whistles to the drafted Jaguar design, bolt in some multiplayer modes and have it finished in a week. Yeah. Well, that's not exactly how things panned out!

For those of you sniggering at the back regarding the legitimacy of using GameMaker Studio for a demoscene project, well, screw you. But seriously, GMS was chosen primarily because I wanted to use something familiar that could port to multiple platforms at the press of a button. Jamie would have probably been happier using something considerably more low-level, but ultimately we'd like to see some of our future games easily ported in-house to consoles - and as an SDK it fits pretty well in that regard.

We both booked a week off from our day jobs, set up in my attic office and worked solidly 9-5 for five days. To cut a long and painful story short, we epically underestimated the amount of work involved; even though it was a simple game concept we found that it was just too tempting to add more and more features as Jamie became more au fait with GMS.

Oh, and then there was the dreaded second 90%... In total, it probably took us around two weeks to create the basics of the game, but then another two months to finish it.


Costs

We developed r0x without a set budget, but when you look at all the costs it is a little bit scary. At the beginning of the project (back when it was planned for the Jag) I bought in two friends - Dugan from Tikipod, who provided most of the gorgeous artwork for a super-reasonable fee, and Ian 'h0ffman' Ford, a guy who I knew from the demoscene (Sundown, to be more precise). The 100% Amiga Protracker, seven-song soundtrack is probably r0x EP's most noteworthy feature, and Ian awesomely offered to provide the music for gratis as long as the game was released for free (which had always been our plan anyway). The font was kindly provided by Mazeon, and various other bits and pieces (such as the tiles used for the background) came from Vierbit and iLKke (again, for free).

To give a basic analysis (without being silly and declaring the costs of our own computers, coffee, etc.) the breakdown looks something like this:

Game Audio: £0
Game Artwork: £380
GameMaker Studio Professional (x2): £119.98
Android Export Module: £129.99
YoYo Compiler: £199.99

Total Cost: £829.96

It could be argued that really the game cost us only £380 to develop - which would of course be the case if it was our second project. However, in reality these are the true figures; a necessary investment to help us develop our first game project together, and make it the best we could.

These costs could have very easily spiralled upwards, but we were very careful to optimise the use of the art assets (recolouring/flipping via code) and we chose r0x specifically because the graphical requirements were relatively minor. It was so tempting to throw more money into it as we reached the end of development though!


Target Platforms

Jamie and I both possess the Android-based Ouya micro console, and after hearing stories of 20-30fps woe on twitter, we were interested to see exactly how well GameMaker Studio could perform on the platform. Also, as a game coming from an 'unknown' developer, we thought that by releasing on a console with a small, yet fiercely loyal market we would ensure that at least a few people would play the game (compared to the big bad unpredictable world of PC indie).


When r0x EP reached prototype stage (after the first couple of weeks) we even approached Ouya to see if there was anything they could offer in return for exclusivity, but unsurprisingly (and understandably) our proposal was ignored. Interestingly, we were approached by PlayJam's GameStick indie-outreach guy, who actually sent us two consoles and additional controllers for free, but sadly we couldn't get GameMaker Studio to run at above 30fps on the GameStick. Porting r0x EP, which runs at a solid 60fps on the Ouya, would have required so much work that it just wasn't feasible. Essentially we'd have to change all the timings of every object to get it up and running - and even then it would be noticeably less smooth to play.

The initial party release that came out at Sundown (achieving second place in the wild compo) was an Ouya specific APK, but to our surprise it also ran on a whole load of similar android devices with a controller attached (including the Nvidia Shield and Amazon FireTV). However, we decided that for the final version we'd also release the game for Windows to increase our potential audience. So on the 8th of August, r0x EP was launched more or less simultaneously on Ouya, itch.io, GameJolt and Steam Greenlight.


Performance

Ok, so now for the interesting bit! First of all, let's look at Ouya. We were very lucky with the timing of this one; no one submitted a game between us launching the game and Ouya's offices closing for the weekend, so r0x EP was the first game people saw on the 'new releases' section of Discover for three days. Following the weekend, r0x also ended up on the featured list, so it was on the home screen when you turned on the console! As we never received any real feedback from the Ouya team, this was a genuine surprise - and I've since written a blog post for them in return. But hey, the numbers!


Ok, so as you can see, the first few days was when all the action happened - starting at around 100 downloads per day, fading down to around the 20-30 line. I'm guessing that most of the active Ouya users must have seen our game on their console's Discover page by now, but of course a retro-shmup isn't everyone's cup of tea - even if it is free! I'd guess about 20% of people who saw it would have downloaded it, which suggests there is something like 3000-3500 Ouyas being used regularly out there. Of course, this is complete guesswork, but that number sounds about right to me.

Now let's look at itch.io. In the same period of time we've reached just under 1000 downloads - as well as raising over $120 in donations! itch.io is a super cool platform for desktop-based indies because you can offer games for free download but still give a 'suggested price' for players to tip you. I suspect most of the donations come from people in the Ouya community (I received several messages asking how people could 'pay' for the game), but still - these figures translate into an unexpected 'conversion rate' of about 3% on itch.io, paying back about 8% or 18% of the £830/380 cost!


We were lucky enough to be featured in a PC Gamer article and on the front pages of indiegames.com and Warpdoor in those first couple of days, and this exposure is what caused the second spike in downloads and page views. However, in terms of page views, the biggest success came from GameJolt, who featured the game on their front page more or less immediately after I hit the publish button!


See the views-versus-downloads stats? This is particularly interesting, and I imagine the download ratio is so low because GameJolt is primarily an 'online games' portal. But even so, that's another 215 people playing r0x EP! GameJolt's rating/comments system is really ace, and its fun to see the occasional email in my inbox saying that someone has rated or commented on the game.

Finally we have Steam Greenlight. The r0x EP Greenlight was primarily created because I already had a Greenlight pass - I just thought it would be another way to get eyes on our game, and we threw in the Linux/Mac build offer as an incentive (we'll definitely do those at some point). However, more than anything Greenlight has been a valuable source of feedback. The no-holds-barred comments and 'No' votes are a good indicator of how ready our game is for a major distribution platform, and at '19% to the top 100', I guess we have some way to go. Being on Steam would be great, but at this stage I'm not getting my hopes up too much!


Lessons Learnt

During development we used Git to share the project between our machines, which was a total bitch to set up with the early access version of GMS we were using. Even now, we have problems with audio files regularly being 'lost' from the project following a merge, but as long as we each focused on different areas of the game, the system on the whole worked pretty well. I suspect that as I'm new to using Git that some of these glitches were caused by me, but I daren't tell Jamie that! ;)

One of the things we did get mostly right was the pre-planning. We set out with the clear intention of making the core components of r0x as reusable as possible, and as a result we now have a solid framework to use with our next game. The screen handling, multiple controller 'plug-and-play' support, music system, pixel-perfect positioning and menus are all pretty much immediately ready to drop into our next project, saving hours and hours of repeated work.

One of the most difficult decisions during this planning stage was the base resolution. We needed something that would work scaled up perfectly to both 1080p and 720p - too often people just target whatever looks best on their screen, but when using 16:9 on a low resolution game you really should choose something that looks the same on both resolutions. After some discussion, we decided that 640x360 was the optimum resolution for r0x EP (and our future games), scaling correctly up by x2 for 720p and x3 for 1080p.


Overall we're pretty pleased with the final game, aside from one area - the instructions. We kind of expected that people would read either the 'how to play' section from the main menu, or browse the text file or at least read the basic instructions provided on the download page - but shock! Players don't read instructions for a shmup.

Initially Jamie and I discussed adding an attract mode to show new players how the game worked, focusing on the 'grind stuff, get ammo' mechanic. However, we ran out of time preparing the game for Sundown, and then it just never happened. Even the instruction pages are in the wrong order, so unless the few people reading that get past the first few sections they'll just assume that when you run out of ammo, that's it. Every video I've seen of people playing it goes something like this:

"Oh yeah! It's shmup time!"
PEW-PEW-PEW-PEW-PEW-PEW-PEW-PEW-PEW-CLICK!
"What?!"
CLICK-CLICK-CLICK-CLICK-CLICK-BOOOOM!
"Ah you have bombs too! Cool!"
BOOOOOM-BOOOOOM-CLICK. CLICK-CLICK-CLICK!
"What do I do now?!"
CRASH!
"Aww man, game-over?! I suck at this game!"

Most people never notice or use the thrust button (which is incredibly useful for collecting power-ups as it speeds up both vertical and lateral movement), and I've not seen any videos that show players tactically grinding to recharge their ammo! It's a bit depressing to see one of the core mechanics completely missed. My feeling at the moment is that we need to re-write the instructions screens at the very least, if not add some in-game prompts or a full-on tutorial.


The Future

I guess the first thing we need to do is to help those players who refuse to read instructions actually play the thing, so I suspect there will be a minor update in the next week or so. Aside from that, Jamie and I still intend to release a limited edition, boxed, physical version of the game (for sale via the RGCD store complete with manual and poster), and Coop over at Amazon has been chatting with us about bringing r0x over to Amazon FireTV as well. If we see any progress on Steam then we'll probably look into sorting out an online highscore system - it's something we need for future projects anyway.

Most importantly, Jamie and I have registered RGCD.DEV Ltd with Companies House, so I guess the start of our game development journey is now official! We're planning to revisit another of RGCDs old games next (Robotz DX), giving it the same super-enhanced work-over that r0x received, but we'll probably run a smaller game project in parallel so we can jump between them to keep things fresh. With so many indie studios popping up every day we know that the odds are stacked against us in achieving any real level of success, but we're going to give it our best shot, enjoying the experience of making arcade-style games that we want to play.

2 comments:

  1. Hello guys, very nice game, but I have to report a bug. I have a generic USB joypad and game did not recognize it.

    ReplyDelete
  2. Really Nice write up. Good luck with the next game. should Probably get an Ouya now hey! ;)

    ReplyDelete