It’s 10 PM at Halvorsen Freight, Suite 1408 of Meridian Tower. The day shift has gone home and left the usual mess: coffee rings, confetti from somebody’s birthday, a crumpled note under a desk. You’ve got a cart, a clipboard, and the whole floor to yourself.
The cleaning is the toy. But grime hides things, and over seven nights the mess you clean away reveals what the day shift is hiding. Then you decide what survives until morning.
Cleaning that feels good on its own
Look at a dirty surface and the right tool comes up: a cloth for desks and counters, a squeegee for glass, a vacuum for carpet, a mop for hard floors. The reticle turns into a progress ring, and a nearly clean surface finishes itself with a gleam, a sparkle, and a ding whose pitch climbs if you clean several in a row. The vacuum leaves light and dark stripes in the carpet nap. Glass needs foam first, then the squeegee. Mopped floors stay wet for a few seconds.
Rubbish gets sorted into black bins and blue recycling with a charged throw; long shots get a swish and a “Nice shot!” Moved objects have home spots, and a ghost shows where each one belongs. Chairs tuck in, monitors switch off, lights go out when you leave.




Grime hides things
Clues turn up because you clean. Erasing a whiteboard leaves the ghost of what was written there before. Window foam shows letters someone traced on the glass. The vacuum knocks something loose from under a desk. A pencil rubbing brings back the last page torn from a notepad. From Night 2, a UV torch shows invisible-ink marks left by the cleaner before you.
Everything you find is yours to decide about. Keep a document in your pocket, put it back, throw it away, shred it, or leave it in someone’s inbox tray to find in the morning. One office belongs to someone who notices when things move. The next morning’s office chat reacts to what you did, the next night has changed, and on the seventh night you decide what survives. There are four endings.




There’s no fail state and no timer pressure. The wristwatch runs toward dawn, but it never ends your shift for you. Each night is designed to take five to eight minutes.
More screenshots

What it’s built with
After Hours is a Unity 6 URP game with keyboard, mouse, and gamepad support. The cleaning runs on paint masks. Every cleanable surface is an overlay quad with its own 2D space, so painting never depends on the model’s UVs. Each one has a render-texture mask with channels for dirt, vacuum nap, wetness, and reveals, plus a quarter-resolution copy of the dirt channel on the CPU, which gives exact completion percentages without reading back from the GPU. Dirt is composed at the start of each night from procedural stamps: coffee rings, footprints, smudges, marker, confetti, and spills.
The same masks drive the secrets: ghost text where marker was erased, letters that stay clear in window foam, and a rubbing layer that shading brings back.
How it was made
After Hours was one of eight games built in parallel from short designer briefs, each by its own AI coding session on one shared machine. The brief: clean an office while learning its secrets, and decide which evidence survives, in one office that changes over seven nights. Its trailer moment was cleaning a whiteboard to discover a message beneath the marker, and it insisted that the cleaning feel satisfying on its own before anything else. The commit history spans about ten hours on October 4, 2026.
Blender is the level editor. office.py builds the floor in Python, and object names carry meaning, with prefixes like GRIME_, ANCHOR_, LIGHT_, DOOR_, TRAY_, and BIN_. An OfficeBuilder script reads the exported FBX and attaches behaviour by name. Every sound effect, ambience bed, and music track is synthesized in NumPy: FM electric piano, brushed hats, and vinyl crackle for the lo-fi night jazz, and layered noise for the cloth, squeegee, vacuum, and shredder.
The story logic is pure C#, and an EditMode test enumerates every combination of choices to prove all four endings are reachable. An AutoPilot plays the shipped build through all seven nights along five story routes, with about 200 checks per route, including that no prop is floating or sunk into furniture. The trailer recorder runs the game on a fixed 30 fps clock and captures the mixed audio, so every shot is scripted and repeatable.
Play it
Version 0.1.0 includes all seven nights, four endings, menus, and saves. Download it from GitHub releases. No one outside development has played it yet, so pacing and how obvious the clues are remain untested with real players.
Browse the source on GitHub. GitHub records the repository’s creation on October 4, 2026.