Game Engine: Unity3D
Development dates: February 2020
Development timeframe: 1 week
Role: Tech Design
Playable WebGL build: Play Now
Sneaky Sneaky that is a simple game prototype I made to test out different design pattern implementations while making something interesting in the process. In the game, you play as capsule man and your job is to escape the building without being caught by the guards.
The game's playable mechanics are stealth (not being seen by guards), Dash, and invisibility which helps with stealth. The game is extremely simple to play and the control scheme is meant to enforce that simplicity. Internally I have implemented a couple of different programming patterns, simple implementation. Those design patterns would be state, command, and observer. The state drives both the player and the AI guards behavior. The command pattern is used to control player input and defer it to be processed by the state that the player is currently in. The Observer state is used by the timer system I created and is used by the cooldown timer system for the player abilities.
I tried to program the game in a way that exposed as much relevant information to any designers so that they could easily adjust the values of the player and guards without having to touch the code. This prototype was a push towards clean, safe, and reusable code that could be put into a released game.
There is not a defined role for the project as I worked on it solo. What I was practicing during this evolution was gameplay programming. I created the subsystems needed in order to implement player powers, Guard AI behaviors, and various level mechanics and interactions. I pushed to ensure that the code is clean and reusable so that extending the project, such as adding more powers to the player, does not require either myself or any other programmer to go back and edit the previous code written. I wanted to provide editable values that could change the way the game was played so that someone working on the project could change how the player and guards played without having to edit any code.