Phantomware
Developed in Unreal
"Phantomware" is a cutesy little sandbox chaos simulator. Play as a mischievious electric spirit and possess a variety of different electrical appliances. Each appliance has its own unique abilities you can use to scare the skittish robot butler. Combine multiple ability effects to activate modifiers and help fill your shock meter to unlock even more abilities. Time is of the essence, can you frighten the robot butler before its human owner returns home.
Key Contributions
-
Gameplay Programming
-
AI Programming
-
UI Programming
-
Animation
As the only programmer in a 3 person team, I was entirely responsible for the underlying functionality of all gameplay systems. These systems included deep state trees for complex AI behaviour, modular design for gameplay abilities, UI functionality, and even a few animations and cutscenes.
Enemy AI & Behaviour
-
The AI behaviour utilises a complex state tree to manage how the robot butler moves and reacts.
-
The robot passively patrols around the world in its default state.
-
The robot changes to an alerted state when it detects a sound or visual cue.
-
It returns to its passive patrol state once it has finished processing its reaction state.


Gameplay Programming
-
Every posseable appliance is highlighted with a dynamically coloured outline.
-
I created a modular object system so every type of appliance in the game can mimic common behaviours with room for unique abilities to be made.
-
The player builds shock when scaring the robot with abilities. New abilities unlock as the shock meter fills.
UI Programming
-
Ability cooldown UI updates in real time to show the remaining time before the ability can be used again.
-
While the robot can see the player, the detection bar fills over time. The eye icon and colour change depending on the percentage of detection.
-
The mobile phone acts as an interactable chat system that dyncially responds to the player based on their response.




Animation
-
I created a couple small animations to improve the player's and robot's movments.
-
The player seamlessly transitions between an idle and a flying animation to make the model feel more dynamic.
-
The robot's charging cable acts as a physical cable allowing it to swing around when while the robot is moving.