Coldwired Games | Apps for Mobiles and Tablets

Android Apps Updated

BubbleMech and Gravity Burst have been updated. Find them on Google Play now, and Amazon as soon as they are greenlit.

The changes are behind the scenes, but very much welcome. They are rebuilt with the new AIR 3.4 SDK. This means:

  • Jelly Bean and Ice Cream Sandwich compatibility (Android 4+).
  • The end of the annoying and very unpopular 'Broadcast Sticky' permission.

Amazon User Feedback: The Good, the Bad and the Paranoid

So Gravity Burst was Amazon's Free App of the Day last Friday (2nd March - see previous post). It got 115,000+ downloads, which is incredible, but that sort of exposure really put it under the spotlight too.

To put it on context, the reviews from the Android Market for the Lite version are pretty solid (average 4/5 from 60+ reviews). Nothing groundbreaking, obviously, but fun.

The Amazon user feedback tells a different story. The 72 ratings to date break down thus:


The most frustrating aspect of this is that batch of users who don't trust the App because of the requested permissions. It might only be 14%, but lots of people marked those reviews as helpful so now they're stuck to the top of the feedback page.

For the record, the 2 requested permissions are for Internet Access and Sticky Intents - both required by the Adobe AIR captive runtime and not actually used by the game itself.

It's frustrating because many of the reviewers are sure that their phone is being hacked, or that it's a scam or security risk of some sort. Despite the fact that this App is tested by Amazon, who chose it for the promotion in the first place!

Of the 12.5% whose games wouldn't start, many of them mention unsupported devices in their review. This is frustrating because they just got a black screen when they started the App, not a message explaining that their device wasn't supported, so it was a poor experience.

Together, those two groups account for more than a quarter of the reviews. Most of them gave it 1 star (and complained they couldn't give it even less!), which really hampered the avarage rating.


Half the people who played it, really liked it (4 or 5 stars). This is fantastic, and very encouraging :)

But there were also some positive side-effects from this level of exposure:

  • BubbleMech, the other game on Amazon, got a significant boost in sales that day.
  • Gravity Burst has sold well since Friday, as it still occupies a position on the front page of the Amazon App Store.
  • iTunes sales of Gravity Burst, and downloads of the free Gravity Burst Lite, were well up too.

Amazon App of the Day: Gravity Burst

Gravity Burst is free to download for the next 24 hours from Amazon US:

The Amazon version comes with comes with 3 new bonus levels. Find it here if the above link has expired:  (the usual price is £1/$1/€1).

Here's some hints and tips to get you started:

1. At least one sector of every campaign is unlocked to start with. You don't have to play them in order.
2. Get a feel for each sector by firing a few shots in different directions, then narrowing down the best looking strategies. Make big adjustments to start with, not small ones.
3. You never need a pixel-perfect aim to complete a sector. If you find yourself taking 20 or 30 shots to try and nail a sweet spot, then that's probably not the correct shot.
4. Some sectors need a soft touch. A slower missile can make sharper turns when it is launched.
5. Missiles exit yellow warpgates in the opposite direction to which they entered.
6. The colored cirles in the top corner indicate the number, type and order of the missiles on that level.

Good luck!


An HTML5 Introduction For ActionScript Developers

For the last few months i've been meaning to sit down and properly try my hand at HTML5 development, keeping an open mind as I do so. Most of my 10 year career has been as a developer in the online games industry -  typically browser-based games - an area which has been synonomous with Flash for such a long time.

I haven't yet seen anything in HTML5 which beats the performance, quality and consistency across browsers of an equivalent well-made, professional Flash game, but I admit everything has to start somewhere. I remember Flash 3 animations being used as 'intros' to websites in the late 90s.

I also want to compare lead time. Being able to match Flash in terms of quality is only half the trick. It's not much use if it takes 10 times longer to put something together. I'll report my results and conclusions in a subsequent post.

Why Now?

Recently, HTML5 has begun to make more noise. Not just as the subject of intense debate and furious trolling on technology blogs. Now it come up in conversation with other Flash developers, and I get asked about it from non-techie types. I'm fairly familiar with the various aspects myself, but I would recommend this slideshow to anybody who wants a basic introduction to the core features (the infamous canvas tag, caching and storage, CSS3 etc).

Adobe's announcement that they are discontinuing Flash Mobile development, which is being treated as an obituary for the entire swf format in some quarters, has forced the issue somewhat. I now want to have HTML5 in my armoury, even if I decide not to use it.

Some History

My reluctance to try it out until now stems from the fact that I know the heavy lifting is done by JavaScript. I remember JavaScript from my student placement days as a web developer in 1998/99. I've dabbled with it on and off since then. A few years ago I was introduced to jQuery and that was a obviously a massive step forward. Frameworks like jQuery have filled in the holes and worked out a lot of the various browser inconsistencies so that you as the developer don't have to worry about them. I was still exasperated at the lack of data-typing and the fact that I couldn't compile or publish the code to get a convenient list of errors, but I did accept that JavaScript could be used for more than just opening pop-up windows or validating forms.

Fast forward another couple of years and HTML5 had become an annoying buzzword, being thrown about inappropriately. Clients where I work, who didn't know what HTML5 was, would ask why we weren't using it. It was supposed to be the future, except hardly any browsers fully supported it, those that did needed people to upgrade to the latest versions, and any examples of games I saw didn't match up to what we were able to produce in Flash, which enjoyed a 95%+ penetration.

Some of the games I have made are casino games - Blackjack and Roulette and so forth. I can't stress how dangerous it is to adopt a technology too early if your business relies on people being able to access those games easily. If Joe Punter with his tenner to spare can't load your game without upgrading his browser then he'll simply go and spend his cash somewhere else. He doesn't give a toss about emerging standards in web technology! Even using the latest Flash player is dangerous - you need to wait at least 6 months after it comes out before you start publishing games with it.

Support and uptake of HTML5 in browsers has been progressing steadily though (here's a useful site showing browser versions and compatibility), even on smartphones, where HTML5 is supported in Android and iOS browsers. If you decide to build something with it, you can now reasonably expect the person visiting your site to be able to see it.


Before I dived into the code, I wanted the right tools for the job. For example, I didn't want to edit html and javascript in FlashDevelop (my ActionScript editor of choice). There must be something more suitable. And what about debugging? Surely all the professional developers out there weren't still hunting around for missing semi-colons by hand?

Some googling and forum-hunting soon led me to Aptana Studio, and I am very impressed. I don't want to generalise it and call it FlashDevelop for Web developers, but if you're an ActionScript coder and you try it out then you'll know what I am getting at. I can setup projects, organise my files, write code (there's even some code completion), and the software checks my syntax as I go along. The days of forgotten brackets and commas are over.

To top it all you can click a 'Debug' shortcut. This launches Firefox, activates the Firebug and debugger extensions, then loads your page. If there's a problem in your code you get told what is, where it is, and you can see it in the Debug window. This is the Holy Grail for me, and it makes the whole HTML5 development process a lot more palatable.

I spent far too long messing about with themes (Window > Preferences > Aptana Studio > Themes) before I got down to business. It was more of a case of tying together lots of separate elements that I have come across over the years than picking things up from scratch. I'm not going to go into the basics of creating an HTML page and linking to JavaScript files etc (although the examples on this Netmagazine page show it clearly and concisely).

I recommend getting jQuery and another library called Modernizr which offers you an API you can query to see what features are supported in whatever browser the page is loaded in.

Classes and Inheritance

JavaScript doesn't support classical inheritance as we know it from ActionScript. There's no 'ThisClass extends ThatClass' and no super() functions.

You can get a library like Prototype (not to be confused with the 'prototype' javascript keyword) which will add that sort of functionality for you, but I wanted to make sure I knew what was going on under the hood.

Prototypal Inheritance is how JavaScript works. This means that if you want one object to inherit the methods and properties of it's parent, you basically clone it and add the extra stuff you want. Oh, and the 'classes' are actually functions. This tutorial from Wired will get you started, and then you'll get lost and confused about the differences between 'this' and 'var' and 'prototype', so I recommend looking at  this Stackoverflow thread I found. The first block on there breaks down a nice simple example of prototypal inheritace, with an explanation of how it's different from the second example.

And finally check out this tutorial on inheritance and prototype. It filled in the last gaps for me.


I instantly wanted to apply to JavaScript what I already knew about coding games in ActionScript, and that's the MVC design pattern. There are a few frameworks you can download - I saw recommendations for JavaScriptMVC and others on this useful Stakoverflow thread.

But when coding for Flash I don't use the readymade ActionScript frameworks like PureMVC or Robotlegs. I know the basic rules of MVC (Controller updates the Model, View listens for events and reads from the Model etc) and I like to implement an ultra-lightweight version of it myself. The same applied here.

Some hunting brought me to this 5 year old article demonstrating exactly what I wanted. I could see familiar looking Classes and I could see a simple implementation of Events and Listeners.

I've since taken that example and broken it into files and folders for each of the MVC components. It looks like one of my ActionScript projects, which may not be a good thing if i'm supposed to be immersing myself in the 'JavaScript way' but it will at least get me started.

The Canvas

Right, here we go then. This is what all the fuss is about. The <canvas> tag defines a section of the webpage which is basically going to act like the BitmapData or Shape ActionScript class. This tutorial, as mentioned earlier, is a good breakdown of how it works. If you're familiar with the Graphics class in ActionScript, and it's drawing API, you'll get it in seconds.

Wherever you see Canvas examples, you'll also see the getContext("2d") method. This gives you a reference to the drawing API. There are supposed to be other contexts which offer alternative APIs, but to date I think they are still experimental.


The EaselJS library is either a Godsend, or the ultimate evil, depending how you look at it. It presents an entire API which lets you treat the Canvas like the Flash ActionScript display list. It's got sprites and bitmaps and mousevents and addChild(). It's undoubtedly an impressive achievement - hats off to Grant Skinner - but I wonder if it's trying to push a square peg in a round hole? Should I be trying to do it this way, or should I be coding up my own ways of drawing to the canvas?

To be honest, I'll use EaselJS for a while. It's a familiar (inter)face in unfamiliar surroundings and it will take care of the display business whilst I experiment elsewhere. I recommend Mike Chamber's introduction.

A Few Things I Wish I Knew Before I Started

1. You can't make calls to a different domain than the one you're in, from JavaScript. This includes from your local machine to a server. In Flash this is fine once you've added any necessary exceptions in the Security panel and/or specified a Security context. But I was trying to load data from a server with a jQuery POST request and it wasn't working at all, and then I saw a  note (scroll down a bit on this page) about the same-origin policy. This is a browser restriction for security reasons. One workaround is to start Chrome with the --disable-web-security switch. This lets you work against a server, but it's potentially dangerous so don't go surfing around until you've restarted Chrome normally.

2. For exactly the same reason, EaselJS mouse events don't work in all browers. They require pixel access to detect where you're clicking (see thread).

3. The version of Aptana I used installed Firefox Add-ons which were incompatible with the Firefox 8. If this happens to you, go to Tools > Add-ons. Click the little Preferences Cog button and Check for updates.

4. How to do Static functions in JavaScript.

Filed under: developer Comments Off

Sketch Raider. Think ‘Tron’ vs ‘Pictionary’.

If you fancy something different, please check out our latest release 'Sketch Raider Lite', available free from the Android Market.

This is our entry into the AIR App Challenge. It was live in the Android market on Thursday night, then tweaked, adjusted, and finally submitted to the competition website at 6.30am GMT on Saturday (90 minutes before the deadline - phew!).

It uses the Flickr API (courtesy of the ActionScript 3 Flickr library) to request photos based on a well-crafted query, then presents these photos as outlined 'sketches' for the player to identify.

To give this game mechanic a context, and give the game an objective, the idea is that these images are the reconstructed remains of password 'hints' that people have left on a computer system.

Your cyber companion, Chie (the girl in the corner),  recovers these images and presents them to you with 4 possible answers. If you guess correctly, you capture a data tile - basically a square on a 3d board which represents a computer network.

Each level of the game is a different network map. The player must capture a chain of tiles in order to link up their home tile to one or more targets (represented by the big memory blocks in the screenshots).

At the same time, enemy agents in the form of viruses and other rogue software are moving about the system, claiming tiles for themselves. Therein lies the strategy - to navigate your way past the bad guys in order to complete your chain. Sometimes you have to plan ahead and capture a tile out of sequence in order to head-off trouble early on.

Extra help is available in the form of upgrades for your AI companion, Chie. These manifest themselves as 'lifelines' which you can use to the help crack difficult passwords e.g. removing 2 wrong answers, resetting the password to get a new set of clues etc.

Upgrades must first be activated by linking them to your home tile on the map. They are the microchip-like tiles in the screenshots. Upgrades must be recharged after each use too, which takes several turns, but can be speeded up by capturing more tiles.

The screenshot below shows the layout when played on the forthcoming 'Sony P' splitscreen tablet. On this device the control pad is split apart and the game is controlled with the player's thumbs, Nintendo DS-style.

Enjoy the 10 free levels in the Lite version, and special thanks to Pixelrehab for the graphics and design!


Air App Challenge Finalist!

We just got selected as a finalist for the Adobe/Sony Air App Challenge :o

The app in question is a new game currently in development for Android phones and tablets. Eventually we plan to release it for all platforms.

The design and features aren't quite finalised yet, but as soon as they are we'll post some more details.

Looking forward to getting a prototype Sony P in the mail. Deadline for entries: November 11th. Ouch.


Gravity Burst New Levels Rolled Out

As of this morning that's everybody: Android & Amazon market, iTunes App Store and BlackBerry PlayBook App World. Update now (if you haven't already) and enjoy!

Gravity Burst has 15 new levels, a new time trial, a new weapon and new theme (see screenshot left). Lite has 3 levels from a previously unavailable campaign.

Both versions now run on the iPhone 3GS too. Links to all versions can be found on the games page.

PlayBook/Android Market users: if you update and find any missing saved progress, please get in touch for an unlock code (see post below).


PlayBook/Android Saved Games

Apologies to some players who have lost their saved progress since updating to the latest version of Gravity Burst (v1.0.21). This bug affects the Android Market and PlayBook platforms.

There is another release on the way (v1.0.23) which should restore the game to the state it was in before, as long as it wasn't uninstalled at any point. Unfortunately this means losing any progress made in between updates.

So after you have updated, if for any reason you want to unlock more levels, please email for an unlock code, allowing you to choose how far through the game you want to advance to.


New Gravity Burst Campaign

Rolling out across all platforms over the new week or so, the 'Fury' campaign adds 15 new levels, a new weapon and a new time trial to Gravity Burst.

The new campaign places a greater emphasis on elaborate slingshot attacks, as the player takes on hordes of enemies (screenshot left).

To celebrate the release, we're also adding a few more free levels to GB Lite, this time from the 'Chronos' campaign. Good hunting!


PlayBook Mech

We thought it might take a while to get through the approval process, but RIM greenlit BubbleMech overnight :)

So without further ado, here's the updated lite version and the brand new full version.

Priced £0.60 (approx. €0.70/$0.99) and available now!