Archive for the ‘Games’ Category

Bridge Construction Chaos

Monday, July 13th, 2020

You have a magical sky crane, and a construction job to do. But the traffic hasn’t been stopped. You’ll just have to work around them I  guess. Don’t worry if a few innocents end up  in the water in the process. I’m almost sure they can swim.

  • – Controls are all on an XBox controller, and are shown  in game.
  • – Features 6 incredibly detailed challenging  levels.
  • – No winching the cars to the goal. Your mum didn’t raise you to be a cheat!
  • – Built by a team of one, in about a day and a half. For the GMTK Games Jam.

No need to complete levels if you don’t want to. You can skip back and forth as much as you like.

This was my entry to the second largest games jam in the world. Well over 5000 entries from over 18000 participants! It ranked in the top 20% of entries, with a top 10% rating for fun. I’ll take that as a win, especially as this was my first completed jam since my brain surgrey. I tried to enter GMTK in September 2018, but had to sleep for several days after just 3 hours of work on it! I had to sleep for several days after this too, but I got to the end and made it a proper entry in the jam.

Check out the game on deeperbeige.itch.io to view the trailer/walkthrough videos, or download it to play for free if you have an XBox controller.

The Eastern Edge

Wednesday, June 10th, 2020

THE EASTERN EDGE – THE FEVER-DREAM SURVIVAL-SHOOTER WHERE YOU PANIC-LOAD EVERY ROUND WITH YOUR BARE HANDS, BECAUSE DEATH IS ONLY EVER A FUMBLED BULLET AWAY.

Test your nerves and your gun skills without all the abstractions of the modern FPS – no auto-reloads, power-ups or recharging health bars.

This is a VR game exclusive to the Oculus Rift and Rift S that I worked on as the main developer with the incredible team at Shadow Industries.

Out now, you can buy The Eastern Edge on the Oculus Store here, and see the official website here.

PENNZOIL JEEP BAJA VR

Saturday, September 16th, 2017

Push the limits of performance in the desolate beauty of Baja, Mexico, and find out what it takes to dominate the desert.

Pennzoil Jeep Baja is high octane VR experience developed from the ground up to showcase the unique performance of the Jeep Trailcat and Pennzoil Platinum.

I worked with the fantastic team at Shadow Industries on this wonderful project that included integration with a physical simulator. It was a beast of a machine, simulating the beastly 707bhp Trailcat. The goal was to make the player feel like they were wrestling with a tiger!

Unfortunately, unless you catch the exhibit at an event, you can’t play it. The best I can do is show you a 3 minute trailer made for the website.

Bending the Light

Tuesday, August 8th, 2017

bending-the-lightDon your Oculus Rift headset and grab your Touch controllers for this mind-bending puzzle game. Manipulate beautiful beams of energy with all manner of tools to try and charge up the targets. Includes 40 levels, each with its own secrets to discover.

Play on Oculus Home

  • – 40 levels, each with secrets and collectables
  • – Designed for Oculus Touch
  • – Playable with gamepad
  • – Even playable with just a keyboard
  • – Abstract, dreamy, beautiful and atmospheric
  • – Meta-puzzles for those who solve everything else
  • – Low pressure, relaxing gameplay, but not simple!
  • – Can you achieve 100% completion?

Watch the trailer

W.A.V.E

Wednesday, January 25th, 2017

W.A.V.E robots are sent out to explore strange new lands, far from home. When they arrive, they connect via virtual reality to a human helper. You are that human!

First person VR is amazing, but it’s not the only thing you can do with a Rift. This game explores a 3rd person platformer using the touch controller for movement and aiming.

  • – Designed for (mostly) seated play.
  • – Requires an Oculus Rift with a single Touch controller.
  • – Adapts for left or right handers.
    • (Press the A or X button to choose in-game)
  • – Graphics mostly created in virtual reality, using SculptrVR.

Built for the Global Games Jame 2017, mostly just by me, in under 48 hours. The main robot and enemy models are by the amazing Aaron Hicks.

If you have the hardware, download to play for free!

You can see the original GGJ entry here.

Llama League

Tuesday, December 15th, 2015

2016-04-09 14.18.09Play crazy llama football with a friend or by yourself in this finger-skills game from Aardman Digital. Pick your location, llama and bling. Then learn the perfect moment to kick the ball into their goal. Build up your trickshot meter and unleash a super shot!

Download for iPhone/iPad
Download for Android phone/tablet
Official webpage

I supported the main developers on this free-to-play mobile game.

Shear Speed

Monday, November 9th, 2015

ShaunTheSheep-ShearSpeedHelp the flock make their escape from Trumper in this endless runner game from Aardman Digital. I supported the main development team on this free mobile game, rather than being one of the main contributors.

 

Download for iPhone/iPad
Download for Android phone/tablet
Download for Kindle Fire

Official webpage

Puzzle Putt

Saturday, October 17th, 2015

Puzzle PuttPlay crazy-golf with Shaun the Sheep! In this game though, you get to bend the course to your advantage by adding new blocks to the course. Can you get a hole in one? With 72 levels across 8 courses, there’s loads to conquer here. And if you’ve beaten the lot, why not make up your own levels with the built in editor? You can even capture and share instant replays of your best shots (or worst failures).

Download Puzzle Putt for iOS

Download Puzzle Putt for Android

Download Puzzle Putt for Kindle

This game was designed and built with Aardman Digital. They gave me loads of freedom to design the game, which is always a lot of fun. I wanted to build something unique, and which gives the player freedom to express themselves. The idea for Puzzle Putt is based roughly around the original Trackmania game, mixed with elements from Minecraft and of course other crazy-golf games that have been around forever.

Puzzle Putt: Three StarsTechnically, this build presents a few challenges. The first is the shot preview line. I really wanted the game to be more about solving the puzzle of how to get to the hole in the fewest shots, rather than being about performing the ideal shots with skill/judgement. To help the player achieve great shots, they need an aim prediction line that gives a lot of accurate detail about where their shot is going to go before committing to it.

The only way to get a super-accurate prediction line is to compute the shot via the physics engine, before it is played. You can’t write approximations and expect them to match the built in physics beyond the most basic of shots. Unfortunately, Unity’s physics engine is tied like clockwork to the FixedUpdate calls, and can’t be computed separately to the passage of real time. In other engines, you can often take a full copy of the physics world, then allow it to run several seconds of updates all within a single frame. Then you can present the results as a preview line instantly.

As the game was developed, it appeared totally insoluble within Unity. You simply don’t have API access to the physics engine at the level required to precompute outcomes. This was a classic case of designing around the problem, rather than solving it directly. Rather than giving the player an instant preview line, the game fires invisible golf balls into the scene continuously and records where they go. The frame by frame progress of each ball is shown as a separate preview line. It gives an interesting mix of perfect prediction, but delayed, so you can’t expect to easily find that perfect ridiculous implausible bounce shot. Add to that the imperfect precision of touch inputs, and it actually gives a lovely balance between prescience and guesswork.

Unity’s physics engine presented another challenge too. Since the levels are made from lots of separate blocks, the simple approach is to build them from lots of separate prefabs, each with their own built in collider to form the ground. The problem is that where two flat colliders meet, there’s a little seam. When a ball rolls across that seam, it sometimes catches on it and flips up into the air. This is a disaster for the gameplay since it gives unexpected bounces on smooth ground, and lets people break the level design by hopping over things they shouldn’t be able to.

The solution was fairly involved, and took a few iterations to get right. First, I built a separate mesh collider for each separate wall of each individual block. When the level is started, it iterates through all the walls and searches for overlapping identical walls. So two square blocks side by side will share a wall between them, and that can be removed. This helps, but doesn’t solve the problem completely.

The algorithm for comparing walls is actually pretty simple. Grab the verts of the wall being considered, convert them to world coords, then compare to the verts of each other wall. If you can match off every vert with one from the other wall, both walls are redundant and can be removed. In this game, you only have to consider walls from the neighbouring blocks (including above and below), since any other blocks will be too far away to have overlapping walls.

The next iteration performed the wall removal as above, then also iterated through all the remaining mesh colliders and stitches them into one big mesh. Well, two big meshes – one for normal grass, and one with different physical properties for mud.

The algorithm for stitching colliders together feels more complex at first, but actually it’s pretty simple again. You generate a new empty mesh with no verts, which will be the output mesh. Then you iterate through all the input meshes (after removing redundant walls) in turn. For each one, consider all of it’s triangles in turn. For each triangle, translate the verts into world coords and see if a vert already exists in the output mesh. If it doesn’t, copy it in. If it does, remember which one it is. Create a triangle in the output mesh that matches the one from the input triangle, and move on to the next. Once you’ve worked through all triangles from all meshes, you’ve got one big mesh with shared verts in all the right places. The physics engine now gives perfect rolling behaviour across the seams, which is a total solution to the problem…

…except it’s slow. 10 seconds or so on a typical level, and 30 on a big one. I did consider simply hiding the mesh creation when the level was first entered, but you have to allow for the player’s edits. That means you have to run it at the point where the player hits “play”, and 10 seconds is totally unacceptable there. I considered computing the fixed part of the mesh at the start of the level, then adding in the user blocks later. Turns out that doesn’t let you remove redundant walls around the edges though, since they’ve already been stitched into the main big mesh.

I was including collider geometry as a GameObject within each block, and physically deleting it from the world. That works, but it turns out that creating and deleting all those GameObjects costs quite a bit of CPU time. The solution was to remove them from the prefabs, and instead load example wall meshes from Resources into memory. There’s a list of which ones each block requires, and it just uses the data from the shared meshes over and over, rather than creating/deleting them. Sounds obvious, but it does complicate the workflow of creating a block quite a bit, and you don’t get automatic translations between the local and global coords system when working through the mesh data.

The final technical issue was the Everyplay plugin. This is a lovely bit of software that lets people record their gameplay, then share it with other players. So if you pull off a spectacular trick shot, you can send it to your friends, show off with other players and so on. The plugin integrates pretty easily, and works fantastic on most Android devices. On some Androids however it doesn’t work, and worse than that, it totally breaks the rendering of the game, displaying a black screen. Everyplay is supposed to cope with this by asking a server if the current device is compatible or not, but it doesn’t seem to know the answer. In the end, we made a simple white-list of devices where it worked, and left it at that. When new devices are launched, we’ll have to update the game to include them, but that’s better than running the risk of ruining people’s games entirely.

The Twits: Twit or Miss

Saturday, October 17th, 2015

TwitOrMissWatch Roald Dahl’s famous characters The Twits having their dinner, and save Mrs Twit from Mr Twit’s disgusting eating habits. As food flings out of his mouth and across the table, you have to swipe to flick it away from Mrs Twit. Let her get hit too many times, and she’ll wake up with the grumps. Build up a ghastly score by performing trick shots in this fun game developed with Aardman Digital.

Download Twit or Miss for iOS

Download Twit or Miss for Android

MixaMonster

Sunday, April 5th, 2015

mixamonster-1Can you discover the correct colours to mix up the lovable interactive monsters in this Windows Phone game for kids? If you can figure out the correct combination of colours, you’ll get to play with a wacky creature and their accessories. The trial version lets you find 4 monsters, and the paid version unlocks the full set.

mixamonster-2

I worked on this game with the wonderful talented illustrator Imogen Adams and producer extraordinaire Nils Hellberg, and others at Turbo Island Games. The game concept, monster design and illustration is all Imogen’s imaginative work.