Evoking retro memories with box art

We’re huge fans of the golden days of Atari. The box art was a huge inspiration and that wonderful feeling of being transported away from real life is something that we’re keen to evoke with our own games.

Take a look at this concept piece for some promotional artwork for our forthcoming arcade game Thundergun.

The art department are nerds for Atari box art and artists such as Steve Hendricks.

What do you think?

WKWebView, WebAudio and PhoneGap for iOS games

Here’s a handy little tip for anyone wanting to load files via AJAX in their PhoneGap apps that run on iOS courtesy of PhoneGap.

Our first attempts at creating games with PhoneGap were satisfactory but not brilliant. The frame rates were awful though the music and sound effects seemed to work fine. So we did a little digging and found that by default PhoneGap will use UIWebView, the default web view, on iOS.

You can change this to use the far more advanced and polished WKWebView (Web Kit Web View) which makes great use of such things as requestAnimationFrame. Something that is hopefully familiar to HTML5 game developers.
With WKWebView you also get to run against the superior JavaScript Nitro Engine which will massively increase the performance of your games.

Here’s how to implement WKWebView via your config.xml.

Add the following just beneath your <widget> declaration:

 <feature name="CDVWKWebViewEngine">
 <param name="ios-package" value="CDVWKWebViewEngine" />
 </feature>
 <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

 

But we found that our audio now failed to load.

We use AJAX (XMLHttpRequest) to load our audio. To date it’s worked a treat. The reason we use it is because it’s a neat way to asynchronously load and capture the onload event and act upon it as we configure each audio file (volume, for example).

This works using a relative path.

Here’s some code:

 var request = new XMLHttpRequest();
 var url = "sfx/" + o.soundname + "." + AUDIOFORMAT;
 request.open('GET', url, true);
 request.responseType = 'arraybuffer';

You can see that our mp3 files are sat in a sub-directory called /sfx.

But WKWebView doesn’t like this. It wants its AJAX calls to be fully qualified from the http://

The change to the config.xml file is simple.

Add the following amongst your plugin declarations:

<plugin name="cordova-plugin-wkwebview-engine-localhost" spec="https://github.com/apache/cordova-plugins.git#wkwebview-engine-localhost" />

And change your content definition from

<content src="index.html" />

to

<content src="http://localhost" />

Hope that helps somebody!

New game on the iOS AppStore – Chaos Grid

Well it’s been a long, long time since we updated our blog. So it’s a real thrill to be able to announce that we’ve been working hard on making some new arcade games. But these games are a little different; they’re built using HTML5, JavaScript and CSS3 (as usual) but are also wrapped up and served to the iOS AppStore.

We’re currently using PhoneGap to do the bundling and it appears to be working just fine. There are issues with choppy performance but there’s a wealth of information out there to address this. Something for a later blog post.

So what’s Chaos Grid all about?

Well, it’s an homage to the earliest shooting games from the video game arcades of yesteryear. We took our love of Defender, Robotron, Galaxians and the 8-bit classic Gridrunner and built a game around their mechanics.

The screens above are the ones we use on the iOS AppStore and they pretty accurately depict the action. Though later levels become pretty frenetic!

If you’re a fan of the old school shooting genre and love those old beeps, whirrs, and electronic wind-up sounds then we’re pretty sure you’ll love the game.

Check it out on the app store today and tell us what you think :)
AppStore icon