🔒 EXCLUSIVE: Gallery - Collection
I was involved in the development of Strike Suit Zero - a game in which you control a transforming space ship, programming in C++. I had a wide variety of responsibilities including rerwritting the save system, being responsible for the audio code (FMOD) and designing and developing the DLC ships.
I worked in the run up to release, helping to fix bugs across the code base and within Lua scripts. Post launch, I worked on porting the game over to Mac and Linux, including setting up the build process on CC.NET.
The save system did not support multiple save files. This was not suitable as it meant settings such as your resolution were saved in to the Steam Cloud. Then, if you loaded up the game on a different computer, it would attempt to use your resolution from your old computer, which may not be compatible. I refactored the system to allow us to define different save files which one could then specify if they would be saved in the cloud, among other things.
I was responsible for maintaining and extending the audio code. This included implemented a scriptable low pass filter and other features requested by our audio technician.
I created two further Strike Suits - the Raptor and the Marauder (avaliable to KickStarter backers and in Strike Suit Infinity). The Raptor is a agile ship with a close range shotgun capable of hitting multiple targets at once. The Marauder, is a heavier ship with a long range cannon and is the only other ship, aside from the bomber, capable of firing torpedos. I was responsible for the new code required for these ships as well as trying them in differenent scenarios to ensure they were fun and effective.
I developed a prototype sailing game in which the player - from a first person perspective - adjusts a sail to try and catch the wind.
The game was developed in Unreal Engine in C++. As the sole programmer, I was responsible for implementing all of the gameplay mechanics and controls.
The game featured an ocean simulation based on Gertsner Waves. This formula was then rendered out to a target. This target was then used in a material to displace the ocean. The ocean material also used the depth buffer to make the ocean appear translucent.
I also implemented a physics driven buoyancy model driven by the displacement target. One of the main challenges we faced in this game was tuning this physics model. To aide this, I developed an in game tool that allowed me to use shortcut keys to tweak key values in real time, such as the buoyancy of the boat.
To encourage the community to use the modding tools we made for Strike Suit Zero, we did a 1 week jam in the studio to develop mods for SSZ.
We developed a tough as nails racing game based on a physics model we developed.
This jam was uniquely difficult as we were the first people to really use the mod tool and it continued to be developed through out the week as bugs were found and fixed.
I was responsible for the physics model that controlled the ship. As it was a mod, we were required to make the modifications in Lua (as opposed to C++) and if we ever needed new functionality from the engine, we had to implement it in as general a way as possible so it would be of use to other modders.
My third year project for my degree is to create a tool to develop AI's for games. I was inspired by the structure of the AI code in Strike Suit Zero but wanted to create a tool that would allow designers to create and modify behaviours.
The tool itself is developed in C# using WinForms and SlimDX to render the behaviours. The behaviours themselves take the form of a network of nodes. The nodes are either code modules, simple behaviours imported via DLL that handle low level elements, and other behaviours created by the tool. In this way, complex behaviours can be composed out of simple ones. It also allows for complex elements, such as the physics behind the movement, to be developed by coders and provided as sealed behaviours for designers to use.
I have written the back end that simulates these behaviours, the tool to create them and I am currently developing a game in Unity3D to demonstrate the kind of behaviours that can be made.
I plan to allow the editor to be connected to a game and see, in real time, what the behaviours are doing. This will help to debug AI behaviours. I regard this as a key feature as one of the main issues I had when modifying the AI was, due to the real time nature of games, it was very difficult to identify what was causing bugs in the AI code.
I was Project Manager for a team of 5 that entered a competition (the Atos IT Challenge) to develop a mobile app. We created an Android application to organise trips to the pub.
The key features of the app were:
- A 2 stage organisation structure where you find out if people are "up for it" before commiting to going.
- An algorithm that looks at your Facebook activity, geographic location and past pub trips to rank your friends based on likelyhood of inviting them.
We developed both the app and the server to manage the events in Java. I was mainly involved in the asynchronous data transmission on the app and the background service which kept the app up to date with the latest events.
We came 4th overall internationally from an original 84 teams. Please note, the server is not running, so if you try to run the app, it won't function as intended.
Pub?
2012
A Global Game Jam game made from the the theme "Ritual".
My team and I made "Get Off My Spawn" in Unity. In our game a peaceful wizard attempts to summon a denizen of the Underworld, while being harassed by meddling kids. The player must light all the candles in a specific order whilst dodging footballs, aggressive dogs and newspapers.
The game was made in Unity in 48 hours. I was responsible for the obstacles and the summoning procedure.
A quick game I made one evening in Twine after a failing to make a white sauce.
The player must choose appropriate actions to get the perfect White Sauce.
A Global Game Jam game made from the the theme "We don't see things as they are, we see them as we are".
In And Then You Die, you are presented with a series of bizzare life events. For each one, you must choose which emotion you will use to respond to the event. At the end, your life story will be recounted and then you die.
We made the game in 48 hours using Unity.
A Global Game Jam game inspired by a group member's experience of refugee camps. In the game you manage the aftermath of some unspecified disaster. Most of the game involves trying to rapidly organise people in to managable groups.
We had an audio designer who created a set of tracks that could be dynamically combined to create a growing sense of tension. We had to find a way, within the time limits, of implementing this. The solution was to just start them at the point where they woudl be in sync.
Most of the game hinged on the simulation aspect which meant me and the other coder had to work very closely to ensure we didn't tread on each other's toes.
We made the game in XNA in 48 hours.
A Global Game Jam game made in UDK where you race around a track and the path you took in the previous lap is shape of the track for the next.
Your score is determined by the amount of distance covered per lap (which must be completed in a restricted time). Therefore, you had to try and shape your track to minimize tight corners as they would slow you down.
This was my first time using the Unreal Development Kit, so I had to learn quickly to be of use to the team.
A Global Game Jam game where you have to provide light to sustain a planet, but the more light you gave the planet, the more it needs. Eventually, your planet reaches a point where it becomes unsustainable with the amount of light in the universe.
The game was made in Unity (my first time using it and, to add to the challenge, we didn't even start using Unity until the second day!).
My first Global Game Jam (in fact, the first Global Game Jam!). We created a co-op Flash game where you had to control two ends of a fishing net and capture the fish inside it.
I wrote the algorithms for moving the fish around in a believable way, using flocking techniques.
We created a couple of games in another game jam.
The first was a variant on the classic snake where the food was a magic mushroom and the more you ate, the more trippy the experience became.
The second was a game where you had to defend your castle from an advancing army of cows who stand on top of each other to climb over the wall.
Jump is a game I made in Flash a long time ago to quickly try out an idea. You must jump from platform to platform.
« Prev
Next »
I am a freelance team lead and a software engineer. I have 7 years of industry experience, including 3 years of team leadership. I have shipped Strike Suit Zero whilst working for Born Ready Games. I have a 1st class honours degree in Discrete Mathematics from the University of Warwick.