Curriculum Vitae

You can download my CV in Doc Format or PDF Format.


Personal Projects

Listed below is a selection of personal projects that I have worked on in my spare time including some work based on University work. All the projects require Windows XP or greater to run, as well as a video card that supports OpenGL 1.2+.

I have also put together a small sample pack that contains four demos from the projects below.


DelGE

Overview

Downloads

Requirements

DelGE is a 2D game programming library which I wrote in C++. The goal of this project was to learn about game engine design while developing something that I could use for later projects. I designed the engine using a module & interface style as I also wanted to learn techniques for abstracting functionality, meaning the modules are the external parts that users interact with and interfaces are the implementations of module functionality. By designing the engine in this manner I was able to learn a lot about methods of Inheritance and Object Orientation within C++, and how these can be applied in a functional way.

The core engine features:

After developing the engine and having written some examples of usage, I decided that I wanted to add scriptable layer. This turned into the sub project I call DelGE Squirrel. I ended up writing a wrapper for my engine that would allow you to write fully functional programs without even having to touch C++. By doing this sub project I learnt a lot about how you would go about implementing a scriptable system and the advantages of doing this, such as the fact that you can now have a smaller portable coding system as all you need is the wrapper exe and your scripts.

I am still developing this engine, adding features as I do. To help me better manage the updates I decided to make a Google Code page for the project, this can be found here:
Google Code Page.

The image below shows what the audio example looks like running:

Image showing the audio example

DelGE Squirrel Editor

Overview

Downloads

Requirements

Once I had a wrapper for Squirrel I thought that it would be nice to develop a better way to develop programs for it. As it stood to begin with, the only way you could write programs that used DelGE Squirrel was to create the correct folder structure, copy the wrapper exes and dlls, then begin writing the scripts in a text editor. I didn't think this was a very nice approach so decided to develop a small application that would provide a better environment to develop in.

The solution I ended up building, was written is C# using WPF. I decided to go this route as I had not used C# before, nor WPF so it would be a good application to try and write using these technologies and learn more about them as I did.

The image below shows the editor with the Mesh example project open.

Image showing the delge editor interface.

DelGE Pong

Overview

Downloads

DelGE Pong is a game I wrote to test some new features of the engine. The game was written to give a reference point for writting a full game using just DelGE Squirrel, as such it shows many of more advance features such as 3D projection and mesh transformation.

I am currently using this game as a test project for when I add new features, however the game here is a fully functional clone of Pong which is for 2 players.

The images below show the game running.

DelGE Pong 0 DelGE Pong 1

HighGUI3

Overview

Downloads

Requirements

When I first decided that I wanted to learn about programming I had to choose a language that I would learn. During secondary school I heard about a language called Blitz3D and decided that it looked like the kind of thing that I would need to learn. The language looked promising as it offered a simple interface for developing 3D application, however at the time I was still very much learning the basics and so didn't write anything that complex in it. By the time I was at college the developers of Blitz3D were creating a new language, that I would move on to learn, called BlitzMax.

After developing my skills in this language, and learning the basics of programming whilst doing so, I thought of the idea of writing a GUI system for this language, because at the time there wasn't one. The first iteration was a basic implementation and developing it taught me a lot about code design of a fairly large project and I wanted to apply what I had learnt so I decided to rewrite the library with a better design. Unfortunately the second iteration became quite buggy and slow, so I finally decided to put as much effort as I could into developing what would be the last iteration of HighGUI.

I was very pleased with the final results of my efforts and I also pleased by the communities positive look on my project, as I had released the library as a free module for BlitzMax.

The image below shows an example application of HighGUI3.

Image a HighGUI3 example.