Portfolio | Programs

This is the programs page. This is where all my programming work is listed. Source code is available for most of these on request – contact me if you need it for employment or contracting purposes.

This is the programs page. This is where all my programming work is listed. Source code is available for most of these on request – contact me if you need it for employment or contracting purposes.

Bird Blast (AS3/Flex Project)


Bird Blast is a shooter flash game inspired by Duck Hunt on the NES. I did all of the programming and most of the game design, and it features art by Matt Dean. It is currently up for sponsorship on FlashGameLicense.

Mr Fat Snake (AS3/Flex Project)


Mr Fat Snake was a collaboration with Revive Games – I did all of the programming in this project as well as contributing design ideas and adding my own little touches. It was my second sponsored Flash game and is based on the idea of a flying snake looking for food in the form of strange monsters and cake. Designed to give you that ‘one more go’ feeling, the game had a fairly successful run.

FlashPlok!! (AS3/Flex Project)



FlashPlok!! was my first ActionScript 3 project. It’s a fun and addictive puzzle game that combines elements of Tetris, Puyo Puyo and Match-4 games to produce a fresh and interesting experience. The game was sponsored in August of 2010 though FlashGameLicense, and marked the beginning of an effort to fund a break in my professional development where I wanted to build up my portfolio before moving on to a games industry job.

Genetic Tower Defense (BSc Hons Dissertation)


Genetic Tower Defense is essentially two projects in one; for my BSc Hons Dissertation I wanted to do a project involving genetic programming. Eventually I settled on testing a basic genetic AI in a tower defense game, comparing its performance to that of human players. To do this I needed to first design and implement a tower defense game, however, so after playing a lot of Plants vs Zombies I got to work on my new game design. The sprites of this game are modifications of sprites from the game “Advance Wars”, made and used with permission by Pillbox Phil (pillboxphil[at]hotmail[dot]com) and Kevin900 (Kevin900[at]ymail[dot]com).

RoTo (AGT Project)

roto_logo

RoTo is a 2D platformer with 3D graphics. The core gameplay element is that the player can tilt the world around them to any angle to help them progress through the levels. This allows for some more complex additions to typical platformer level designs, as well as interesting takes on physical phenomena such as gravity. This game project was for the Advanced Games Technology module of my Computer Games Software Development course at the University of Bolton. The assignment was to produce an original game prototype in C++, with 3D graphics using the Ogre3D engine, and I was awarded a Distinction for it.

Terra Galactica (Shadowsoft Games Team Project)


tg_main

Terra Galactica was a project by my team, Shadowsoft Games. It’s a horizontal space shooter on the GBA, coded in C and ARM assembly using homebrew compilers (devkitPro and devkitARM). It was my first major game project, and my first experience working with a talented team. Splitting design duties, John Faulkner and myself designed and implemented the game from the ground up, with very little knowledge of how things are done, learning along the way. The pinnacle of achievement in this project was when we nearly got it published, but lack of time and uncertainty in the design issues regarding the publisher’s condition of porting to the DS lead to it falling through.

I coded most of the engine, including collision detection (a hand-optimised pixel-perfect algorithm in ARM assembly), object handling (but not object behaviour, except for bosses), main game architecture, hardware interactions (including memory management and interrupt handling) adn some gameplay coding (weapons system, beginnings of multiplayer communication via link cable).

Cel Shading Demo

This isn’t really a game, but rather an improved version of the cel shading code used in the Sweets project below. I used the same code and made a few improvements; the most dramatic changes being heavy optimisations to the cel shading algorithm and support for multiple coloured light sources per object (including colour mixing). Unfortunately I have lost the source for this project, so I cannot improve the program or provide the code for it.

Sweets (Games Entertainment Technology 2 Project)

sweets_game

This project was for the Games Entertainment Technology 2 module of my course at the University of Bolton. We were instructed to implement a specific game design in C++ with OpenGL. The idea is that you collect a certain set of items in a specific order, then get back to the beginning to end the game. We were also required to implement terrain generated from a bitmap file. I chose to make the collectable object sweets (with a Sweet model from The singularity – free for non-profit use), and I also went ahead and implemented some enemies that follow the player when they get too close, particle effects using billboarding, a cel-shading lighting algorithm and loading of meshes from “obj” format. I had a lot of fun with this one.

The Great Adventure (Data Structures For Games Project)

greatadventure

The Great Adventure is a text adventure game created for my Data Structures for Games module at the University of Bolton. It uses console output, and is written in C++. Some of the design concepts used include an event/messaging system, an external world script file to define the game world and command dictionary/lookup. It was intended to teach us use of the C++ Standard Template Library, and the uses of some of the containers within it, including std::map, std::vector, std::list, std::stack, std::queue and std::deque.

Ball Physics Simulation (Flash AS2)

ballflash

This is a flash simulation of a bouncing ball. It was one of my first-year assignments at the University of Bolton. It involves a ball which you can drag and throw around a room, with water. It’s a simple physics simulation and my first Adobe ActionScript programming experience.