about me

This is a selection of work I have done over the last few years.

Clicking on the picture will give you more information about the demo and a link to the demo itself.

The Contingency

Group Project: Game prototype Source Included

May 2003

This game was written over a period of around 10 weeks by a team of five. The game's engine was designed and written from scratch, along with the necessary preprocessing tools needed to compile the data for it. The game features a huge environment and a large number of autonomous vehicles. The engine would have been able to cope with substantially more data, but due to the tight time constraints of this project, we were unable to generate this data (this was the main inspiration for my honours project).

DirectX Demo

A coursework for an introductory course in DirectX 8 Source Included

January 2003

This demo loads its data from a Quake 1 map file. At load time, it converts the Quake-style level representation (a collection of solid polyhedra formed by the intersection of halfspaces) into a triangle mesh. It then calculates light maps for the environment. I defined a number of custom object classes, examples which have been included in the level. The program demonstrates numerous DirectX techniques, including alpha blending, bump mapping and texture animation.


A 3D platformer for the PlayStation. Source Included

December 2002

This was a really enjoyable game I wrote using the PlayStation Net Yaroze system. The development of this involved a lot of work at low levels, because the supplied GS libraries weren't able to do what I needed. Hence, I reimplemented parts and added new parts, often needing to drop down to assembler (in order to use the GTE maths coprocessor). The end result was successful: in addition to processing the game, the engine could happily display numerous particle systems, which made the game look much more appealing.


A demo of my Gameboy Advance line-based 3D engine.

November 2002

This is a simple demo of my Gameboy Advance 3D engine. This demo runs on hardware as well as in emulators, at 60fps. Most of the code was written in C, but where it was necessary, sections were written in assembler. The engine features complete 3x4 matrix multiplications [the projection code is kept separate, to reduce the number of fixed point operations per matrix-multiply, and because it can be very tightly optimised if only implemented for a specific projection distance].

Bézier Demo

This was a project to demonstrate the use of Bézier curves and patches. It is written using OpenGL for the PC.

January 2004

This demo features a "patchbox": an object made by stitching six Bézier patches together as if they were the faces of a box. The box and the curve can be edited. The point selection is implemented with ray selection, which gives a nice feel to the interface. Moving points is implemented in such a way that is intuitive whatever the orientation of the camera [they are constrained to the plane they intially came from].

Terrain Demo

This was a project to demonstrate the generation and rendering of a section of terrain. It is written using OpenGL for the PC.

January 2003

The terrain in this demo is interactively procedurally generated- the user can choose from a number of different techniques to use. Once generated, the user can the "explore" the terrain. The trees in this demo are also procedurally generated, and a custom language was implemented to describe them.

"Ape-ocalypse Now"

A turn-based strategy game on the PlayStation.

May 2002

This demo was more-or-less a complete game. It featured such niceties as a loading screen, comprehensive pre- and in-game menu systems, AI, sound effects, music and multiplayer modes. I wrote several offline tools for this, including a graphics format convertor, a font "generator", a data packer and a map compiler. The tools were designed to fit into the Makefile-style toolchain I was using for development, so they were all called automatically when needed.

OpenGL Demo

This was a coursework for an introductory course in 3D graphics and OpenGL.

January 2002

This program demonstrates a wide number of OpenGL techniques, including simple toon shading, environment mapping (spherical), alpha blending and testing, and texture coordinate animation. Some of the humanoid-ish characters are hierarchically animated.


A side-scrolling shoot-em-up on the PlayStation.

December 2001

This was simple space shooter, reminiscent of many I played on the Amiga. Clearly it was somewhat lacking graphically, but the gameplay was all there and I had lots of fun making it.