Defining alien attack formations in a retro shoot em up

In our last game, Thundergun, we adopted a purely randomised approach to generating the levels. That is, the alien formations were predefined prior to the game loading but their formations for completely random.

For our next game, Akari: Battlestar (working title), we’re looking to plan the action with far more precision.

Our inspiration for this game is from the early 1990’s and games like Raiden.

Raiden was a tough game. Very tough. Our game will hopefully be a little more forgiving in the style of what were once referred to as manic shootersDo Don Pachi epitomised this style in which you pitched your fighter against hordes of formation-based adversaries who sprayed bombs (with some elegance) around the screen. Under normal circumstances avoiding the bombs would be nigh on impossible. But this genre used much tighter collision detection; often using just a single pixel in the centre of the player’s ship for collision reference.

We’ve already adopted a similar approach.

But it’s the fighter formations we’re keen to establish up front by way of an in-house level design system. The placement of aliens, cannons, collectables, mini bosses, tanks; you name it, will be handled by this system. Each entity will have all attributes defined and the resulting output stored in a JSON format to be read by the game.

The attack formations for Thundergun were based largely on Capcom’s 1943.

Fighters swooped in, curled around and then flew off. If you took the entire formation down you were presented with a bonus item.

For Akari we want to have a lot more variation.

Fighters will adopt one of several attack formations.
e.g.

  • Drift down from the top of the screen, pause, fire, drift off to the side
  • Drift in from the side, fire bursts, drift off to the side
  • (Tanks) trundle in from the side and follow a set path
  • Squadron formations from the bottom of the screen that fly off screen and return in slow formation

For Thundergun we introduced the concept of a game progress ticker. In code this was defined as part of the global namespace g{} and referred to as g.progress

g.progress bumps with every tick of the game’s main loop. This is consistent and in tune with everything else that the game loop handles (movement, animation, collision etc) so it’s a good base for defining the introduction of alien formations.

As g.progress counts its way through to several thousands for each level it passes what we refer to as waypoints. As each waypoint is triggered a new randomly but predefined alien formation is spawned.

The difference with Akari is that there will be no randomisation. Everything will be delivered from a level data file.

At set intervals in Thundergun the action was interspersed with a mini boss; a larger fighter that drifted into view and bullied the player. Formations continued to spawn around it.

For Akari we’ll suppress the formations and halt the bumping of g.progress while the mini boss action plays out.

With the mechanics for the mini boss developed we have pretty much 90% of the code written to handle a proper end-of-level boss. The main difference will be in defining the scale of the boss and any sub-elements such as wing-mounted cannons.

Level structuring isn’t a new thing for us. We’ve employed it for our platform games and the C64 style shooter Crossfire.

Hopefully we can get a demo up and running in the near future. Exciting times in arcade game development!

Further adventures in marketing arcade games on the App Store

It’s always easier to make decisions when you’re armed with data.
This morning we pulled down some stats from Apple’s reporting site to pore over the numbers.
(We don’t currently publish to Google Play, though that will come soon)

To Charge or Not to Charge

We released an arcade game (Chaos Grid) to the App Store two weeks ago and initially offered it for free.
In a short space of time we’d had just over 800 installs. 95% of those came from Japan.

It’s easy to assume that this is an indication that the game would be successful if we charged for it.
So we did and opted for the lowest tier of pricing – 99p.

7 days later and we’ve had an additional 12 installs.
Less Apple’s cut that comes in at $8.06 (£6.40)

Our assumption was wrong.
There’s work to be done before we  can consider charging for the game.

There are other ways to monetise the game.
In-app Purchasing and advertising being the obvious choices. But we reject these as they aren’t true to our ‘promise’ to the customer.

We’re doing this to ‘relive the thrills of the video game arcade’.
It’s our ‘Why?’, if you like.

So we gave it about 4 seconds worth of thought and switched it back to free of charge.
Overnight the installs are back into double figures.

I guess it’s far better to have the game installed on numerous iPhones and iPads than sat there on the app store gathering dust.
A number of things happen when the game is installed:

  • It gets played
  • Our brand is all over the game’s splash screen
  • It (potentially) gets talked about and shared

But there was something else that occurred to us; the Japanese market was up for these games.
When we uploaded the game to the store we selected to have it available in every territory but we have no control over the exposure in each territory. So that came as a pleasant surprise.

Localisation and Culture

The screenshots that we provided for the game’s entry on the app store contain text. English text (above).
Words such as ‘RETRO ACTION’ and ‘ARCADE THRILLS’.
I’d guess that these ‘calls to action’ are wasted on the Japanese audience. They are probably far more interested in the screenshots than any blurb we wrap around it.
iTunes Connect (the developer’s gateway to the app store) offers the ability to provide localised content. We could go to the trouble of translating any words into multiple languages. But is it worth it? Would those words significantly influence the viewer to become a buyer?
I doubt it.

Far better to offer something more culturally relevant.
In the west we appear to use the screenshot as the key persuader in the buying process for an unknown title.
It’s a lot like picking up an X-Box game in the store and immediately flipping it over to see a screenshot of the game on the back cover.
But in Japan consumers warm to specific imagery. Anime style imagery. It’s relevant to them and makes the game feel less ‘alien’. The Japanese are proud of their culture and appear to warm to any attempts to embrace it.

Here’s a useful link that forms part of our on-going research into marketing on the app stores: https://moz.com/blog/app-store-rankings-formula-deconstructed-in-5-mad-science-experiments

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?

Thunder Gun – 1942 themed game in development

Capcom’s 1942 is a game we’ve always played and enjoyed. In a brief meeting where we review future projects we voted unanimously to give it a revamp.

Here’s some screens from early development.

 

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

Playing with a Star Wars arcade game idea, again

I’m not updating this blog often enough so I thought I’d just share some thoughts on a new game idea. The game is a straight forward arcade game though for me it’s a little odd as the primary focus isn’t on blasting and explosions. At least it isn’t yet! There’s time for that to change.

To get an idea for the style head over to my Playstar Arcade and play Night Bomber.
I’m loving getting back in to the pixel art style and sci-fi games like this lend themselves to it.

HTML5 as a search term – we’re almost there

I recently started poring over the search terms to the Playstar Arcade in some more detail.

I found something quite interesting. A number of search terms carried the phrase “no download”.

Here’s a brief summary:

  • free online ipad games no download
  • mobile games no download
  • online ipad games no download
  • free games no downloads
  • free mobile games no download
  • free online games for ipad no download
  • free online mobile games no download
  • online games no download
  • free online games with no download

I receive a healthy amount of traffic from search engines, most of which are on desktop. I’d love for this to shift to mobile but that will take some time. None the less it’s encouraging to see that people are looking for games to play and are aware that games can be played without the need to download an app.

Although the phrases listed above are all variations on a couple of themes they show a brief insight in to the mind of the searching gamer. That list accounts for around a third of all phrases that include “no download”.

The intriguing phrases are the ones that contain “iPad”. I imagine it’s fairly common knowledge amongst the iOS community that there is no support for Flash or any other 3rd party browser plug-in. So this can really only amount to games that can be played in the web browser natively.

The same cannot be assumed for those searching more generally for “mobile” or simply “online”. But by virtue of the fact that they’ve included “no download” I’d assume that they are referring to browser games.

There is a clear opportunity for HTML5 games here. As the quality of HTML5 gaming rises (and it should as publishers demand more visual quality at least) we can hopefully start to see a level of education amongst the browser gaming public that “HTML5”, at least in a gaming sense, can be synonymous with not only quality gaming but crucially “no download”.
Strictly speaking it could also become synonymous with “online”. But let’s not muddy the water as its real strength is of course in “offline”. That’s a different story.

HTML5 is quicker to type and probably ultimately far easier to remember.

Let’s look at that list again with the words changed to suit the HTML5 developer.

  • free HTML5 ipad games
  • mobile games HTML5
  • HTML5 ipad games
  • free games HTML5
  • free mobile games HTML5
  • free HTML5 games for ipad
  • free HTML5 mobile games
  • HTML5 games
  • free HTML5 games

We’re getting there…

Continuing to target the arcade gaming niche with my HTML5 games

Ever since my first foray in to browser gaming I’ve stuck to my goal of creating the kind of games that I enjoyed in my youth. Generally speaking this means classic “pixelled” sprites and the control of an on-screen character / spaceship / vehicle of some kind. Ideally I’d also throw in bombs, lasers and explosions a plenty. 
If I’m honest it’s also a pretty easy style of game to write.

I guess right now I’m wondering whether it’s right for me to continue to target this niche in retro gaming or whether I should move on a bit and challenge myself with a different genre.

There are benefits to maintaining a niche and also several drawbacks.
The benefits clearly come in the form of brand association and search relevance. The more I can focus on writing about a specific area of mobile gaming the more I improve my chances of being returned favourably in Google et al.

But sticking to a niche also narrows my opportunities in the wider field of attracting work. Whilst I’m always going to favour working on my own projects and my own designs I can’t disregard the fact that there is some value in being a coder for hire.

Arcade games, the classic ones (which I guess we now refer to as retro arcade games), offer some wonderful pointers for achieving an optimum in designing games for casual mobile play.
Arcade games almost by definition were games that you could play and access quickly and each “go” would last for little more than a few minutes. This is what your single coin gave you and if the experience was a good one you’d possibly sink another coin. If not you’d move on and find something else.
This has real parallels with today’s online games scene. Especially the mobile web gaming scene.

HTML5 game portals tend to target mobile devices. The good sites are clean and optimised for display on the smaller screens. As such they are pretty straight forward to navigate around and generally uncluttered. The same cannot be said for the desktop equivalents which in many cases are more of an excuse to litter the screen with advertising than offer any kind of a gaming experience.

My stats continue to show me that my games are popular. When somebody visits the site they generally play around 3.2 games per session before they disappear. 6% of visitors exit via an advert. I’m not actually sure whether those 6% have enjoyed their time on the site and played that average 3.2 games or whether they’re simply hacked off with the experience and were looking for a way out. I guess there’s every chance this is the case.

Regardless mobile arcade games  and mobile game design (HTML5 game design) continue to challenge my brain cells. I’m always thinking of new elements to games that I scribble down for later reference and often draw upon them when I’m thinking of the finer details of a game’s execution. 

I use SNES and Arcade emulators (ZSNES and MAME) on a regular basis to research gaming styles, challenges, reward systems and every other vital element of a good gaming experience. 
MAME generally offers that throwback to the mind boggling and dazzling array of cabinets that beeped and zapped at me as I stalked the arcade for that perfect way to spend 5 minutes and 10 pence. I suppose it gets me in the mood :)
The SNES games on the other hand are showing me the visual style that I’m aiming for. Especially in my most recent game Jumpin’ Jasper which was every bit a SNES inspired game.

I’ve not set out to find any magic solution here it’s really just a Sunday morning blog update with a coffee and some thoughts. 
I have to say that playing and designing retro-styled arcade games still thrills me. There’s a lot to be said for this.
I may be missing a trick or two by not becoming a more high profile game developer but maybe that’s not for me. 

An old manager once said to me “Stick to what you know by all means but do it well. Do it very well. Be the best at what you do well and above all enjoy it.” 

Article about the perception of HTML5 as a gaming technology on Gamasutra

I recently posted an article on Gamasutra about the association with HTML5 and gaming. I go in to a little detail about how we as HTML5 game developers can improve the perception of HTML5 as a viable medium for mobile gaming.

You can read the full article here: The public perception of HTML5 and its association with games

%d bloggers like this: