NOIRE
Aug 2019-Apr 2020
​Noire is a 3rd person puzzle platformer where players control Noire, a young detective attempting to rescue her brother from the Mafia. She meets a strange shadow being, who turns out to be her brother, Guy. With his aid, Noire attains strange powers which allow her to blend in and manipulate shadows. Venture forth as Noire to solve the mystery of why her brother's soul became a shadow.
​
Noire was done as part of GAM300/352 project over a period of 6 months. This project was done in a team of 9 and I was the technical lead.
DEVELOPMENT
​Noire was made using a custom component based game engine written in C++ and used OpenGL as its graphics API. The interface of the engine was done with Dear ImGui along with a property/reflection system that was made using LIONant.
I worked primarily on the engine's editor and audio system while also managing the tech team. I also assisted with the engine's architecture and gameplay.


EDITOR
​
For the editor, in addition to the features seen in Maelstrom's editor, more features were added; window docking, a transformation gizmo to manipulate a game object's transformation and some quality of life changes.
The drag and drop functionality allows users to drag archetypes and levels files into the scene window to create game objects or to load different levels. Gameobjects can be dragged into the Resource Window to make new archetypes.
The hierarchy allows users to rearrange the order of game objects. This comes in useful with the parenting system and for grouping game objects together.
GAMEPLAY AND AUDIO
I was involved with programming the gameplay; optimizing the player's movement and controls and the player's interactions in its shadow form.
I created the Stealth System in the game where enemies would notice the Noire if she wasn't sneaking around. This involved increasing a value based on factors such as whether the character is running(sound triggered), line of sight and distance. The closer the enemy is to Noire, the sooner the enemies notice her.
An audio system was created using FMOD API. The audio system would play the audio file based on the object's component values.The system also allowed for 3D audio to be played where the volume would attenuate based on the distance from the audio listener.
