About Me:
I have a Master’s in Computer Games Technology from Abertay University, and already hold a 2:1 honours degree within the subject.
I recently worked as a Software Engineer at Pilotware Ltd. and X Spaces Technologies Ltd. a software company based in London working in high frequency trading.
I am an enthusiastic, detail oriented individual who loves to code!
Created in C++ using DirectX 11
This is a program I created in C++ using DirectX 11, I implemented many different features into the scene, such as: loading terrains or objects and texturing them, having each of the models move independently from each other in the world. I also created a sky sphere where the colour blends from blue on the horizon to black the higher the camera looks.
I used quad trees on the terrain so that I could reduce the amount of terrain needed to be rendered depending on the cameras view point. I also implemented a texturing and normal mapping classes where lighting effects can be tested in the program by moving the worlds light position.
I also included some basic collision detection so that the camera can collide with objects and also so that it would not leave the terrain. Sound was also implemented into the scene, so that if one of the objects collides with the cameras position the object will play a sound and move to a different location.
To help track all the information, such as what keys do what and to monitor the text output for the cameras position in the world, as well as the lights position a basic HUD was created that is fixed to the cameras viewpoint so that even as the scene moves the HUD will remain fixed.
A copy of the projects source files can be found here.
Created in C++ using the cell processor of the PlayStation 3
The Image Recognition program was written in C++ and uses the cell processor of a Play Station 3 to quickly process an image file, the PS3 program would scan an image looking for areas of interest, if found the area is marked by the program. A separate openGL program was also created so that the image could be displayed with the detected area of interest marked out.
I worked on this program with one other person, while my partner worked on creating the openGL program, I worked on creating the basic PS3 program. When creating the PS3 program I had to consider how the image would be broken up into chunks so that the PS3 can perform the Sobel and integral image calculations on its processor, in-order to quickly checking if an area is of interest. If it is, that area is then marked out and the next area is checked.
During the next stage of the project my partner worked on modifying the code, so that the variables used vectors instead of arrays. While my partner worked this, I modified the 'PowerPc Processing Unit' (PPU) program so that it could use multiple threads to send the chunks of the image through to any available 'Synergistic Processing Unit' (SPU). The SPU's could use any of the SPU programs to process the data (e.g. the Sobel function would have its own SPU program, while the Integral Image function would use a different SPU program.) When doing this I had to be very careful when calculating the number of image chunks required, As the SPU can only handle so many bytes of data per processing cycle.
A copy of the program files can be found here.
Created in flash using Action Script 3
Project: Mathteroids is a flash based serious game programed through Action Script 3. The game focuses on improving the users ability in solving simple math based problems. I worked on this project with two other members, my role in this project was overseeing and leading the project team. As team leader, I had the extra responsibility of overseeing the whole project, where I would be required to help across any and all areas, to ensure that the work gets done. I also had to communicate with the team members so that they knew what tasks they had to complete, and when they had to have the task completed.
I personally designed the entire game; from the theme, mechanics and rules to the object design and psudo-code etc. When designing this game my primarily focus was ensuring that the pedagogical content would be delivered to the user effectively, and how the user would interact with the games content.
Apart from designing the game, I also worked on programming the game (I mainly worked on the methods and functions relating to the ship.) with one of the team members, while the last member worked on the games images and animations. Neither myself or the other programmer had used Action Script before, however we thought it would be a fun challenge!
A copy of the games files can be found here..
Created in UDK using UnrealScript and flash.
Jinx is a puzzle adventure game that was created using the Unreal game engine. I worked on this project with five other people, my role in the group was to head the entire project and to lead the team. As project leader, I over saw the whole project from start to finish!
My primary role in this position was to: plan out what tasks where required to create the game, when the task had to be completed, who would perform the task and ensuring that the task was complete. I found this role to be challenging but enjoyable, where I would constantly be communicating with the team, getting feedback and acting on any problems or issues that occurred, while ensuring that the work was being completed as scheduled.
On this project apart from managing the team, I personally worked on the design of the game, covering: the plot, story, narration, game-play, characters, maps and buildings, puzzles, user interface and technical aspects. I also designed and created custom models for the game, using 3DS Max. And I built and populated a couple of the game areas, ensuring that the maps where linked together correctly. I also searched and obtained all resources that where needed to make the game. Such as the textures and the objects that where used in the game and ensuring that they where in a file format that was supported by the Unreal engine.
As I was the team leader, I had to be flexible as I was not able to focus on one set task or do the task that I most enjoyed, as I had to do a little bit of everything in the game, so that the tasks could be finished on time.
A copy of the games installation file can be found here.