I'm Liam, a 21 year old living in Bristol. Below are some of my personal projects as well as those completed at University of Gloucestershire for Computer Games Programming (BSc Hons)
In 2013 I was trying to make games using VBA within PowerPoint as a way to avoid doing schoolwork. This led to me downloading Unity, a slightly more intuitive engine, where I would spend the next 6 years developing in C#. I can bring the most out of a set of tools, as well as being able to develop extra tools/software where needed. I hope to put my programming skillset to use within the games industry as I often find myself very proud of the end result.
Unity's recent Entity Component System (ECS) allows users to write multi-threaded code that provides great performance boosts for all modern hardware. I began experimenting with ECS by writing boids in both Entity-Component and Object-Oriented styles in order to compare performance differences, data on this can be found in the image below. After adding physics to the boids just for fun I realised the performance easily allowed me to generate a boid per vertex on multiple objects which led to a mesh deformation project where all vertices were physics based and held parameters detailing the type of material the vertex belonged to, allowing for both solid and jelly like structures.
As ECS is yet to be fully released Unity continue to make changes which often alter the API or entire structures of scripts. Due to this and the pandemic I decided it was time to check back in with ECS by creating a virus visualiser. Other than importing height and population density data for each tile, no other data was included. Instead the user could alter a virus' spread through transmission and global effects as exponential growth is visualised through tiles infecting each other.
Skills Developed
C# Job System (Multi-Threading), Multi-HashMap Optimisations
During my time at University I made friends with programmers and designers who I would team up with to complete modules and game jams, inside and outside of my course.
Hotline Sprint
Local co-op racing game of cops vs robbers with car customisation. This was my first group project and was selected to be presented at the Uni's tech exhibition COMX where it won the award for 'Best Group'
Sunken Vacation
Joined by a designer from Hotline Sprint, I entered the University game jam. Given the theme 'Cabin Fever' we created an adventure/puzzler. Multiple lifes were required to explore the sunken ship in order to disover how to escape, each time the player died however, they become slightly more insane. Won UoG Game Jam 2018
Other Titles
CyberCrypt - Adventure/Puzzler
DungeonWithoutCrawling - Dungeon Crawler for GMTK2018 (Genre without Mechanic)
Drillo - Online Brawler (PC), mobile devices connect to mine resources, providing upgrades for their teams brawler
One of my favourite projects during my time at university was to create an experimental game. Having jumped into VR development early with the Oculus DK2 and recently purchasing a new CV1 headset I felt more than ready to take on the challenge of building a VR title. As the module was called experimental games, I decided to go a step further and incorporate a wii balance board as an input method for the VR Snowboarding experience.
With a passion for AI it was important that I understood one of the most common AI workflows, behaviour trees. Initially I was focussed on the scalability of my system as the number of nodes required to build a tree rapidly increased. Secondly, I wanted my behaviour trees to be readable, leading to the creation of a visual node editor which ran in realtime, requiring serialization/saving of the behaviour trees. All nodes derive from an abstract base class allowing any new node type to work flawlessly within the editor window. Through C# Reflection I was able to retrieve all node objects from their assembly and display them in relevant sections of a sidebar where they can then be added to a tree. This meant my workflow was as easy as creating a node object and coding what that node does, no other implementation was required to have my new node accessable from the editor.
Skills Developed
Object Orientation, Unity UI, Serialization, Reflection/Assemblies
Powered by GoDaddy