Candle Light

About the project

Candle light is a short first person horror demo developed by myself and classmates as our senior capstone project. Completed during the 2020/2021 semesters the project was produced entirely remotely(due to the pandemic) using a variety of project management tools. The goal for this game was to develop our skills in a more polished first person style game. With this in mind the scope of the game was kept very limited.

My Role

As one of only two engineers on the team I focused much of my time on interaction design and implementation. With the game being as short as it is we got to really focus on play testing and iterating on things like balance and effective use of environmental effects. I spent quite a bit of time tuning audio queues, jump scares, and puzzle design to make the systems as legible as possible.

Features I Worked on

Ghosts(4)

The Goal:

Going into this project we knew we didn’t want to have any kind of literal monster chasing the player. Taking a less is more approach I wanted to use subtle effects to build tension over time in the player. A key touchstone for the “Ghosts“ was “Did I really see something or were my eyes playing tricks on me“.

The Method:

Using Box triggers to determine the location of the player and “OnBecameVisible()“ to know when the ghosts would be visible by the player I was able to create a kind of “I see something out of the corner of my vision but when I turn to look at it I don’t see anything“ effect. A Serialized Field was used to control the amount of time the ghost would exist in the players view before vanishing. Throughout play testing this number was changed many times to get it right.


Candle

Burn down over time:

As soon as the player leaves the entry area of the map the candle starts burning down. The actual movement of the candle is just a scale adjustment based on how many seconds are left on the timer for the candle. The timer also acts as a trigger for the “30 seconds remaining“ audio cue and when reaching zero triggers the death animation and respawns the player. When the player returns to the lobby it simply reverses the flow of the counter which in turn causes the timer to go back up and the candle to grow back to full size again.

Drip and flicker:

We wanted a way for the player to be able to visually tell that the candle was burning down so I made an animated wax dripping system. Using a small teardrop shaped object that loops in an oval shape from inside of the candle to the outside and slows down on a curve at it reaches the base of the candle. The flame effects (Size and Angle) are also tied to whether you are pressing WASD and if so creates a sense of motion as the flame leans to one side.


Paper Keys and Locks

The visual:

The keys the player needs to complete the level are a series of papers scattered around. The papers are meant to be burned at the large door in the main room, there are three locks on the door and each lock has a candle placed on it where you burn the papers. After burning each paper the matching lock drops to the floor in pieces.

The mechanism:

Upon “Interacting“ withe the “Trigger“(lock) the appropriate “BurnableObject“(paper) is invoked which starts the animation for the paper to burn, removes the paper from the players hand and invokes the “LockDrop“ function which causes either lock 1,2 or 3 to begin falling apart. The locks are a two piece model and when the “Drop“ function is invoked then the bottom half of the lock has gravity applied to it followed shortly after by the top portion of the lock model. I put a slight delay between the two parts of the lock dropping so that they don’t stay aligned as they fall and instead look more natural.


Menus and UI

All UI including start and pause menu’s and all contained features were done by me. The actual assets themselves were made by the art dept of course. The only UI I did not implement was the little icons that hover over interactable objects.


intro cutscene

After hitting “Start“ on the main menu a short animation plays where the camera sweeps over the main room highlighting important puzzle features while a voiceover plays to introduce the story. This opening cutscene was my responsibility. The players camera sweeps around the room on a animation path I set up. Along this path certain audio cues are timed to occur. At the end of the animation the camera lines up with the player controller then is “Mounted“ and control is handed over to the player. Prior to this project I already had experience with animation in MAYA and Unity so the “Keyframe“ and “timeline“ type features were easy to use.


and more!

Unfortunately it’s been a while since work on the project has wrapped up and I lost access to the GitHub Repo but I still have the initial planning and vision documents I helped write as well as a link for you to download and play the game yourself. If you do play Candlelight PLEASE shoot me an email and let me know what you think of it!

Download:
https://djblooky.itch.io/candle-light

Vision Docs:
Google Drive Folder

Tools

Communication: Microsoft Teams
Engine: Unity 2019.4.20f1
Audio: Wwise
Version Control and Kanban Board: GitHub
Hosting: Itch.io
3D Assets: Maya