Hello and welcome to my portfolio! I'm Michael a final year Games Development student at Staffordshire University
My degree focused on a combination of programming and game design.
I have worked in multiple game engines and programming languages. In university I have worked in Unreal and Unity, I have programmed in both C# and C++ as well as scripting in Blueprint.
Game snippets
Following are some video examples of projects I have produced during my time at University starting with my most recent work.
Lego Scott Pilgrim Game
Unreal Engine - Final Year University Project
A vertical slice prototype replicating the style and elements of Lego games.
Souls Slasher Mobile Game
Unreal Engine - Final Year University Project
Mobile game developed for android devices.
Highway Code - Group Project
Unreal Engine - Final Year University Project
Working as a leading senior developer in a team of second and third year University students
Final Year Dissertation
Simulating Crowds of AI Agents in Unreal Engine using a Zone-based Hybrid Model
Unreal Engine - Blueprint
For my final year project I wrote a dissertation on creating an AI Crowd model in Unreal engine. The model utilizes a zonal hybrid technique to allow simulation of a large number of agents while maintaining a stable frame rate. The Paper features a review of previous literature on the subject, a proposed model, testing methodology, results of tests on the model and a critical evaluation. An Unreal Engine project was built alongside the paper it can be seen in the video below.
Double Jump Duel
Unreal Engine - Blueprint
This was my first project during my final year at University. It was developed in Unreal engine with the goal of creating a third person pvp shooter with networked multiplayer. It also features interactible elements in the map such as destructible walls and floors as well as a moving crane with an attached container that can be dropped to explode on other players. There is also multiple weapons and ammo drops on player death. Below is a trailer video I made for the project.
Wet Work
Unreal Engine - Blueprint and C++
I worked on this project during my second year at university. This was one of my first works in Unreal Engine, the majority of work was done using blueprint scripting with a small amount of C++ coding. The game was designed as a first person shooter against AI enemies with the twist of being entirely underwater.
Starfighter Spaceship Game
Unreal Engine - C++
This was again one of my first projects wokring in Unreal, it was developed simulataneously with Wet work. The key difference being this project was made predominantly in C++ with a limited use of Unreals blueprint scripting. The game features a spaceship that you pilot with two firing modes; manual and lock on, lock on uses the targets position and velocity as well as the lasers velocity to calculate the point at which the two would meet in the future. Taking out all the turrets on the large space ship results in a win.
Whimsically Wasted
Unity - C#
2nd year university project made in Unity (Group project see below for explanation on role)
For this project I took on mainly the role of UI so all of the content in the first scene is mine (using free models). I used a tweening library to write all my animations in code. I dealt with the code for loading scenes, pausing the game, I wrote the code that gives the boss's random names and the code that makes the health bar constantly drain.
On top of that UI work I did a lot of bug fixing where appropriate and helped teammates with their code. Biggest of all in the project I did the inventory system. It uses a List of a class I made called WeaponObject which contained a unique identifier for each weapon added to the game and each entry in the list had associated data like an image, a description and a name. I made the ability to instantiate and pick these weapons up throughout the level as well as making it so you couldn't have two of the same weapons. When picking up an item it will find the associated the script identified by its unique id number and set it to active and set its fire button to either left click or right click depending on which one you chose.