Posts Tagged ‘freelance’

Hero Squad: Rapid Response

Sunday, November 18th, 2012

Hero Squad: Rapid Response, is an ambitious driving/flying/sailing game built with Aardman Digital for the BBC. It helps promote a new children’s show called Hero Squad on CBBC. Train for active duty in the rescue services alongside the kids in the TV show!

Play Hero Squad: Rapid Response.

This game plays much like the earlier GTA games (now available as fully legal free downloads), but with a lot less nefarious activities. It’s all about getting to the scene of an incident as fast as you can in either a fire engine, a lifeboat, or a coastguard helicopter.

There were quite a few technical innovations required to bring this game to life. We wanted the gameplay to exist in a large free-roaming game world so that you could plat your own route to each incident. You can take shortcuts if you want, and the road layout was meant to look plausibly like a fictional coastal town in the UK. This meant that roads should almost never be set on a grid, which always makes a game map look like an American city.

CGI

You view the action from essentially a top-down view, except that it’s not quite directly above. The camera looks to the north slightly so you can see the sides of buildings, vehicles etc. To achieve this, all relief sprites in the game were created by Aardman’s awesome CGI department, and rendered into 3D turnarounds of each item. Every car, boat, building, tree, fence and even lamp-posts is a multi-layered set of sprites, separated into a colour layer, a shadow layer and sometimes into a matte layer (for vehicle recolouring). The sheer amount of assets included is astonishing, and runs to several thousand separate bitmaps.

Map

The map itself is created in Flash, and composed of the aforementioned sprites for buildings and vegetation, dynamically depth-sorted above textured vector roads and fields. The area of the map is simply huge, being 20480px wide and 12288px tall. Far too big to work on in one piece in Flash. Simply viewing the full size map at once in the IDE easily causes Flash to crash, so the map is broken into 1024x1024px squares. These exist on individual frames in small groups of tiles, so that the seams can be worked on in-situ for each larger area.

At runtime, each tile is only added to the stage as needed, along with all the underlying physics logic for that tile. At any one time, there are only a few small chunks of the map in action, which keeps the number of items being depth-sorted low. It also keeps the amount of objects in Box2D to a minimum, making collisions faster to process. Tile graphics are cached to bitmaps as the vectors are rendered, of course. This doesn’t include buildings and other relief objects however, as these have to be depth sorted against the traffic on the roads.

We processed the map into a single 250 megapixel image after production. Placing it side-by-side with exports of the GTA-3 map, they are roughly equivalent! We believe this to be by far the biggest continuous, non-tileset game area of any Flash game to date. If you know of any bigger, post a comment!

Download large JPEG (1mb)

Download HUGE JPEG (30mb. Warning: This may crash your browser!)

 

 

 

Physics

In-game physics is provided by the ever-spectacular Box2D. The helicopter is a pretty simple vectored-thrust model. A torque is applied to turn it to a heading, and a rotational friction is applied to fight that action. Forwards/backwards are simple impulses.

Lifeboat physics is more complex. It consists of a virtual keel that opposes sideways motion, but not fore/aft motion. The motor just pushes the boat forwards, and a torque changes it’s heading. It’s actual path of motion however is determined by the sideways-force on the keel.

The firetruck (and all cars/busses/lorries) have the most complex physics model. It has two virtual wheels that operate a bit like the boat’s keel, but at each end of the vehicle. When the player steers, the front wheel is turned smoothly to an angle. Slip angles are calculated from the linear motion at the point of the wheel, and a sideways force is generated and applied. The resultant slip angle force is a simple model that works similarly to real tyres, where more angle means more force – up to a limit. After that, grip drops off progressively. Acceleration/braking is applied as a force along the line of the wheel, and steals from the traction circle available for sideways forces. Accelerating/braking also affects a weight-shift variable, which modifies the grip available (the size of the traction circle) at each end of the vehicle.

This attention to detail means that you can get all sorts of realistic looking situations happening with the firetruck dynamics. Accelerate through a corner and it will understeer. Brake mid corner and it’ll plow straight on. Lift-off mid corner and you’ll get oversteer, which you can catch with opposite lock and a powerslide if you’re skilled enough! If not, you may end up fishtailing, or spinning out entirely. You can do reverse J-turns, and even donuts if you set it up just right with a suitable piece of grass.

For the ground, the same physics are created no matter which vehicle you happen to be driving at the time. There can be sea, air and road traffic existing together no matter which vehicle you’re using. Extensive use of Box2D’s built in collision bits and categories helps differentiate the various things that should collide for each of the vehicles. For example, boats collide with the grass layer so that they never cross land. The helicopter only collides with the special tall building layer, which is not in the same position as the ground building collision layer. The firetruck collides with buildings, vegetation, fences and fields of course, but also collides with the grass layer but with no collision response. It is only used to determine when to put cars into a low-grip situation so they slide further on the grass.

Vehicle AI

Non-player-controlled vehicles in Hero Squad are driven by a computer AI. They follow guides built into the map tiles, but they have to be real drivers. To make collisions with other cars look as realistic as possible, all cars are physically modelled. That means the AI drivers have to actually use an accelerator, brakes and steering just like the player does. They measure their distance from a centre-line that runs down the middle of every drivable road, and try to steer such that they are a set distance to the left of it. When you press space to sound your siren, they internally alter this distance to be greater, and the AI automatically pulls them over to the edge of the road. Drivers are free to go wherever they like, and at any junction they just pick a random direction to drive in. Some roads are marked as one-way, so drivers don’t end up in dead-end streets with nowhere else to go.

Cars are added to the map to random road segments that are off-screen. The AI has to be smart enough to deal with what happens if there are no more road segments – remember there’s not much of the map available at any one time. When they’re lost, and don’t have a current road segment to follow, they are eligible for removal from the world, and are recycled into a new car somewhere else.

Wind/Water currents

When flying the helicopter, and driving the boat, you are pushed around by wind and currents in the water. Both effects are achieved with a bitmap vector field directing the flow of each particle. New particles are instantiated at random. Every frame, they look up the colour in the vector field bitmap. The red channel encodes the left/right force, and blue encodes up/down. The particle simply moves according to that force.

The vector field image itself was created by hand in Photoshop. I started with a simplified monochrome map of the land. Then I painted 0x800000 to the red layer, and 0x000080 to blue. These values are right in the middle, and mean “no force”. Then I painted bright red to the land anywhere I wanted the water to flow right, and black wherever I want it to flow left. The same with blue for up/down. If you want to reduce the amount of current in an area, you simply paint with 0x800000 or 0x000080 to bring the values back to the ‘middle. This is very similar to how Flash’s BitmapDisplacementFilter encodes values.

Once finished, the layers are set to blendmode “add”. The resulting bitmap encodes all the forces that make up the currents. You can use things like the smudge tool and blur filters to alter the smoothness and tweak individual areas. I managed to get the water flowing around rocks, up and down streams and so on with this method.

 

Tony Robinson: Weird World of Wonders

Tuesday, May 1st, 2012

This puzzle-platformer game was built with Aardman to help promote Tony Robinson‘s new series of lovely children’s history books.

Play Tony Robinson’s Weird World of Wonders.

In every game I try to introduce something new and original. In this one, you control two characters at once. Pee Wee and Nits. The boy Pee Wee can be controlled with arrow keys, and Nits, his dog, can be controlled with the mouse. That means that two people can play side by side on the same computer, in a cooperative manner. It’s great fun, give it a go and try to solve the level puzzles with your best mate!

I’ve loved Tony Robinson’s acting work since I was young, watching him play Baldrick in the Blackadder comedies. It was an amazing privilege to work with him on this project. His browbeating voiceovers totally transform the game, injecting character and humour throughout.

The Pirates! Land Lobber

Tuesday, May 1st, 2012

I built this game with Aardman to help promote the Sony/Aardman release of the awesome and hilarious film The Pirates! In an Adventure With Scientists.

Lob eggs at the targets on stage until you’ve knocked them all down. Then take the gold you’ve earned and upgrade your fruit-slinging weapons in the shop.

Play The Pirates! Land Lobber.

Home Sheep Home 2: A Little Epic

Friday, December 9th, 2011

Help Shaun, Shirley and Timmy find their way home in this super-cute BAFTA-nominated physics puzzle platformer.

Play the London episode on the web, free

Play the Underground episode on the web, free

Visit the official site to buy the game for your PC or iPhone/iPad

After the success of the original Home Sheep Home, Aardman asked me to work on a sequel with the ultra-talented artist/animator, Robin Davey (who did all the art/animation for the first game too). The original game was a pure Flash web game, hastily built just to raise brand awareness for the Shaun the Sheep show. The new game was to be a multi-platform paid download game, as well as a free-to-play web game. We had our work cut out for us!

So, what could both work as a free web game, and as a paid download? Why would anyone pay to play something they can play for free? Well, we came up with a few reasons:

  • Super high resolution graphics, running super-smooth in full screen
  • Lots more content – more episodes, bonus levels, more to collect
  • Developer’s commentary
  • Exclusive fun/silly cheat modes
  • Runs on your iPhone/iPad

Robin and I scratched our heads, scribbled lots of notes, drank lots of tea and ate lots of biscuits until we had a rough plan of the game. Then came months of hard work building it all. Top-designer Gavin Strange worked on the lovely interface screens. Tech genius Richard Davey orchestrated a textbook perfect technology-intercept with AIR3 for the desktop version, and lots of other people at Aardman were involved (check the in-game credits for the full list).

Alongside our own development we also worked closely with the amazing Mobile Pie to help them create the iOS version of the game. Mobile Pie’s star developer Matt Arahna and the rest of the team did a truly spectacular job of bringing the experience to the iPhone and iPad. They slaved for months ensuring the mobile version played just like the desktop and web versions, including every frame of the rich animation, beautiful layered backgrounds, physics, controls and more.

It’s been a long journey, and one of the most complicated projects I’ve ever been involved with! The multi-platform end product was well worth all the hard work though, and although the game has only been out for a couple of days as I write, it has already had hundreds of thousands of plays. Initial feedback from players seems very positive too! That’s the bit that really matters in the end – bringing a beautiful and fun experience to people who love games.

 

Deadly Planet

Monday, October 31st, 2011

To go with the brilliant kids wildlife TV show “Live ‘n Deadly”, the BBC wanted a major online game. They got Aardman to build it, and I was brought in as part of the team. I worked mainly on the design of levels 2 and 3 (Borneo and California), but also on the core platform engine a little, alongside Mark Burvill and a few others.

It was an ambitious project, with a pretty tight deadline. There’s the odd rough edge, but overall it came out pretty well! There were even tie-ins with the show, with the presenters giving out goodies for the game live on air.

Play Deadly Planet.

 

Light Strike

Monday, October 31st, 2011

To advertise the kids laser-tag toys Light Strike, I built a simple target-range game. It was created over the course of a couple of days, with supplied graphics from Chris Minett.

Even though this was a super-quick build, there was still time to work a little depth into the game. The gun has a 3-round auto, and using it will help you score higher. Don’t hit your own team colour too, and aim for the centre of each target for maximum points! There’s even a faux-3D effect on the gun lasers.

Play Light Strike

Infinite Monkeys Bending Reality

Sunday, July 24th, 2011

Bend reality itself in this strange and innovative platformer that asks “What if monkeys could bend reality with their minds?”. Find out for yourself by playing Infinite Monkeys Bending Reality.

Postmortem.

I started work on this game shortly after Flash 8 was released, something like 4 years ago! It was written in AS1, and started out as a test of the new DisplacementMapFilter that had just been introduced. I built a dead simple early test where you could bend the level and jump around on it, and it worked better than expected. Sometime around then, I quit my full time job and became freelance, and Infinite Monkeys got pushed aside for more critical jobs.

Over the next couple of years, I’d occasionally find myself with a bit of time to work on the Monkeys. So I’d go back to it, add a few levels, do some graphical work, add a new feature or whatever. Then something more important would come up again, and Monkeys would get forgotten again.

This super-long gestation period seems to have led to a pretty big game with lots of features and plenty to like about it. Unfortunately it’s also led to confused and somewhat buggy code, multiple art styles and rather random storylines! There are missing features too. A few people have complained that it doesn’t save your progress. This is true, but it turned out to be a very hard feature to implement due to the disjointed way the whole game was built.

The public reception to Infinite Monkeys on the whole is rather better than I’d expected. You always get some people hating on games they don’t like for whatever reason, and you tend to get hate for anything that doesn’t work perfectly in a game too. I’d always expected it to be a Marmite game, splitting opinion neatly into “It’s bonkers and I love it” and “It’s hard and buggy and I hate it”. That happened, but it seems to have gone much more towards the first than the last; a pleasant surprise!

Most people seem to enjoy the intro. They like my silly voice and the weirdness of it. A few people seem to read deeper meanings than were intended here, like references to The Hitchiker’s Guide, pro/anti-evolution themes and all sorts. The only vague meaning beyond amusement, was that the game really has been bashed out by a sort of monkey at a typewriter: Me!

This game features four separate endings. Two are pretty easy to find – you run to the end and there’s a junction where you have to make a choice. The other two are much harder to discover. You have to do a tricky move to get past an obstacle that doesn’t look passable, then nip down the drain beneath (where there’s another junction). A surprising number of people have done this, and in fact one of these endings is the second highest achieved, according to the stats.

Graphically the game is a bit of a mix. I did most of the levels etc myself, just by trimming bitmapped textures with Flash’s built in tools. The game was originally intended to run over hand-drawn levels, but it turned out far too hard to get the hand drawn bits to match up with gameplay constraints. Plus there was an awful lot of levels in the end (over 50) and it would have taken forever to make them all. Some of them are animated too, like giant machines you have to crawl through.

The very best bit of graphical work in the entire game was the protagonist monkey itself, illustrated and animated by the super talanted Nick Hilditch. The monkey character is well received by the public, and helps give the game sufficient charm to make people play in the first place. Awesome!

Lessons:

1. It doesn’t pay to leave something on the back-burner too long. The world moves on, and you forget how the code works!

2. Have a bit of fun with hiding objects, easter eggs and the like around the game. People enjoy them, it seems.

3. Multiple endings are popular!

4. Buggy code will produce angry players! Doesn’t matter if you’re doing something difficult, they don’t care.

5. Intros can be worth it. Keep ’em short and punchy though.

6. Make something a little weird and mystereous, and some people will add their own meaning.

7. Everyone loves monkeys!

Championsheeps: Baahmy Golf

Sunday, December 5th, 2010

Bhaamy-GolfChampionsheeps is a new suite of five children’s games, produced by Aardman Digital for the BBC. I worked on coding the Baahmy Golf game within the suite. The graphics and concept were all worked out when I got to this one. I just had to make everything work!

In Baahmy Golf, it’s Shaun’s job to break as many things as he can with just five shots. Almost all of the items visible are interactive in some way, so smash away and enjoy the show! Don’t forget to use your unconventional flippers (lids, a toilet seat, even a duck) to keep the ball in motion.

Play Championsheeps now!

Royal Mail Christmas Stamps

Tuesday, November 2nd, 2010

royal-mail-avatar-toolThe Royal Mail have Wallace and Gromit on their Christmas Stamps this year. You can also use this handy tool to create your own face in Wallace and Gromit clay style. I didn’t design or even do all of the build on this one, but came in late to the project to help bring it in for the deadline.

Wallace’s Workshop

Friday, October 15th, 2010

wallaces-workshop-0Unleash your inner inventor and build crazy contraptions in the BAFTA winning Wallace and Gromit game, Wallace’s Workshop. You’ll need to use your intelligence, imagination and cunning to build everything from battery powered cars and rocket powered sleds, to Heath-Robinson contraptions and giant trebuchets!

Play Wallace’s Workshop now!

This Flash game is a little deeper and more involved than a lot of the other games I’ve produced. Take your time, and don’t be afraid to skip ahead if you can’t figure something out.

wallaces-workshop-2

Crazy contraptions!

wallaces-workshop-4

Battery powered car

wallaces-workshop-1

Inventive machines

wallaces-workshop-3

Rocket sled!