◀ All Projects 3D & Game Design

Case study · 2026 · In Progress

PURR DIEM

A PS1-style horror job sim: you work the night shift for a corporation that shreds cats into medicine. Made solo in Unity.

Overview

PURR DIEM is a PS1-style horror job sim. You work nights at a factory in a cyberpunk city, the job is shredding cats into medicine, and you’re doing it to pay off your girlfriend’s medical bills. I made it on my own in Unity, doing the design, code, UI and sound, and building the world from asset packs plus my own art. It started as a school project in early 2026, and it comes out on Steam on October 27, 2026.

How long it took

About eight months. I started it for a class in February or March and just didn’t stop when the class did.

By May it was a working five-day loop: shred cats, fill barrels, ship the pallet, sleep, do it all again. I had a Windows alpha by late June, then wrote a second design doc that rebuilt the game around what that alpha taught me. July is when it found its story: the medical debt, and the factory’s friendly AI turning out to be the face of a cult feeding something under the shredder. Overtime became a dark, dangerous night shift around then too, and on July 18 I finally put the project in git.

September and October were about shipping. I made the first full build on September 4, locked the game at ten shifts and spent six weeks on content, sound and polish. The release builds went up to Steam on October 16. Git counts 422 commits from July 18 to launch, and that leaves out everything before it.

What I built

Everything runs on C# I wrote: the player controller, carrying and inventory, saving and loading, the day/night cycle and the different endings.

I didn’t model everything myself, and I’m glad I didn’t. The SciFi Warehouse Kit from the Unity Asset Store is the base of the whole facility, from the walls to a lot of the structure, and packs like Sci-Fi Old Rusty Props and a handful of Creative Commons models from Sketchfab filled in the clutter. My job was turning all of that into one place: kitbashing it into rooms, texturing and lighting it so it reads as one worn, grimy factory, and making my own pieces where nothing fit, like the signs, posters, capsule art and the retro UI. I also put together the sound.

The scare pivot

My design doc said the horror should be earned, not frequent, with a single jumpscare saved for the right moment. By July the game had drifted away from that. A timer threw a scare at you every 20 to 45 seconds, it cost you a few humanity points, and then nothing. When I playtested it, the scares felt like set dressing.

So I made them about what you’d done. The game keeps a guilt score built from how many cats you’ve shredded, whether you’ve burned any live ones (the worst thing you can do) and how low your humanity has dropped, and sparing a cat brings it back down. Guilt decides how tense a night gets.

The bigger change was moving the scares out of the random pool and into scripted moments, placed where I knew players were going to be. Someone knocks on the exit door. The shredder jams. A tentacle comes out of the incinerator. The posters on the wall change when you’re not looking. Floating cat eyes watch you from the dark. Because they happen at the machines and doors you use every shift, the places you work start to feel unsafe, and that hits harder than anything a timer could throw at you.

The texts

Your girlfriend texts you all through the game. In the early design the phone was a chore: it rang at work, you had to pick up, and ignoring it cost you humanity. I stripped it down to just Messages, styled it like the factory terminals, and flipped the idea around. Replying to her gives you humanity back: 2 points for a warm reply, 1 for a cold one, nothing if you leave her on read. Each reply only comes up once, on a set shift, so you can’t farm it, and if you’re warm every time she’s worth as much humanity as all six memory fragments put together.

The part I’m proudest of is how she reacts to what you’ve actually seen. When something happens to you on shift, whether it’s a scare, the first time you put a box in the machine or the cats lined up outside the window, your character writes it down in the phone’s Notes app, in her own tired words, the way you’d note something so you don’t forget it. That’s your memory of the day. At night, the things you remember become what you can tell her. You pick what she gets to hear, and she answers it. She only knows what you’ve told her, so her side of the story is built from your choices. The heavy things you can keep to yourself, but dodge her enough times and she notices. It makes the game feel real in a way I didn’t expect: you carry the day home with you, and you decide how much of it to bring.

In September I rewrote her conversations so they connect. What you say in one comes back in others, your relationship heads toward different outcomes that affect the ending, and bits of the world slip in through her: the orange air, prices going up, the news. She writes like a real person texting, and that makes the horror around her worse.

Getting it ready to ship

The last week was testing and fixing. A friend ran the Windows build to check for crashes and graphics or memory problems, and I replayed every day-one fix: the rain in the bedroom, the lift ride, the build-up to shift 11, the breaker and the creep belts.

Launch marketing

I ran the launch myself. Over about a week I posted the trailer and the story of making it solo to r/IndieDev, r/indiegames, r/Cyberpunk, r/HorrorGaming, r/IndieGaming, r/SoloDevelopment and r/Unity3D, and answered comments as they came in. I put together a press kit, emailed creators in batches, tracked every pitch and follow-up in my Pitch Desk, and sent 49 Steam keys through Curator Connect. I wrote down the wishlist count every day, and it went from 22 to 55 before launch.

What I learned

This is the project where I learned to make games. I started as a beginner in Unity and learned it the hard way: long debugging sessions, systems breaking each other, and more than one rewrite. Here’s what stuck.

  • Get the foundation right early. I set the game up so its systems talk through one shared event bus instead of reaching into each other. That’s the reason I could change the whole story in July without tearing the code apart.
  • Use what’s out there. Asset packs gave me a whole facility to build in, which left my time for the parts only I could make: the systems, the writing and the look that ties it together.
  • Write it down. I kept a handoff doc for every work session (more than 25 of them), plus two living docs: one for how the systems work and one for the story. When I came back after a break, or something broke months later, the answer was usually already written down.
  • Build early and often. I didn’t make a full build until September, and the first one failed on code that only works inside the editor. Now I build as soon as there’s something to build.
  • If you can’t test it, it’s broken. Some scares only fired in the dark, after a safe window, when you were looking the right way, so in playtests a scare that worked looked like a bug. I added a debug menu that can force any of them on the spot, and I build tools like that from the start now.
  • Cut to finish. Locking the game at ten shifts and cutting a puzzle that wasn’t pulling its weight is what got it out the door.
  • Place your scares. Scripted moments where players will actually be beat random ones every time.
  • Keep it in the world. I moved a lot of the game into the world itself: the phone, the notes, the terminals, the screens on the walls. It made the game feel more real, and next time I want to go much further with diegetic design.
  • Market from day one. Almost all of my marketing got crammed into the last ten days. I learned a lot fast (pitching creators, timing Reddit posts, building a press kit, tracking all of it), but it should have started in pre-production. My next game is planned with marketing check-ins at every stage, and I keep all my projects and plans in one tracker now instead of in my head.