Posted November 26, 2025 by lntersight
A first-person sleep paralysis horror game
Today I finally sat down and tried to actually start this jam project.
I made the main menu before I even knew what the game was supposed to be, because I was completely stuck on the idea. I almost went with a simple escape room concept before deciding against it.
Then the idea hit:
A first-person POV sleep paralysis horror game.
You’re lying in bed at midnight, staring into a dark doorway. You can’t move. Something is out there.
Even though the idea finally clicked, I didn’t know whether I wanted the game to be scary, story-heavy, or purely atmospheric. But I decided to just start building something instead of wasting time wondering.
What I got done:
Fade-in screen effect
Basic dialogue system
Placeholder background and monster sprite
A working in-game clock
The biggest issue today?
The clock label was rendering above my fade transition, even though the transition was set to a higher Z-index. It made the opening scene look terrible.
After a lot of frustration, the fix was simple:
→ Put the fade overlay inside a CanvasLayer placed above everything.
That instantly solved the problem.
After that, I lost all motivation and procrastinated. So that was Day 1.
Today I actually started turning this into a playable game.
I added:
The panic bar (main mechanic)
Wrong-key panic spikes
The blink mechanic (which i later scrapped)
The jumpscare
The jumpscare fought me the entire day.
The sound refused to play. No matter what I did, it stayed silent.
The fix ended up being something I never expected:
await get_tree().process_frame jumpscare_sound.play()
Godot needed one frame after making the node visible before it would play audio.
I also added:
Screen shake
Heartbeat audio
Hiding UI during the scare
Resetting panic to zero
First time the full scare sequence actually worked was the first time the game felt real.
But unfortunately, I had to completely get rid of the blink mechanic as it interfered with the key-pressing for the actual gameplay. I didn't want to waste more time on trying to make a loop-around, so I moved on.
Today was a big systems day.
I rewrote the clock so it uses 12-hour format instead of 24-hour.
AM/PM conversion, zero padding, everything.
I discovered the game already got harder naturally (panic thresholds rising over time), and then leaned into it by increasing:
Monster speed
Panic gain
This was the most complicated thing so far.
At 5 AM:
Gameplay freezes
Monster disappears
All sounds fade
Screen fades to black
Background switches from night to day
A short morning dialogue plays
Then you get returned to the main menu
But the transition was a nightmare:
No fade
Background wouldn’t switch
Dialogue didn’t appear
Even worse… the the screen shook like crazy during the day transition, and I think i got about a million headaches trying to fix it
Fixes:
Make sure transition overlay is in its own CanvasLayer
Hide monster before fading
Disconnect leftover signals
Use proper tween callbacks
Finally, it worked smoothly.
I replaced instant text with a typewriter effect so the ending narration feels cinematic.
Today felt like finishing the core structure of the entire game.
Today was all polish and special endings.
I made a hidden ending where if the player stays in the tutorial panel for 60+ seconds, they unlock a secret “failed to act” ending.
The timer originally didn’t work because it only triggered if the player never clicked Next.
I rewrote it so it checks whether the panel is visible, even if buttons are clicked.
After rewriting the logic, the secret ending finally triggers correctly.
You lost the original tutorial text, so I recreated it to match the tone:
Someone guiding you through sleep paralysis
Slightly cryptic, but not a menacing narrator
The new version gives the intro much more personality.
I improved the scare by adding:
Faster shake
Stronger audio
Frame-freeze effect
One distorted sprite frame
Fixed:
Dialogue triggering too late
Overlay appearing behind UI
Multiple duplicate signal connections
Monster still appearing during transitions
Clock running during cutscenes
And.. done! The work was finally over, just to create a simple game. But, it may be too hard.. oops...