top of page
G4QhBu.png

Black Mass

Itch Project Page.

Github Repository.

Role: Technical Designer, Game & Sound Programmer.

Project Type: Team-Based Collaboration.

Engine: Unreal Engine 5.2.

Skills: Communication, Teamwork, AI, C++, UE5,
Tool Creation, Performance Optimisation

Team Size: 8.

Project Duration: 5 Months.

 

Black Mass

Black Mass was created as part of a multi-module collaboration at Abertay University, with 8 team members consisting of 5 designers, 2 artists, and 1 programmer. 

"In Black Mass, you'll explore a haunted environment looking for clues to escape and uncover the history of St Levine's, using a unique game mechanic: a camcorder that reveals a parallel realm. Be warned though, because you won't be alone."

Working on this project provided me invaluable experience of working alongside other disciplines in the industry. Our client, Rockstar Games gave us the initial brief of "Bad Timing", which we decided to turn into this horror experience. We worked alongside them, providing builds and progress updates and implementing feedback over the duration of the project.

​

I have spent a lot of time reflecting on this project and my role within it. I made the most of every day spent working on the project and ended up with a project I am satisfied with. My knowledge of the Unreal Engine has drastically improved as well as my teamwork skills. I also learned more about integrating my C++ code with unreal engine systems to allow for easier access for other team members.

Some Key Systems:

Interaction & Inspection System:

  • Created a system that made use of Unreal Engines Interfaces and line traces to create a system which allowed the player to interact with the environment, opening doors and drawers, picking up items and toggling light switches.

  • A line trace was started from the players forward vector and moved forward to the threshold value (1,000). If anything was hit by the line trace it would be cast to the base interaction class.​

  • If the cast was valid the interaction interface was called - allowing for that specific items interaction code to be run.

Codesnippet_Interaction.png
Codesnippet_SaveSystem.png

Save System:

  • Made use of the Unreal Engine save system to create structs to store player and world data.

  • Created a save slot to write and read game data, allowing players to pick up where they left off.

  • When the game loads, items are loaded back into the position they were saved in, with picked up items being placed into the player inventory.

Performance Optimisation:

  • Created a Lighting Cull to stop rendering of Lumen lighting and shadows wherever possible to increase framerates in-game.​

  • Checks each light in the level and dynamically enables and disables based on distance from the player - This provided a huge boost to frames during runtime, especially on lower end PCs.​

image.png
image.png

Options Menu:

  • Designed and Developed options menu for the game, with full, adjustable settings for graphics, audio and sensitivity settings. 

image.png

Enemy AI:​
 

Creation of Camera Mechanic:

bottom of page