Portfolio

Cerberus

Cerberus is a cross-platform build/CI system that I developed to accomplish two tasks. Firstly, I wanted a system that would allow me to automatically test if the code I’m writing compiles on all target platforms (including the platform I’m using to develop on) this allows me to have total confidence in the state of my repository. Secondly, I wanted to learn Python, which has had an increase in popularity lately and is generally considered a good language to know.

Rather than explain the system in detail here, I will simply link to the posts I wrote describing the development of the project (they have lots of nice pictures and videos).

I consider Cerberus ‘done’ in it’s current state, and have released the code under the usual MIT Licence, I do warn, however that this system was built purely for me to use, I make no guarantee that it will work on any other systems and would advise that installing it may be a security risk (as it allows arbitrary Python scripts to be ran on your computer and it is assumed that people using the system are not malicious). Having said that, I would love to here some feedback if you do decide to use it or just look over the code.

LibCT

LibCT is the name of the project I originally made for part one of the Videogame Middleware assignment, the task was to create a middleware that would be useful for games. I continued developing this project after University. It is currently on version 2

So what does LibCT do? Well it aims to solve a common task that faces game makers today, that of creating conversation trees that a player can traverse.

More »

Squad Based Emergent Behaviour

For our AI Assignments we had to pick a paper describing an AI technique to recreate, this made for a really fun module with everyone doing different things, all of which were cool.

The paper I chose can be found in AI Game Programming Wisdom; Squad Tactics: Team AI and Emergent Behaviours by William van der Sterren.

More »

Culling Demo

This was the third of three mini-projects that comprised the practical part of the Advanced 3D Programming module for the final year, (and purposefully the easiest one of the three, to help spread the load across the year).

It is built upon Frank Lunas DirectX 9 framework. The demo starts by generating a terrain and placing 5000 trees randomly around the scene (Hence the large loading time) it then uses a variety of techniques to attempt to cull the most trees possible, hoping to increase the frame-rate (Not always  successfully).

More »

XNABlackjack

This blackjack game, created using XNA was produced for the Network Programming module of the final year. It allows multiple players on the same network (sorry, no Internet play at the moment) to create or connect to a server. Once connected to a server players are able to chat to each other and challenge up to five other players to a game of (simplified) blackjack.

More »

Software Renderer

This software renderer started off as an assignment for uni, but I re-did it from scratch after finishing that year to show off as a portfolio piece (It’s just took a while for me to get around to uploading it to this version of the site). The code is really quite bad by my current standards (amazing the difference and year and a half makes) but it was a brilliant learning experience to be in total control of everything from loading the file to transforming the verts to finally drawing the polygons on the screen.

More »