Joe Mason

Games Programming Graduate - University of Gloucestershire


Wave Function Collapse

An independently created implementation of the Wave Function Collapse algorithm to generate a 3d city-like level. Made in Untiy, I implemented a grid-based tiled model with the algorithm consisting of cell selection through entropy evaluation, cell collapse through weighting, and propagation via arc consistency.
Project

Ocean Storm Shaders

An ocean storm shaders diorama made in Unity with the Universal Render Pipeline. I implemented the trochoidal/gerstner algorithm for the waves, with multiple other features in shader graph to produce a realistic water visual. There are also accompanying effects created with HLSL and the VFX graph to create the ocean storm diorama.
Project

Online Multiplayer Tag

An online multiplayer tag game where players use a range of abilities to remain untagged and gain points. A team Unity project, my role was primarily focused on the multiplayer functionality and its influence on gameplay, for which I used Photon's Fusion SDK.
Project

AI Agents - Predator & Prey

An AI simulation of predator & prey evolution in a closed ecosystem. The rabbits and foxes follow a behaviour tree while wolves show more realistic characteristics through goal oriented action planning. Surviving animals at the end of each day and night cycle have decendents which are influenced by a genetics algorithm, adapting traits and increaseing that species overall survivability.
Project

VR FireFighter

A Virtual Reality game where the player takes on the role of a firefighter, working through a burning building by extinguishing fires with antitheatrical techniques. With optimization being a key factor for VR projects, features such as fire spreading and the charcoal effect on burnt items were simple but effective.
Project

Dungeon Generator

A dungeon generator tool utilising recursive backtracking. During generation, the program goes through each cell, placing a room until it has reached a dead end. Then, it will backtrack through the stack untill a valid move is available. Each floor has a start and end room, which leads into the layer above or below where the algorithm continues.
Project

Terrain Generator

A voxel terrain generator created in Unreal Engine 4 with C++. Combines multiple instances of noise maps to allow for the creation of a wide variety of landscape patterns according to user input. The generator dynamically constructs and renders the terrain mesh in chunks, for which I have implemented mesh simplification and edge smoothing techniques to allow for faster generation with seamless chunk borders.
Project

Fractal Trees

A tree generator utilizing fractal recursion, created in Unreal Engine 4 with C++. Dynamically generates a fractal based structure with user customizable parameters such as recursion depth, number of branches per iteration level, branch rotation randomness and branching probability. Branch height, radius, and subsequent iteration dimension factoring can also be modified to create a diverse range of results, tailored to the users requirements.
Project

Dungeon Level

A dungeon level whitebox created in Unreal Engine 4. Uses a mixture of C++ and blueprints to create a variety of puzzles, traps and other features. Incorporates game design techniques to improve pacing and subtly help guide the player through the dungeon. The level's content and flow is inspired by The Elder Scrolls 5: Skyrim, with the aesthetic and atmosphere being inspired by Resident Evil Village.
Project

AI Stealth [WIP]

A work in progress project, implementing AI enemies / guards for a stealth based level.

Temporary image sourced externally.

Project

^^^^^^

^^^^^^ is a homage to the retro game vvvvvv. Made in C++ with no game engine, a self-made framework and the SDL library. As such, I also produced manager classes for animation, audio and level/scene changing so that all necessary game features were present.
Project

Model Renderer

A model renderer made in C++ using OpenGL, GLM, Glad, GLFW and Dear IMGUI. The program reads through object, material and tga files to correctly draw the model, which the user can then adjust through its transform properties accessible within the GUI. The user can also customise the viewable scene with the grid lines, background and skybox.
Project