Saturday 18 April 2015

The man from Apple, He say YES!

This morning..

I write this with the sun beaming through the office window, more than a little tired from having very little sleep last night as I Tweeted to the world and generally shouted from the rooftops a very exciting piece of news.

ROO! IS ON THE APP STORE!!/id982853485?ls=1&mt=8

This is very exciting news for several reasons. 

Firstly, We're on the App store for iPhone and the iPad, the most difficult store to get into with the highest barrier to entry; Firstly there's a hardware requirement, then the build and certification process was intensive and then it's followed by a 2 week period of uncertainty where we wait for Apple to review ROO! where it could be rejected for any reason. Thankfully it sailed through first time. I put this down the the sheer amount of work we put into it beforehand. ROO Might be a simple game, but a lot of attention has gone into it.
Everything from the screen sizing, object placement and controls have been tweaked and polished to make sure ROO is the most fun it could possibly be.

Secondly, ROO! is not written using Objective C, It's using C# and Mono; all made possible by Xamarin. They truly have achieved the holy grail of software development - a tool which allows for realistic "Write Once, Deploy anywhere".

ROO was a test case for us; make a responsive and fun game which can be enjoyed by anyone, make it as efficiently as possible and release it onto Google Play and the App store.

I say efficient because as a small Indie developer, we have very limited resources. Time is just as expensive a resource as money so we really could not afford to spend time porting or re-writing ROO! for each platform.

Having the shared code project with a project for each build target has been amazing. It allowed us to focus on the core of the game and worry about the platform specifics later.
Coupled with Xamarin's debugging tools and simulators, we were able to test on Windows, Android and iOS with ease. Even connecting an OUYA or a phone was easy; We were able to deploy, debug and get on with the more interesting parts of development - writing the code to make the game.

Responsive and Fun

When I say ROO is responsive and fun, they are not my words. This is what I've picked up from the many people who I've spoken to about the game. Our goal was to make it Fun and as I stated in a previous blog post covering the development of ROO!, responsiveness would be key to achieving this. A game lives or dies on how well it controls. The developers of Super Meatboy focussed intensely on getting the "Feel" of the controls just right. It worked out well for them.

There have been games I've played throughout my life which look amazing from screenshots and then disappoint when it comes to the gameplay because of a lack of responsiveness. Typically older games with limited hardware - (but not always), but there have been a couple on the OUYA which prevented me from purchasing them.

What do I mean by this? Well, when you press the screen or the controller button on ROO! He jumps immediately. There is no lag, no delay.

We made ROO's agency the most important thing in his universe. He has a mission, to save little Timmy and nothing apart from his own lack of ability will stop him.

The trick to this we employed was to make the inner game loop as quick as possible and to collect user input first of all before any other processing. This meant that in the fraction of a second between game updates, controller inputs could be queued and acted upon immediately when the update happens - affecting the game processing which followed it. Keeping the inner loop fast meant that it didn't miss frames so ROO was always responsive on every frame update.

No Distractions.

We wanted the player to become ROO and zone out of the real world into an almost Zen-like state, so this meant reducing the distractions. This is why there are no collectables or monsters to avoid in ROO! It's all about the run. Don't get me wrong, the temptation was certainly there to add them but thankfully we resisted to keep the gamplay as pure as possible. There are a finite number of shapes to learn to avoid and a pattern to get into and once you've mastered those, the only thing stopping you from getting a great high score is well.. erm.. You..

The levels are random but you can really focus and get in the zone. Occasionally you will fall down a hole, hit a rock or faceplant a cactus, but you get another chance for every perfect landing you make.

The perfect landing and recovery mechanic was added in the second half of development after players became frustrated with their good run being cut short by a single mistake.

The perfect landings were in there from the beginning but they were effectively used to get achievements. By hooking them to the recovery system, the player was actively rewarded for good play and could use these later on to get even higher scores to beat their friends. You see, every life in ROO is earned.

ROO starts the game with only a single chance. As he gets perfect landings, he earns extra chances. They're not strictly lives as ROO doesn't technically ever die. He may fall or trip, but he bounces back.

So what's next?

Well, we've still got Windows Phone and Windows Store to go, it's delayed partly because of the extra development we needed to support an achievement system on the platform. As soon as this is complete, we'll be getting it to Windows phones.

No comments:

Post a Comment