top of page
Ink Mark

Night Heist

OVERVIEW

This game began during #devtober, which challenges game developers to post progress during the month of October. It is a horror point & click about a thief who encounters a malevolent spirit in the museum basement.

CORE GAMEPLAY

As a point & click, the game would be played by using mouse clicks to move from scene to scene and to interact with different objects in the game. When hovering over an item that the player can interact with, the mouse changes into a symbol that indicates what interaction will take place. 

Early version of the point & click mechanics. The newspaper is planned to be changed to "Museum Acquires Priceless Qoya Painting"

spr_cursor2_0.png

Cursor

There is nothing under the mouse to interact with.

spr_pointer2_0.png

Pointer

An object under the cursor can be acted on.

spr_eye2_0.png

Look

An object under the cursor can be observed.

spr_grab2_0.png
spr_grab2_7.png

Grab

An object under the cursor can be picked up.

spr_arrow2_0.png

Arrow

The player can move up, down, left, or right, depending on rotation.

spr_outOfArrow2_0.png

Backward

The player can move backwards out of a scene.

spr_intoArrow2_0.png

Forward

The player can move forward into a scene.

ABOUT THE PROJECT

As the player takes the role of a thief burgling from a museum after hours, I aimed to design Night Heist with a horror atmosphere that emphasized slow, creeping fear over sudden scares. I planned on creating a sense of unease by having the exhibits subtly move onscreen or change positions after the player leaves and returns.

PLATFORM

  • Windows

SOFTWARE

  • GameMaker

  • Aseprite

MY ROLE

  • Conceptualized game story and mechanics

  • Drew pixel art scenes, objects, and symbols

  • Coded movement between scenes

  • Designed text display system

  • Implemented inventory to remember collected/used objects

ASSETS

Apartment.png

The thief's apartment.

HORROR MOMENTS

Knowing the basic point & click mechanics, I brainstormed a list of events to increase tension within the game. I prioritized which of these moments to focus on, given the time frame I had set for development.

ORIGINAL BRAINSTORM

Clocks and Time Running Out

A sense of stress and pressure could be increased by the player's motivations for stealing. The thief should be desperate to get the painting, to the point where they are willing to go through the ordeals that the haunting puts them through. If this is the case, then it makes sense that our museum would be motivated not by greed, but by a desire to help a loved one. In this case, the thief needs to scrounge together funds to pay for their father's hospital bills. Having a recurring motif of time in the piece, as in a ticking clock or a timed puzzle, could draw from the idea of the father running out of time in the hospital.

Hiding in the Bathroom 

To convince the player that they truly are on their own in the game, I thought of contrasting a full museum during open hours with an empty museum at night. With this in mind, I decided that to commit the heist, the player would have to purchase regular access into the museum, then hide in a bathroom until all the patrons have left. As they are hiding, sound effects could play into the feeling of loneliness, with ambient voices of the museum goers slowly fading away. Tension might be added here if a guard or janitor comes in to check the bathroom, forcing the player to crawl between stalls to avoid being caught. After that point, I imagined echoing, low thumps of lights being shut off, starting quietly farther away and ending with one last click as the bathroom where the player hides is thrown into darkness.

Mysterious Painting

Because the painting is the center point of the thief's anxiety, I wanted it to also be at the core of the haunting that takes place. With Halloween on its way, I took inspiration from dark topics like Goya's "Black Paintings" and anthropodermic bibliopegy. The story I came up with was that the museum had acquired works made by a famous painter, a series much like Goya's unnerving set of paintings. Of this series, the thief seeks the most expensive painting, a self-portrait of the artist that stands out as relatively simple and light compared to the other works. This portrait is being kept in the museum basement to be restored by museum workers, and by reading their notes, the player discovers that the painting is made with disturbing materials. After leaving the painting, discovering this information, and returning to it, the player will find the woman has disappeared from the self-portrait. At this point she will hunt the player through the museum. 

PAINT RESTORATION

In order to get the player to be a participant in scaring themselves, they would be required by the game to clean the painting, requiring an up close and personal interaction. I planned to have this be a slow reveal of the creepy transformation of the portrait. By making slight changes to the woman's face, the portrait entered the uncanny valley where a character looks just human enough to be disturbing.

TASK

In order to know which painting to steal, the player is tasked with restoring different works found in the museum basement. For reference, they are given a newspaper clip with a picture of the portrait that was taken after it was first created.

To make this scene, I needed to have the player to clean the painting in a way that that slowly revealed the portrait, while also feeling like the scene belonged with the rest of the point and click game.

IMPLEMENTATION

The first problem I tackled was how to cover the painting in a grime that could be cleaned away. I made a "dirt" sprite the size of a small circle and wrote a spawner to scatter it over the painting. The dirt was spawned with a for-loop, adding random rotation changes each iteration to give the grime a more natural feel. I also set up the dirt to destroy itself when the mouse passed over it while the left mouse button was clicked. This made up the basic system for the player to restore the painting.

Each spawned dirt object destroys itself when the mouse moves over it if the left mouse button is clicked.

To make sense within the game world, I wanted to add a tool that the player would use rather than the normal cursor. From researching videos, I saw that real restoration experts use q-tips dipped in solution that rubs away the top layer of dirt, while leaving the paint underneath unaltered. Using this tool could also provide a puzzle for the player in the form of finding cleaning solution in the dark museum lab.

 

I implemented a q-tip that the player can pick up, and adjusted the dirt to respond to the cotton tip rather than the mouse. I also made the removal of the dirt more believable by having the dirt fade away through reducing its alpha, or the opacity of its sprite, rather than immediately destroying the object. Having grime be removed in this way posed an interesting challenge. Because my goal was that the player find rubbing the q-tip back and forth to be the most effective, mirroring real-life restoration, the dirt's needed to be reduced by a small amount at a time. However, if I simply reduced it by a certain amount per frame,  just holding the q-tip over one point would be the fastest way to remove grime. The change in alpha, taking place once every frame, would either be too fast to be noticeable, or slow to the point of being a frustrating player experience.

The solution I came up with was to give the dirt a count variable that resets whenever the object is not in contact with the q-tip. Each time the two overlap, both alpha and count variables are decremented until count reaches zero. This was the best of both worlds of the two previous options: the dirt removes quickly when the q-tip first rubs over it, but will not continue fading after the countdown ends.  The player must move the q-tip away and back to restart the countdown, resulting in the desired "rubbing" movement.

DirtCode.PNG

When colliding with the q-tip, the dirt will continually reduce its own alpha (opacity) until a countdown finishes. the countdown is reset after the collision ends. 

 

Once the image's alpha reaches zero, which means that the object is completely transparent, the dirt will destroy itself.

Using the q-tip as a tool, the grime will gradually be rubbed away by the player.

As the last step to bring the scene together, I created a disturbing picture that would be revealed when the grime is rubbed away. I adjusted the spawner to generate more tightly-packed dirt so that the painting was completely covered. I also added the newspaper clip reference, which the player would be consulting throughout the game. The reference adds to the disturbing reveal of the painting, as the real portrait is slightly off from what the player is expecting. To give hints to the player, if they decide to observe the portrait during the restoration, the game keeps track of how much dirt remains and suggests that the player remove more grime if necessary. Both the overall amount of dirt objects and those that specifically cover the portrait's face are considered, so that the player cannot complete this portion without revealing the altered face of the woman.

The final painting restoration.

bottom of page