Academic Projects

2018 – 2019 (3rd Year)



3D DirectX Scene

I have developed a 3D scene similar in concept to the ones which I’ve done within OpenGL that showcases various DirectX techniques and makes use of HLSL for its shading.

The scene itself is moddelled after the design brief which required me to make use of a castle surrounded by a body of water within a forested, grass filled area.

Technologies Used

  • C++
  • DirectX
  • HLSL

Image Processing using Thread Building Blocks

I have performed image processing making use of parallelism with Thread Building Blocks. The three images below are the result of the algorithms that I wrote. The image on the left produces a Gaussian blur on the image and the other 2 are a result of calculating differences between 2 input images with additional processing occurring based on a RGB threshold value.

Technologies Used

  • C++
  • Thread Building Blocks

Modelling and Simulation of Real-Time Soft-Bodies for Computer Games

As part of my disseration I was required to develop a simulation of a real-time soft-body physics library, with experimentation occurring within the Unity Game Engine and core library code written in C++ using OpenGL for rendering.

I made use of an entity-component-system design pattern for the C++ library and in doing so have made it very easy to generate new objects within the scene and apply various components to them.

Since soley undertaking the project within pure C++ would be a large undertaking that would require significant developement and testing of many areas that are not directly related to the dissertation title, I made sure I could produce fully working and realistic physics using the Unity Engine. Although this engine was used, I made sure I did not make use of any existing Unity components where possible so that I would have an easier time translating my result into C++.

Technologies Used

  • C++
  • OpenGL
  • GLSL
  • Unity
  • C#

Source code available here: https://github.com/WilliamAkins/Real-Time-Soft-Body-Library


3D OpenGL Scene with SSAA and MSAA

This 3D OpenGL scene contains one directional and multiple point lights. It renders the scene into an FBO before then rendering to the screen, the objects within the FBO and made up of VBOs and VAOs. It was designed in order to showcase the use of multi-sampling and super-sampling anti-aliasing with a custom shader written to achieve SSAA.

Technologies Used

  • OpenGL
  • GLSL
  • C++

Source code available here: https://github.com/WilliamAkins/3D-OpenGL-Scene-with-FSAA


AI Techniques for Pathfinding

In this project I used the A* informed search algorithm to find the optimal path between 2 points. As shown in the below screenshots, the algorithm will look through each square that it considers a possible path and marks that in purple. Once it has found the destination it will then determine the optimal path from its search space.

The scene itself that is being searched is procedurally generated based on a variety of small island templates, then using the DDA line generation algorithm, connects them together with paths. This scene is entirely generated in C++, within the Windows console.

Technologies Used

  • C++

Source code available here: https://github.com/WilliamAkins/AI-Techniques-for-Pathfinding


Doom 3 Bot AI Modifications

This project involved the modification of a fork of Dhewm3. I had to extend the bot AI functionality, which involved writing server side code in C++ and client side in Python.

The communication between the client and server made use of the observer design pattern. I extended this and added my own methods or subjects to the pattern. This therefore allowed the bots to perform additional tasks such as reloading their weapon, changing weapon and setting an initial weapon and ammo value for each bot.

Technologies Used

  • C++
  • Python
  • Dhewm3
  • Pybot

2017 – 2018 (2nd Year)


Chilly No Mates

Chilly No Mates is a game made in Unity that I developed as part of a team of 5 people. The game focuses around a character who has lost their clothes and is on the hunt to recover them. The city in which the player traverses has been designed as a sandbox, which a variety of different interactions and various NPCs offering quests.

All of the game has been developed using C# and I developed the NPC dialogue system by storing the data in an SQLite database which the C# communicates with.

Technologies Used

  • Unity
  • C#
  • SQL

Source code available here: https://github.com/WilliamAkins/Chilly-No-Mates-Unity


3D OpenGL Scene

This is a 3D scene that I created using OpenGL. I wanted this scene to be a 3D re-creation of the 2D one that I had previously created. As it’s purely OpenGL it’s written in C++ with GLSL for its shading code. This scene involves a having a missile move up into the sky, where its position and rotation is transformed and then it returns down where it explodes on impact with the ground. It’s makes good use of VAO/VBOs and incorporates a mix of different light sources with a variety of ambient, specular, emission and shininess properties.

Technologies Used

  • OpenGL
  • GLSL
  • C++

Source code available here: https://github.com/WilliamAkins/3D-OpenGL-Scene


2D OpenGL Scene

This is a 2D scene that I made which makes good use of important OpenGL features such as VAO/VBOs with GLSL for shading. In addition, it incorporates blending to achieve some of the visual effects as seen in the screenshots.

The scene itself is of a missile that goes up into the air and then comes back down where it blows up.

Technologies Used

  • OpenGL
  • GLSL
  • C++

Source code available here: https://github.com/WilliamAkins/2D-OpenGL-Scene


Poptart Dispenser (State Machine)

I created a state machine that was developed with particular focus on design patterns and object-oriented coding.

It strictly follows the finite-state machine principles while also using the factory method design pattern. It could potentially be used as the back-end for a vending machine of poptarts, allowing interaction through various methods.

Technologies Used

  • C++

Source code available here: https://github.com/WilliamAkins/Poptart-Dispenser-State-Machine

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top