NIGHT SHIFT A psychological horror game that lives entirely inside a fake desktop — zero assets, 100% code. The Hook
You clock in at 12:00 AM as a night-shift intake clerk. Your desktop has Mail, Files, a Directory, Internal Chat, Security Cameras, and an Archive. Do your job: read reports, archive the green ones, leave the red ones alone. Simple.
Except the reports don't add up. A colleague messages you from a badge number that doesn't exist. A camera goes offline and never comes back. And somewhere around Day 4, you start finding your own name in places you never put it.
Night Shift is an 8-night, choice-driven horror game that never leaves a single browser tab — because it is the desktop.
What It Does A full fake OS, built from scratch: draggable/resizable windows, a taskbar, app icons, a boot sequence — all in the browser, no engine. 8 nights of branching story, each with its own mail, personnel records, camera footage, and NPCs — not a repeated loop with a reskinned scare. Five interlocking task systems per night: archive/investigate reports, dig through Files, look someone up in the Directory, check a flagged Security camera, and hold down real two-way conversations with multiple coworkers — so no two nights play out the same way. A behavioral tracking layer running quietly underneath: how curious, cautious, or trusting you are shapes what the game shows you. Fully synthesized horror audio — growls, shrieks, static, and jump-scare stingers generated live with the Web Audio API. No MP3s, no royalty-free horror-pack sound effects. Every scare is procedurally different, so the game never announces itself the same way twice. Calm bookends by design: a soothing ambient pad plays you into the shift, and a resolving one plays you out — so the dread in between actually lands, instead of every second of the game just being "on." Why It's Hard (a.k.a. why it's a good hackathon build)
The entire game — UI framework, window manager, procedural camera "footage" rendered live on , the audio engine, the branching dialogue and task state machine, eight nights of content — is a single self-contained HTML file. No build step, no CDN dependencies beyond a Google Font, no downloaded audio or video. Open the file, and the whole game runs. That constraint forced real engineering: a synthesizer built out of raw oscillators and filters standing in for a sound designer, and a lightweight window-manager built out of position: absolute and requestAnimationFrame standing in for Electron.
Tech Stack
HTML · CSS · Vanilla JavaScript · Web Audio API (procedural sound design) · Canvas 2D (procedural "security footage") — that's it. No frameworks, no external audio/image assets, no backend.
What's Next A save/continue system so a shift can be resumed mid-story. More branching based on the hidden behavior-tracking layer (a genuinely different Day 8 for a paranoid player vs. a trusting one). A companion "New Hire" mode: a shorter, three-night cut for players who just want the vibe without the full 8-night commitment.
Log in or sign up for Devpost to join the conversation.