kitsonlow.
All work/disobeyPROJECT_12
Browse projects
C++ STEALTH PLATFORMERDigiPen · Five-person team game

Disobey.

A rebel counters propaganda in a cyberpunk city, sneaking past guards and completing quick-time events to spray-paint messages. My gameplay work focused on guard behaviour and detection, alongside animation, audio, UI and level integration.

Gameplay & engine programmer · Team of five
C++STEALTHGUARD AIGAMEPLAY
PROJECT_12 / DISOBEY2023–Apr 2024

SEP3–4 · Liberation Engine 2D

C++ STEALTH PLATFORMER

Disobey

Read the project
Original Disobey title artwork with a rebel and spray cans against a graffiti-covered brick wall
Role
Team
Stack
01 /

Rebellion through graffiti

Disobey is a stealth platformer set in a cyberpunk era. The player is a rebel trying to stop propaganda by spray-painting messages through quick-time events. Platforming and avoiding detection connect these graffiti encounters, with guards and security cameras creating threats along the route.

02 /

My role in the five-person team

I worked across gameplay programming and the custom engine that powered the game. My gameplay contributions include guard AI and detection, animation and feedback integration, audio and UI work, and changes to levels, cameras and scene transitions. The project was built by five people: player controls, graffiti mechanics and hiding also include teammates’ implementations.

03 /

Guard behaviour as a state machine

I implemented guard AI using a finite-state machine. Guards have idle, patrol, curious, investigate, apprehension, capture and stunned states, with additional transition states connecting behaviour and animation. This separates what a guard is doing from the conditions that cause it to change behaviour, while supporting different movement and feedback for each state.

04 /

Detection and player feedback

The detection system connects guard perception to behaviour and visual feedback. My contribution history includes detection changes, guard animation work, visual indicators and fixes to guard behaviour around hiding locations. These systems bring enemy decisions, visible reactions and the player’s stealth interactions together.

05 /

Animation, audio and scene flow

My work also covered player and guard animation integration, camera-caught sequences, guard and player sound effects, background music, UI audio, and graffiti and hiding audio integration. Scene-transition and cutscene work connected gameplay to menus, level-clear screens and the ending sequence.

06 /

Building the playable levels

Alongside the source work, my game-repository history records changes to both levels, guard placement and configuration, cameras, lighting, spray-can setup and audio. I integrated engine versions and prepared final deployments, connecting the shared systems and assets into the playable game.

07 /

Powered by Liberation Engine 2D

Disobey was developed in the team’s custom C++ engine. My engine contributions included the ECS, serialization, editor tooling, asset workflows and subsystem integration. The companion Liberation Engine 2D project page covers those foundations and the team’s adoption of explicit dependency injection.

Messages of rebellion

Original graffiti artwork used by the game’s spray-painting mechanic.

Original colourful Break the Rules graffiti artwork
Original graffiti asset · Artwork by the project team.
Original No Thanks graffiti artwork
Original graffiti asset · Artwork by the project team.
KEEP EXPLORING

The next project.

13 / C++ & ENGINE TOOLING

Reflection, without the ceremony

Exploring a minimal approach to static reflection for a custom game engine.