Documentation
Description
The story follows a boy trapped in an endless nightmare, tormented by the ghostly memory of his toy teddy bear, Mr. Teddy Bear. The player’s goal is to evade Mr. Teddy Bear’s attacks across two levels:
- In the first level, Mr. Teddy Bear attacks from the left, front, and right. The player must anticipate these attacks by directing their flashlight towards the incoming threat, using the sound of a bell chiming from that direction as a warning just before each attack occurs, as the player is blindfolded.
- The second level involves navigating a maze using three light sensors: the front sensor to move forward, the left sensor to turn left, and the right sensor to turn right. If the player strays outside the designated path, they lose a life, and the maze resets. To help the player maintain awareness of the boundaries, an audio cue in the form of a bell will indicate the direction of the near boundary/boundaries.
Additionally, there is a brief tutorial level at the beginning to test the functionality of the light sensors and to provide context between each level.
Inspiration
Five Nights at Freddy’s
- The player is stationary while animatronics attack the player from different directions
- The player defends different attack through various means: flashlight, close/open doors, put on mask, etc
The maze level is inspired by a level in Five Nights at Freddy’s Sister Location: video link
Credits
- The sound effects are found on https://freesound.org/ and https://mixkit.co/free-sound-effects/ and edited in Adobe Audition
- The speech voices are AI generated by https://elevenlabs.io/ and edited in Adobe Audition
- The images are AI generated by https://gemini.google.com/app and edited in Adobe Photoshop
Technicality
P5.JS: Link to code
Arduino Code
int frontPin = A0;
int leftPin = A1;
int rightPin = A2;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
while (Serial.available() <= 0) {
Serial.println("hello");
delay(300);
}
}
void loop() {
// put your main code here, to run repeatedly:
int frontPinState = analogRead(frontPin);
int leftPinState = analogRead(leftPin);
int rightPinState = analogRead(rightPin);
if (Serial.available() > 0) {
if (frontPinState > 200) {
Serial.print(1);
} else {
Serial.print(0);
}
Serial.print(",");
if (leftPinState > 200) {
Serial.print(1);
} else {
Serial.print(0);
}
Serial.print(",");
if (rightPinState > 200) {
Serial.println(1);
} else {
Serial.println(0);
}
delay(30);
}
}
Physical Circuit
Reflection
- I want the audience to feel the fear of the unknown when they can’t see anything because they are blindfolded
- I wanted to explore the power of audio and solely rely upon audio to convey an immersive story
- From this project, I gained more experience with numerous technical tools that I would like to continue using: P5.js, Arduino, Adobe Audition, and AI image/voice generation software
- I learned about how to instruct the player to play a game(starting with a tutorial and gradually increasing the difficulty and complexity) and interactivity(adding sound effects when the player points their flashlight towards a light sensor to counter an attack and when they are navigating the maze, etc.) so that there’s a corresponding reaction to each of the player’s action
- This work is a piece of hypercinema as it incorporates numerous media(visual, audio, interactivity, physical interaction) that together convey a coherent and immersive story and worldview
Areas for Improvement
- add more levels and make the story more complex
- involving more senses to enhance playability: audio sensor(e.x. the player has to say a certain word before an attack to deflect it), touch sensor, etc
- inviting the audience to be a part of the experience(they get to decide when the attacks will happen)
- refine and organize the p5 code and fix the bug where the program gets extremely laggy after large amounts of audio files are played(maybe consider using software that is designed more for audio)
- improving the graphics(design the scenes and figures myself so that I have control over all the details)
- add and refine more audio files: make the ai generated voices more natural sounding and accurate to the tone I have in mind