Website header

Welcome to my online portfolio!

This website is currently undergoing dynamic new changes! Please bear with me while I work out how to internet.

I'm Malcolm and I am a student at Teesside University studying Computer Games Programming. Feel free to take a look around and see what I've been working on. I'm still writing the site at the moment and, with so much to do with so little time, it may take a little bit until it fully up and running.

Have fun and please feel free to peruse my blog.

Latest Blog Posts

Super Dimensional group project

Article posted on Wednesday, June, 25th, 2014 at 2:28 pm

Over 6 months and with a team of 8 artists, designers and one other programmer I helped develop this quick and crazy game called Super Dimensional Great Space Justice Treasure Hunting Pilots (“Super Dimensional” for short) using Unity and C#. My main responsibilities included the design and implementation of the entity management systems for the power-ups and obstacles as well as the random spawning system that guarantees an even distribution through the use of an Influence Map. I also implemented the obstacle behaviours (asteroid, black hole and alien) and tailored my designs to work well with Unity’s component-based system.
Continue Reading…

Using Influence Maps in Unity for random entity spawning

Article posted on Wednesday, June, 25th, 2014 at 2:01 pm

I have previously written about this subject; the project I present here is the fruit of that labor. In order to avoid relying on unconvincing computer-randomness I created a system based on Influence Maps that can be used to ensure that obstacles are spawned randomly but in a human-like, distributed, manner. This is an example of a problem I had identified for the project at hand with no one to teach me what to do. It took me around a week to go from identifying the problem to researching and implementing a solution.
Continue Reading…

OpenGL Deferred Renderer with Reflections

Article posted on Wednesday, June, 25th, 2014 at 1:50 pm

This was my final assignment for my real-time graphics module at university. In this application I have implemented reflections with cubemaps and FXAA in OpenGL 3.3+ and have optimized the rendering through the use of stencil guarding and have implemented Carmack’s Reverse to avoid issues with culling while inside the light geometry. I also use OpenGL queries to profile the performance of the GPU (this it recorded in various text files that will be created/overwritten in the same directory as the executable).
Continue Reading…

I am a final year student at Teesside University studying Computer Games Programming (Skillset accredited) coming from a background in office administration and telephony work. I am hardworking and dedicated above all else and have many skills, including being a great team player, in my repertoire that enables me to be a great asset to any team.

I spent 14 months working for Schlumberger as a software engineer intern. During my time there I learned how to collaborate with other software engineers to produce a plug-in for the Petrel software platform called Integrate Pore Pressure System. I also learnt about seismic acquisition and basic geophysics in order to adapt to my role there.

Competent Languages

  • C++
  • C#
  • Java
  • Objective-C
  • HLSL
  • GLSL
  • HTML4, CSS 2.1

Competent Frameworks

  • Ogre 3D
  • Simple DirectMedia Layer (SDL)
  • Windows Presentation Foundation (WPF)
  • Ocean for Petrel

Good knowledge of

  • OpenGL 3+
  • Direct3D10
  • iOS Software Development Kit (SDK)
  • Android SDK
  • jQuery
  • Unreal Development Kit

Basic knowledge of

  • Microsoft XNA
  • Erlang
  • JavaScript

Software Packages/Programs

  • Visual Studio 2010/12
  • Team Foundation Server 2010/12
  • Tortoise SVN
  • VisualSVN Server
  • Code::Blocks
  • Microsoft Office
  • GIMP 2

Other skills

  • UML 2.0
  • Familiarity in working in Windows, Linux (Fedora), and MacOSX
  • Basic Geophysics
  • WordPress

For a full CV please contact me via the contact section on this website

Using Influence Maps in Unity for random entity spawning

Article posted on Wednesday, June, 25th, 2014 at 2:01 pm

I have previously written about this subject; the project I present here is the fruit of that labor. In order to avoid relying on unconvincing computer-randomness I created a system based on Influence Maps that can be used to ensure that obstacles are spawned randomly but in a human-like, distributed, manner. This is an example of a problem I had identified for the project at hand with no one to teach me what to do. It took me around a week to go from identifying the problem to researching and implementing a solution.
Continue Reading…

OpenGL Deferred Renderer with Reflections

Article posted on Wednesday, June, 25th, 2014 at 1:50 pm

This was my final assignment for my real-time graphics module at university. In this application I have implemented reflections with cubemaps and FXAA in OpenGL 3.3+ and have optimized the rendering through the use of stencil guarding and have implemented Carmack’s Reverse to avoid issues with culling while inside the light geometry. I also use OpenGL queries to profile the performance of the GPU (this it recorded in various text files that will be created/overwritten in the same directory as the executable).
Continue Reading…

Bullet Hell Game Redux

Article posted on Wednesday, June, 25th, 2014 at 1:37 pm

This is a full 2D game engine implemented using SDL complete with a game demo. Originally the engine and demo was implemented in my second year of university but I reused the project in my final year when I had to implement and profile a game for the linux-based GP2X Caanoo handheld console (which is why all the images are in 16-bit [r5 g6 b5] format). However the GP2X uses a very old compiler (pre C++11) and so I’ve rebuilt it using a modern compiler and taken out the linux-only code.
Continue Reading…

Below are some very old projects that I don't feel the need to put up on my blog but will keep it here for the super curious.

Bullet Hell Game title

This is a bullet hell based top-down shooter game that I made to show off my game engine for my Games Engine Construction module at university. We were given a library that provided a simple interface to some imaginary game hardware and emulated a limited hardware platform.

(Video can be a bit loud)

Graphics-wise we were only given a pointer to the first pixel of the screen so I had to implement clipping and blitting methods for the engine. Overall Im pretty happy with the outcome of this assignment but would like to add features to make it a full game (e.g. menu, high scores, multiple player weapons, power-ups etc.). Hopefully, if I can find the time, Ill switch the engine over to use SDL and implement all the features left on the to-do list.

(Game demo will be available for download shortly)

Wasp Fury Game title

My task was to animate the missiles moving to their target after launch, give a suitable 'delay' effect to an otherwise fixed camera and animate the camera transition when the user switched to control another Wasp in the world. This was achieved using Bezier curves to create Frenet matrices for both the missiles and camera transition while the camera delay was done by storing the positions of the Wasp in a STL Vector.

(Video capture software gives my computer a hard time, everything in the program runs smoothly)

On reflection, my method for the camera delay could be greatly improved by storing the transformation matrix of the Wasp every [TODO: insert suitable number here] frames and animate the camera to the position using linear interpolation.

Centipede title

Programmed in C++ and based upon the retro game by Atari, the player must fend off a centipede and giant flying robots for points and thrills.


Features include:

  • Single player game with various states of the game (i.e. pause, menu, game states etc)
  • Successful inheritance between an abstract object class and various classes in the game including player, centipede, mushroom etc
  • Implementation of linked lists, both from the Standard Template Library and that of my own creation
  • Centipede splits off into segments when hit anywhere other than the tail or the head
  • Sound using the fmod library
  • Reading and writing from a binary file to record high scores
  • Use of timers to control movement and bullet fire rate
  • Self documenting and clear code writing has been enforced
  • Encapsulation has been enforced by having the classes responsible for their own functions

Overall a really great experience for my first game in C++. There's always more to do, like add varying levels of difficulty and so on and so forth, and if I get the time then I do hope to implement that.

Download link (Windows): Download Game (File size: 2.75MB)

UDK title

Here some images and a video of a quick play through on my game created with the Unreal Development Kit. The general theme of the level is an operative infiltrating the enemy compound to gain access to mysterious ruins. This level was designed and constructed within five days.

Features include:

  • Mission objectives supplemented by a custom UI
  • Mission objectives and gameplay are also implemented using Kismet to script events
  • Use of different sounds, soundcues and ambient zones
  • Swimmable water using volumes (inc post process volume) and a fluid surface actor
  • Third person view
  • Triggered and static particle systems

I found working with the UDK highly enjoyable and, if I get the time, I would like to continue working on it include enemies, improve on the scenery/environment, and fix that cinematic sequence at the end. I'm particulary eager to employ my C++ skills to add a new weapon as well.

Update: This page is looking rather redundant so I'll be removing this soon.


Well my first project after my first year of University was to work on this website. I've opted for a minimalistic design with a focus on ease of use. I do intend to continue improving this website throughout it's lifespan and will be looking to eventually implement CSS3 and HTML5 in all their glory

Now that I've got some time again to persue my own agenda, there's a great many things I'd like to learn in preparation for when I go back; Java, C#, and learning everything I can about differentiation is at the top of my list. But I'd also really like to start using libraries such as Simple Directmedia Layer (SDL) in C++ to develop some work there and I've been meaning to learn Python for a very, very long time now. I've also just bought Design Patterns: Elements of Reusable Object-Orientated Software (Gamma, Helm, Johnson & Vlissides [1994]) to further develop my coding skills while I'm back home. In addition my new found interest in web design has lead me to some opportunities to develop website for some friends.

Whatever I end up doing, as soon as some worthy, tangible work has been made I'll be showcasing it here to show off my nerd powers.

Name: (required)

Email: (required)

Website:



Please verify your humanity with this simple test: