A Glass Darkly
PC - Oculus VR (Rift + Touch)
Unreal Engine 4, Perforce
4x Game Designers
5x 3D Artists
2x 2D Artists
Level Designer - Project Leader
Level design; Puzzle design; Project plan; Weekly stakeholder update; Pitch delivery
You are trapped in a hotel floor with a terrifying monster lurking around. Don’t let it see you, but most importantly don’t look at it in the eye! You explore your surroundings with the help of a mirror, as you try to escape the hotel floor.
A Glass Darkly is a survival horror game with an immersive surveillance element built exclusively for VR.
- Designing level pacing and puzzles for a single-player horror game
- Building a narrative arc in a single-player level, writing the lines to establish a story and a goal
- Work collaboratively on Level Design and Programming to achieve a common goal
- Set Dressing a level in Unreal Engine with game performance in mind
- Designed areas (paper prototype, blockout, testing, polishing), including the library, office, staff room and more
- Set up the location of AI path nodes and behavior
- Designed inverted numbers puzzle
- Implemented keypad functionality
- Edited labels and connectivity of key objects
- Build an environment where the monster feels present, no matter if it’s visible or not
- Create opportunities to use the mirror often
- Expand the usage of the mirror in different contexts
- Implement other tactile mechanics like opening doors and holding keys
A Glass Darkly is a game based on a distinct surveillance element, taking place in a horror setting. The idea of exploring environments through a reflective surface avoiding the monster’s gaze, was inspired by the ancient Greek myth of Medusa. The tactile nature of holding a mirror in first person and relying on your vision to navigate your environment, felt like a great way to use the VR technology.
The gameplay is based on a combination of observation through the use of the mirror, progression through exploring rooms and solving puzzles, as well as escaping confrontation. when the monster is present in the room.
The level takes place into a deserted hotel wing, in order to enhance the feeling of fear and eeriness of the game. Hotel corridors are long and often feel claustrophobic, offering opportunities for suspenseful chases. The big number of doors and the many small items within a room can provide a good ground for puzzles. A hotel environment also offers many corners for the player to peek around while exploring. A paper prototype and the pacing curve were co-designed with Level Designer, Christian Berg.
Player begins the level inside a safe area, their hotel room. The player has time and an incentive to familiarize themselves with the controls and explore the room, as the exit door is locked.
A first narrative point is established with the player listening to a recorded message warning the player about the monster and how they should not look at it. The message urges the player to escape.
As the player walks through the hotel corridor, misplaced items and far-off sounds create a feeling of danger. The player is introduced to the monster by staying at a distant spot and watching it move through a floor mirror, further enhancing the connection between mirror and monster.
Exit signs throughout the corridor hint the player to the end goal, which is the elevator exit. The goal is visibly established early in the level, but the path is blocked by misplaced furniture and other items, further building on the feeling of a creepy hotel.
By entering the room, the player encounters a locked door with the keypad. The player can find a hand mirror around the corner. The player lifts the mirror and immediately sees the door code written inverted behind them. This puzzle improves the pacing as it forces the player to stop, think and explore their environment. It introduces the mirror as a useful tool and offers a way to use the mirror in a different context.
The player finds themselves in a deserted living room with time to explore it. As the player opens the next door to exit the room, the monster comes in, ambushing them, urging the player to think fast.
The monster doesn’t immediately chase the player, giving them time to seek refuge in the nearby bedroom. By strategically using the mirror, the player can check on the monster’s route and safely exit the room. This sequence raises the stakes for the rest of the game and further enhances the use of the mirror as a surveillance tool.
Once they’ve made it to the other side of the corridor, the player can choose to go to the elevator, only to find that it needs a key to work, establishing an additional goal for the player. The player can then explore the room nearby, leading to a lobby with a phone. The phone plays a message saying that the key to the elevator is in the library.
The player finds themselves in a distressed staff room, creating an eery atmosphere. The player noticed a locked safe with a keypad, which is a repetition of the previous puzzle in a new setting.
Light and music come from a blocked off room, attracting the player’s attention and contributing to the atmosphere. The player can find the safe code inside, by extending the mirror and catching the reflection of the written number. The player can then open the safe and find the key to the library.
The player enters the library and can hear the monster patrolling around the bookshelves. In case the monster notices the player, the player can escape through the nearby corridor. This action lures the monster away from its patrolling position in front of the library exit. The exit to the library is locked and the only way forward is for the player is to enter the manager’s office.
The monster encounter and the space of the room were designed in a way that test the skills the player has picked up so far.
Having escaped from the monster, the player has a safe space to catch their breath. The required elevator key can be found on the office inside the disorganized, atmospheric room. The player picks up the key and wearily exits the library.
The player exits the library with the key in hand, only to find themselves chased by the monster alongside the corridor. The previously long and safe corridor leading to the elevator is now re-purposed for a chase scene. If the player makes it to the elevator, they use the key to escape the hotel and finish the game.
LEVEL ART - MOdularity
The concept of the hotel allowed for many reuseable assets, as all rooms could be decorated with the same furniture. The art direction for assets and textures was “dark, grimy and worn out”. Because the game was in VR, there were strict requirements regarding its frame rate stability. All assets were created so that no rescaling was needed, ensuring optimized performance.
SET DRESSING - STAFF ROOM
SET DRESSING - LIBRARY
SET DRESSING - MANAGER'S OFFICE
The keypad puzzle requires players to find an inverted number with the help of their mirror and then enter the correct number on a keypad to open a door or find a key.
I scripted the functionality of the keypad, accepting numerical input from the player up to four digits at a time, then comparing the input with the correct code and unlocking the door, in case the code was correct.
Both the correct code variable and the related door-to-unlock variable, were public variables, so they could easily be set up from Unreal Engine's viewport.
Another important aspect of scripting the keypad, was the audiovisual feedback it gave to the players while pressing the numbers and getting the code right or wrong. Each digit on the keypad was its own blueprint, changing its material when pressed and sending input to the keypad blueprint about which digit was pressed.
After four digits are pressed, the keypad blueprint would compare the input with the right code and then play sounds and show a green or a red light, depending on whether the input was correct or not.
As the project leader, I made sure to set up an agile development workflow that fits the project’s scope and timing. This included:
- Setting up a 4-week project plan with certain milestones that the team could commit to
- Defining each week’s specific development goals (based on game's asset list and feature list), refined based on the team's progress
- Moderating short daily meetings where team members were sharing with each other what they have done, what they will be working on, as well as flagging for any bottlenecks
- Facilitating communication between artists and design, when necessary
I made sure to document and keep track of the team’s decisions and progress on files that are easily accessible online. I was also responsible for developing the game pitch, presented the team’s weekly progress to the school's teaches and stakeholders, arranged for the voice-over elements in the game and helped out with the creation of the game trailer (directing the storyboarding and selecting footage).