Moving away from a hosted WordPress site to a new home

It has for a long time been my intention to move off of a hosted WordPress site to one that I have complete control over. I will still blog about my HTML5 game designs and other related work but it will now take place over at my new home page / blog / games hosting site

A big thank you to everyone who has stopped by here over the last few years and contributed. I hope you will follow me to my new home and enjoy my random wafflings about games, movies, writing and other such creative things.

I am keeping this blog online since it’s a useful resource and diary for my game developments over the last 4 years.

Ridge Racer Accelerated HD on iPad

I really am a hopeless iPad fanboy. Ever since I first got the blessed thing I’ve dumped game after game after game on to it and lord help me I play them all.
Some titles really stand out: KickFlickFootball, Rage HD, RagDoll Shooter… all provide a great escape from reality for 10 minutes or so.

Ridge Racer Accelerated HD Screenshot

Ridge Racer Accelerated HD Screenshot

But now I’ve added a title that had me throwing coins away at the arcades what must be nearly 20 years or so ago – Ridge Racer.
For me Namco get a lot right. They understand the essence of arcade gaming and just what it is to pile thrills on top of thrills when you’re on a tight schedule and in search of maximum pleasure.
For a couple of coins I could go on Ridge Racer for an age and God it was fun.

So iPad now has the Ridge Racer:Accelerated HD version of the game and great fun it is too.

Initially you get to play the game for free and then with an outlay of around 6 quid you get the full content.
The single track demo is enjoyable enough and gives you a taster of what to expect but it’s only when you go in to the game proper that you realise just how much fun there is to be had.

I appreciate that a lot of gamers park themselves in to specific camps when it comes to their games and I’m sure that there will be a ton of GT / Forza / NFS fans out there that won’t touch this. But I’m not one of those. I play them all and let me tell you that once you got used to the controls (select tilting or touchscreen for movement) it’s really an enjoyable game to play.

You get a nitros option which you really must use and use wisely.
You also get to deal with drifting. (What driving game doesn’t these days ?)

Drifting is painful at first. Very painful. The constant nose-bumping of the track edge is nothing short of maddening but with a little practise I found that I could master pretty much any bend thrown at me. The delights of coming off a bend, slamming the nitros and sailing past another car was and still is a pure thrill.

I confess I haven’t played online just yet but that will come.

For anyone looking for good old school arcade driving fun with meaty music and cars with a great feel I would heartily recommend Ridge Racer. And that’s just it. Ridge Racer is an arcade game, end of story. There’s no cash, no stores, no upgrades and no nonsense. Just point the car down the road and hit the accelerator. There’s nothing in the road to collect and to that end it feels great since I just want to race and keep my car on the road.

As you can see I’m not in to lengthy reviews. A £5.99 game probably doesn’t need it. As I refine my style I’ll do my best to drop in the kind of things you need to hear before parting with your cash.

For: Straight forward no nonsense driving thrills
Against: Tricky to master the controls and drift

7 / 10



In search of pleasure – again

Or.. “If it’s fun then please let me do it again”.

I have for a long time been preoccupied with what you might call the hedonics of playing arcade games but have always failed to accurately articulate my thoughts.

Games that sell have mass appeal and when we place them under the microscope we probably look a little too hard for a magic ingredient or design feature.
If you place a football in to a room of schoolboys and watch them play you’d not expect them to suddenly form strategic patterns as you would see on a Saturday afternoon in the Premier League. Nor would you expect them to immediately nominate a captain or designated free kick taker. These things just don’t matter to them. What does matter is getting a kick of the football.

The pleasure in playing football lies in the chance to kick the ball and score a goal. Everybody on the pitch would be thrilled to score, even the Goalkeeper.

In video games I often think that designers try to force gamers in to a place where they don’t necessarily want to go. In some cases the pleasure accompanies them wherever the designer takes them but in others the gamer is left pondering where all the fun went.

Pleasurable experiences in games can be found in countless places. What’s more if something is fun it is in my view something to be repeated not necessarily saved for that brief and infrequent moment that you manage to collect all 50 sacred items. If the attack style is fun to execute, fun to watch and fun to perform on your adversary then make it a central feature of the game.

The Legend of Zelda and Prince of Persia:Sands of Time are two fine examples of a cool feature that the player can repeat without having to be in any specific situation (spin attack, wall run). OK, so you have to be stood near a wall in PoP. But there are walls everywhere !

It is precisely this that makes me go back to Shoot ’em ups so frequently. The pleasure in shooting aliens (or whatever) is in the immediacy of the shoot >  die > explode combination. The pleasure is all in the hitting the fire button and then having that translate in to a very visual sequence of events on the screen.


But there is a bit more to it than that.
When you press the fire button you actually feel the control. You feel the tactile response from the button and in most cases it’s a highly satisfying thud in to the game control surface.
In the arcades my beloved Defender epitomised this sensation. At home games like Jet-Pac continued it.

But it’s not just in shoot ’em ups. It’s everywhere.

Gran Turismo has always been an excellent game experience.
With the default controls you still get a fantastic sense of control that is fed back to you in spades via the stunning audio and breathtaking visuals. As a real driving simulator you do of course need to learn how to drive the cars but once you’re there there’s no going back.
So where’s the thrill in such a game ?
Why play a racing game ?

Simple – drive as fast as you possibly can whilst whistling past the other cars.
If you want more detail I’d say that the thrill of any racing game is mastering the corners such that you use every bit of road available. Combine that with actually passing the car you’ve been following for 3 laps and you’re in to orgasmic territory.
The thrill in a driving game is in tearing up the road with little consideration for anything other than the speedo.

Burnout and Need for Speed:Hot Pursuit are other fantastic arcade variations on the theme. Just drive as fast as you can – we’ll handle the physics.

Working as a game designer / producer in a AAA studio must be a real challenge. Not only do you have the pressures of delivery but you also have the multiple egos of your team to deal with. In some cases maintaining a vision for your game must seem like an afterthought.
If I had that role I’d make sure that I communicated the absolute core of my game and to get to that I’d quickly identify where the fun was to be found. Where is all the pleasure ?
It would serve as a single line design document that I’d probably staple to the wall in the studio. Everything in the game would be a spoke off of it. If a new design idea for the game was presented I’d want to see it logically link back to the core pleasure in one single step. If not, well it’s probably not right for the game.

Ballblazer test using JavaScript and Canvas

Ballblazer test

Ballblazer in JavaScript

I can’t tell you how proud I am of this.
As a kid I spent hours in the arcades. I’ve written about it on here in spades. But when it came to more personal gaming thrills I had my beloved Atari 800XL.

The king of Atari games for me was Lucasfilm’s stonking future sports title Ballblazer.

I recently ditched the idea of crafting mobile games (at least for now) so I felt like diving in to something a bit meaty and very personal.

Ballblazer’s green shaded grid provided just the challenge I was after.

I’ll write up on how the development is going in the future.
For now you can spin left and right (with arrow keys) across the playing grid here:


Some more thoughts on mobile browser based games

Ever since my first attempt at making games with JavaScript I’ve wanted to remake the games that I grew up with. Galaxians, Space Invaders, Defender, Scramble, Spy Hunter…
These are the games that turned me on to video games and hold a special place in my heart.
Using the newer HTML5 technologies I continue to pursue my goal of re-crafting those special games from 30 years ago.

When I bought the book Building iPhone apps with HTML, CSS and JavaScript I realised that there was scope for extending my HTML5 games to mobile handsets. Suddenly a whole new world of game development opened up. I quickly (too quickly) reshaped my first HTML5 game Wizard Wars to fit on the iPhone and implemented some touch screen controls. The result was pretty nice and I managed to get some valuable exposure for it. Naturally I was super excited at the potential for having my desktop games also playable on my phone.
So I followed it up with HyperGunner (again developed for the desktop and shoe-horned in to a mobile format) and more recently Spy Chase.

I had of course blindly assumed that any game, regardless of its content and style, would be just as attractive to mobile gamers as desktop gamers. Surely the rules of game design are laid down such that they are relevant to any format ?
Well life works best when you learn stuff and I’m learning more about game design all the time.

Some recent activity in the HTML5 gaming community has steered me towards rethinking my approach to designing games for mobile devices.
I decided to ask myself some key questions. The answers to which could potentially come very close to challenging my own thoughts on the relationship between my beloved retro arcade games and today’s mobile games.

If you are playing a game on a mobile phone what are you looking for ?
Is it all about limited time to play or is there room for a longer game experience ?
How important are the visuals ?
Do the traditional rules of challenge and reward count for anything ?
and less crucially but just as relevant.. what is the profile of your typical casual mobile phone gamer ?

The more I research the market for casual mobile games and the more I repeat those questions in my mind the more I see a disturbing trend towards what I consider shallow games.
I’m not interested in over complicating my games but I do enjoy layering the challenges where possible. I certainly didn’t rekindle my interest in designing games to create game experiences with no substance. I did it because I want to explore rich gaming experiences that can be enjoyed at a stretch not hurled in to the bin after 2 minutes.

Now I’m happy to hold my hands up to the fact that I may have fallen short in my first attempts at creating games. But I do believe that I have used some tried and tested techniques in creating their challenges and setting their various stages.

Not everything I’ve seen is cause for concern. There are some fascinating exceptions. Anything with physics for example works a treat for me. But by and large the casual mobile browser gaming sector is swamped with throwaway games with little or no challenge. If I see another game involving changing the colour of a brick or matching 3 diamonds in a row …..

I always have new game ideas. I sketch them in to a book that is brimming with characters, challenges and game styles. They start as seeds and I develop them over time to be more rounded and what I would consider a full game experience. For example, I had an idea for hurling a character vertically in to the sky from a catapult. As the character descends with a parachute you steer him away from spikey objects and try and stay airborne for as long as possible. That in itself might be an interesting game but I soon set about adding things to flesh it out a bit.

In all my games I try to involve the ability to shoot at stuff. This can cause problems on a touch screen but if handled well is a nice experience. In my parachute game I’d figured a way to spray bullets downwards from your character. I needed stuff to shoot at. Before long the game’s design was full of mini challenges and layers of complexity. It’s this that thrills me.

But in what I’ve seen of successful mobile browser games the very first step of hurling the character in to the sky would pretty much suffice. Nothing more, just catapulting your character high in to the sky as far as you can..

So I’ve temporarily changed direction. For the time being I won’t focus on creating mobile browser games. My brain just doesn’t think that way. I’m always trying to add to a design to flesh it out. I wouldn’t ever have that sense of “finally it’s done”. I’d always be looking to move it along a bit. I enjoy a certain amount of complexity.

I am in complete admiration for anyone that can create successful mobile browser games but there is a certain discipline required that I just don’t possess.
Most important of all though, I’m simply not interested in that style of game design.

Saving some frames by throwing a canvas at drawImage()

My next project is to be a maze game. I’d already ditched the idea of recreating a Gauntlet style romp through multiple dungeons because I wasn’t happy with the behaviour of the monsters. Getting stuck on walls and bunching up to block an open doorway was driving me mad. That’s when I started HyperGunner.

Two games later and the diversion has done me some good in that I now want to go back to the idea of a maze style game.

With all that I’ve learned in the last 2 months about controls and presentation on mobile devices I figured it ought to be a good project. The first thing to change was the screen resolution. In with 320 x 480 and out with the ridiculous 800 x 320 of the previous attempt.

I called the game Mutant Mayhem.
This is an old title for me that dates back to my days at Software Creations where a young coder and I teamed up to put 3D on a GameBoy Advance. Well, raycasting but the effect was the same. It was essentially Doom and performed beautifully. I’d created some cool weapons that the player could view as if in first person mode. I’d pixelled the hands (with twitching fingers during idle times – was very proud of that) and a whole array of monsters. I thought it was good work.
At this time we both read about how Doom’s designers had found the whole scientists over-run by lab experiments style of game a bit cliched and tired. Hence why hell came through the teleports on Mars rather than mutants running riot. But we liked the former idea and stuck with the title Mutant Mayhem. It was to be a similar game to Doom in that you run each level blasting mutants and locating keycards to escape.

Almost 10 years later I want to revisit the concept in a 2D view.
I have my level editor which I developed for the Gauntlet game and adapted it for a tighter resolution with neater graphics.

The trouble was each wall tile was around 32×32 in a 320×480 canvas. For a level with many walls the game loop was potentially performing drawImage() on each tile several hundred times per second.
Performance was atrocious.

So I threw the question to the group and found a solution.

The theory is simple.
Because I only really need to build the tile map once at the start of each level I simply create a canvas and draw the tile images to its context in a single loop.
I then pass this canvas in to the drawImage() method in the actual game loop.

Step 1: Create the new tile canvas in my init() function. (Note: I have a global namespace defined as g)

g.tileset = document.createElement("canvas");
g.tileset.setAttribute("id","tileset"); = "none";
g.tileset.width = g.canvaswidth;
g.tileset.height = g.canvasheight;

g.tilectx = g.tileset.getContext('2d');

Notice how the canvas is not visible. Very important !

Step 2: Draw all tile images based on the level data to the canvas on level load

g.tilectx.clearRect(0, 0, g.canvaswidth, g.canvasheight);
for (var a=0;a<levels[g.level].tiles.length;a++)
  var o = levels[g.level].tiles[a];

You can see that all my level data is held within the levels[] array.

Step 3. Use the canvas in my main drawImage()

g.ctx.drawImage(g.tileset, 0,0);

The alternative to this would have been something like this:

for (var a=0;a<levels[g.level].tiles.length;a++)
  var o = levels[g.level].tiles[a];

.. on every game loop. Which is a crippler !
You can see what I’ve done so far here:

Ignore the car ;-)

A couple of quick bug fixes

Spy Chase had a couple of issues:

> Missiles being reset to bullets following a spin and retaining missile delay times
> Bonus score for destroyed vehicles not being added to m.player.score

Final changes to Spy Chase

A clear problem of being a one-man-band game developer is that I don’t get access to rich game testing resources. As much as I play the game to death whilst developing it I just don’t get the right kind of feedback to help push the game over the line.
Indeed one of the issues is that I get just too close to the game and probably accept its problems and limitations.

With Spy Chase I resisted adding guns and missiles to the player’s car since I’d always wanted it to be a game about dodging obstacles. But the more I played it the more I realised that I needed to offer some effective resistance to the chopper. The chopper is a big feature in the game and I didn’t want to lose it. But it was proving a real pain and disrupting the natural flow of the action.
So I implemented the auto-firing missiles and without giving it too much thought called it “done”.

The trouble was I’d instantly undone a ton of hard work. The game became so simple that you could just leave the controls alone and still capture the spies.

My last post generated its fair share of inbox activity with numerous suggestions for how I might improve the game.
Now I’m not your average developer when it comes to this sort of thing. Many developers that I know would quite arrogantly dismiss these suggestions but I actually read them through and valued the input. If you take the time to type it I’ll certainly take it on board.
Several suggestions were not relevant but some were excellent. So I took the excellent ones and played with them.

One of the first things to change was the auto-firing weapons. I love auto-firing weapons in mobile games and had got it in to my head that it was the only way to implement weapons. But of course it isn’t. Weapons should be a bonus. As such I made them collectable and further set them apart by changing the firing rate on bullets to be much faster than missiles. Missiles naturally deliver a bigger punch.

The biggest change I made though was to the effect that the obstacles had on the player.
Previously I’d penalised the player for hitting an oil slick or road cone by decreasing their speed. But this was wrong. It just felt bad that the player had to protect his speed. The largest part of the fun in the game is the high speeds that can be achieved. I wanted to maintain that.
So instead I hit the player in the other area that he cares about – car damage.

This was actually a huge improvement since it meant that the player could no longer just leave the controls alone and progress.
For every collision with an obstacle I hurt the player’s car. This really counts since the further in to the game you are the more likely it is that you will face such obstacles.

Finally to help give the player a fighting chance I reduced the maximum speed of the road from 32 to 28. Believe it or not the extra 4 pixels of movement in the road makes a huge amount of difference and can be the difference between deliberately aiming for something or being able to steer out of the way.

What I liked about this process was that a) people felt like they could offer suggestions and b) I was able to consider and act upon them with ease since I’d structured my code to be flexible enough. In short this is an exercise in creating a rich array of properties and variables such that at the end of the day I am simply playing with numbers.

A valuable couple of days.

The final game is here:

Spy Hunter homage almost complete

Spy Chase screenshot

Spy Chase screenshot

Spy Chase, my Spy Hunter inspired arcade game, is motoring along and very nearly complete.

I finally got around to adding guns and missiles to the game which for me was a vital final piece of the game’s design. I think I balanced the action pretty well so that the player, with a little skill, can be the dominant force in the game.

I like to design my games based on a countering method to the obstacles and challenges.

From the outset the player faces the challenge of simply steering to remain on the road. At the head of the screen the player sees a radar. Before long it becomes apparent that the white blip is the player and the black blip is the target spy car.
Collecting flags increases the car’s speed such that steering becomes more of an issue. To avoid that becoming a breeze for the player I penalise him for hitting the road verges by a) slowing the car down and b) adding damage (reflected with a red damage bar).

This in itself is enough of a challenge to carry the game along a bit but I wanted a lot more early on.
So I added other cars to the road. Initially I intended to have the cars run the player off the road but ultimately I settled on having them as a distraction. The player can bump them from the road and earn a points bonus after each stage. It’s still a challenge just to bump them (or shoot them) from the road.

Finally I added a chopper which at set periods drops oil bombs on the road.
If the player collides with the oil his speed is reduced, the car spins and loses the missiles powerup if the player has collected it.

All in all there’s some high-speed fun to be had en route to actually capturing the spy.

Once the game is complete I’ll add some more detail to these design notes.

The game is designed with mobile devices in mind and has been tested on iPod Touch, iPhone, iPad and HTC Desire.
Any feedback from other handset owners would be gratefully recieved ;-)

You can play the latest version here:


Some more thoughts on building fun and challenging arcade games

I’ve written it before that I’m not a huge fan of design documents for small projects. I’d rather be coding. So please don’t consider this as a literal document it’s more my own thoughts on some pointers for creating cool arcade games. I guess it goes hand in hand with my previous thoughts on the importance of arcade game design.

Know your character

Create your game character / spaceship / thing and set up some basic controls. Play it. Use it. Get to know it.
Is it fun to watch and control  ?
What situations would it be cool to have to deal with with your on-screen character.
Start to consider the look and style of a potential adversary for your character.
If you character can jump what kind of obstacles and challenges might he face ?

For many people just getting something on to the screen is an achievement – often the result of an initial technology test. It’s an exciting time. When you bind it to input it becomes even more thrilling.
I remember walking the Wizard in Wizard Wars around a blank screen for hours before it came to me that he should be collecting things.
Initially I had wanted to stage a battle between the Wizard and a number of mythical beasts. One in which my goal was to battle through waves of beasts using bolts of magic lightning and other such fantastical things. I guess in my mind it was Robotron with magic.
But I was controlling the little guy on a touch screen (first gen iPod Touch) and really didn’t feel comfortable with littering the screen with magic. Especially as the Wizard could move freely in 8 directions and wasn’t just restricted to his own area of the screen. It could have started to look very messy and confusing for the player.
I liked the idea of the Wizard tidying up his room. To me that was his role and formed his identity. Perhaps he was less the all battling Warlock and more the bumbling Merlin-esque Wizard who just happened to have magic.

Back to the controls.
Hurling the birds in Angry Birds is a lot of fun. It could easily be a device for another game. e.g. aim for the furthest distance.
Running the corridors in DOOM and just pulling the trigger is a lot of fun. As is flying over the planet surface in Defender just blasting lasers left and right.
There are so many games where just interacting with your character / vehicle is tremendous fun regardless of the actual goal of the game.

For me this is very much the first thing to get right in your game. If the one thing that you spend your entire game experience doing is poor or less than stimulating or heaven forbid confusing then your game will die.

My wife I’m sure despairs at the sight of me running a simple animated sprite around an empty screen whilst making all manner of noises and talking to myself. But for me it is a hugely creative experience.

Define the broad goal

Games need goals. Something for the player to aim for.

I’m a big fan of layering content in games. That is, you keep in mind the broader goal but the path to it is paved with smaller ones.

In DOOM your goal is clear. You find the exit and start over in a new level.
Same goes for Angry Birds. You wipe out the pigs and move on. The fact that death and destruction lie between you and your goal is merely an enjoyable consequence.

Your broad goal should be explained and where possible available to the player at all times as a visual reminder. I am of course thinking of PacMan. Games where everything is on the screen at once really allow you to achieve this. Multi-screen games are more of a challenge.

With hindsight I would probably have altered Wizard Wars to have the star count decrease to zero rather than simply incrementing the figure in the top corner of the screen. The reason is simple, not everyone reads the instructions. If you just drop in to the game it’s not at all obvious that you are aiming to collect 50 stars. Far better to count down since the player will quickly identify the goal as being zero.

In HyperGunner I dangled the carrot of “miles to Earth” at the end of every level.
This quickly forms the broad goal of the game and is mentioned in the pre-game screen.
Working back from there I was able to provide suitable sub-goals that moved the player through the game logically. i.e. collect stars to build up the hyperspace power bar.
Once in hyperspace the player is hurled that bit closer to Earth – the ultimate goal of the game.

Again with hindsight I would probably have staged the game a bit better. As it is the stars, diamonds and score multipliers are all generated randomly. Perhaps it would have been better to have spawned the hyperspace stars in line with an alien bomb or a saucer missile to add an extra challenge to the player.

These things invariably come to you once you’ve played your game to death.

Know your enemy

Your enemy is vital to your game. Games without challenges are dull. Games without conflict are dull. Of course you can define conflict in the true sense as being a shoot out or a physical struggle or you can express conflict as more of a struggle against time or resources. Either way the concept of conflict is key.
Your game needs to constantly throw stuff at you and you as the player must control the game such that you overcome all of it.

Your enemy should provide all of this.

Whether you define the enemy as an array of aliens, a wall of bricks or a ticking clock they should all seek to get the better of you by taking your goals and doing their utmost to prevent you from achieving them.

The better arcade games offered variety in the design of the enemy.
PacMan (again) with its varying ghost AI. Defender with its Baiters, Mutants and Saucers.

More recently DOOM with its mix of monsters and of course Angry Birds with its varying HP amongst the pigs.

Design is everything here.
If you have an enemy that hurls a visible bolt of magic at the player where is the best place to position it ?
If you have an enemy that seeks to crush the player where might you place it  for maximum effect ?
If you have a goal that is set against a ticking clock in say a driving game what kind of  enemy might you place in front of the player ?

It’s all about countering the interests of the player and his ultimate goal.

When you are designing your game on paper try to write down the role and actions of the enemy before you draw what it might look like.

The curve

In drama there is a simple rule that your protagonist must become something through his actions.
The simplest example I could find is the young farm boy Luke Skywalker in Star Wars who dreams of flying starfighters and taking on the Empire. Of course not only did he do that but he also had very close links to the Empire. Luke’s character curve (or arc) was quite pronounced and extremely satisfying for the viewer to consume.

In games we should strive to achieve the same thing. Whether we control a physical avatar or simply manipulate the contents of the screen we should ultimately feel like we have come from humble origins and through our actions – and hence increasing skill – have become something quite special such that we can take on anything that the game can hurl at us.

The game therefore, for its part, should naturally hurl everything it can at us by this stage.

A player needs to be tested at all times and then rewarded.
The “curve” that the player experiences can then be measured by their accumulation of rewards.

In modern FPS games you see this done with bigger weapons, greater ammo capacity and tougher adversaries. Well, bigger adversaries with higher HP. FPS games are frequently dull since they fail to move beyond this dynamic for progressing the protagonist through his curve.

In shoot ’em ups, another fine example of the character curve in action, you cannot get away with simply throwing bigger, faster and more deadly aliens at the player without first preparing the player with such things as shields, laser improvements and smart bombs.

More often than not your character curve is identifiable through the staging of your game’s content in the later stages. By virtue of the fact that your character is sat amongst complex enemy AI with all manner of obstacles in his path is evidence that the player has taken that journey and accumulated all the rewards en route.

So when you’re designing your game consider a snapshot of how you imagine your game or character / screen to look in the final shot (if of course your game ever ends !) and overlay that with the very first view of the game that the player saw.
If the two images look similar you may want to re-think some of the obstacles and goals.


Hopefully these thoughts will help you to lay the foundations of your game.
Designing games is a huge amount of fun. Coming up with the various levels, obstacles and game “personalities” is what makes it such a thrilling exercise.
Realising that your game is dull and devoid of challenges at a late stage in its development is no fun at all and extremely frustrating.

I believe that anybody can design a fun game. It’s not the preserve of large corporate entities and 5 minute wonder studios.