KnocK

First Person Puzzle Horror
(2017 Prototype)


Role(s): Lead Programmer / Designer / Artist
Platform: PC
Tools Used: Unity 3D (C#), Photoshop

KnocK is a first-person puzzle horror game featuring a low-poly pixellated art style. The core mechanic is the ‘knock’ mechanic which allows the play to knock combinations on doors found around their house to open doorways into other worlds. This mechanic is intended to create “Metroidvania” style progression while keeping the player within a few select locations. Environmental clues and collectable notes provide puzzles that teach the player correct knocking patterns. Solving a puzzle provides both a sense of accomplishment and horror when the puzzle door opens revealing a new secret hallway leading into a dark, rusty otherworld…

An inventory system developed within KnocK allows the player to pick up and use items, such as collecting a key to unlock a door or a bolt cutter to cut a chain wrapped around a door. This inventory includes the ability to combine items, allowing for a greater number of puzzles to be designed. Additionally, any notes the player picks up are stored under the Notes tab in the inventory and can be viewed at any time.

Responsibilities

  • Knock Mechanic – Knock combinations allow doors to open access to different rooms and worlds. Example: knocking twice one the front of a door, and once on the back side reveals a new hallway upon opening.
  • Retro Art Style – Low-poly art style combined with pixellization camera effects create an atmospheric environment with a retro art style containing modern gameplay design. I developed all 3D art using ProBuilder for Unity and created the textures in Photoshop.
  • Inventory System – A generic container inventory system allows players to pick up, combine, and use items found in the world to solve new puzzles; additionally the player can read collected notes found throughout the game.
  • Reusable Design Systems – Strong emphasis during the development of KnocK has been to develop reusable systems that can be quickly implemented to speed up the development process; examples include a Note component that can be collected, read, and stored in inventory while the note text can be customized per instance, Inventory objects that can be collected, combined, and used in specific areas, and door Knock Zones that allow custom knock combinations. These elements are made to allow drag and drop use while still being open enough for instance-level customization.