We bought a domain
Thought making games would be easy. We had a name, a domain, and roughly zero idea what a "prefab" was. Optimism was high. It would not last.
How this game is actually getting made. Two first-time developers, one honest entry per milestone. Not polished. That's the point.
Thought making games would be easy. We had a name, a domain, and roughly zero idea what a "prefab" was. Optimism was high. It would not last.
Learned that Unity touches a scene file every time you so much as look at it,
that .meta files are sacred, and that "why is the whole level
frozen on restart" has a boring answer (Time.timeScale was still 0).
Small victories.
The brainwashed office drone you spend the whole game slapping sense back into started life as a security camera. Our first enemy commit is called "first detection logic: security camera", and that is exactly what it was: a thing that sat still and swept a vision cone at you.
It took a while for it to grow legs, a sneeze, and a grievance. Read the code carefully and you can still smell the CCTV.
In April the enemies learned to walk to a destination. Wonderful, except that a fixed route plus one un-carved potted plant meant an enemy would head for its goal, fail to get past the plant, retreat all the way back to where it started, and try again. Forever. It never gave up and it never arrived.
We did not properly fix it until July, with an escalation ladder (repath, then sidestep around the obstacle, then give up gracefully) and by finally carving the furniture into the navigation map.
An AI that never quits sounds admirable until you watch it moonwalk into a shrub for twenty minutes.
A big chunk of this game is written with an AI pair-programmer, which is fast and occasionally alarming. So we built a quality gate: one command that compiles, formats, runs the tests, and enforces our own house rules, plus unit tests around the pure logic.
The rule ended up simple. The AI can write whatever it likes, but nothing counts as done until the gate goes green. Trust, but verify. Mostly verify.
Pick up a keyboard and the attack button stops slapping and starts swinging it. Six solid hits on an infected coworker and the keyboard shatters on the winning blow, with a "Keyboard broke!" callout that felt exactly right. It is still throwable, too.
Turning office supplies into melee weapons was the single most satisfying afternoon of the project so far.
We decided the office printer should not just be furniture. Now every non-final print jams it a few seconds later: a JAMMED sign appears, printing is refused, and the only fix is percussive maintenance, which here means mashing a keyboard against it six times.
The very last form never jams, because a repair with no payoff would just be cruel, and spamming the print button while a jam is pending instantly overworks it and produces nothing. It is the most accurate depiction of office equipment we have ever shipped.
There is a loop where you are meant to lure a dangerous senior employee away from their desk before you do paperwork there. We found you could just walk up and do it under their nose, skipping the entire mechanic. We tuned the "too close" distance three separate times, from 8 down to 1.5, then up to 3, then 6. It kept coming back.
So we stopped patching and added a consequence instead. Intrude on an occupied desk and the owner flies into desk rage ("GET AWAY FROM MY DESK!"), then hunts you at double fire rate and double speed with no escape.
The cheese did not get a wall. It got a monster.
Our first "cure a coworker" system just counted hits. Ten slaps and done. It was rigid, and it could not answer the obvious question: what if I throw a keyboard and slap twice?
So we deleted it. RIP SlapCombo and its nine passing tests. In its
place went real damage arithmetic: every weapon does points into a shared HP pool,
and any combination that adds up works.
Deleting your own working code to make room for better code is a rite of passage nobody warns you about.
We ripped Unity's legacy input out by the roots and moved everything to the new
Input System, polling style, with no .inputactions asset and every
device read directly.
Along the way we rebound combat to the mouse (left click to slap, right click to throw) and added an aimed throw: hold the button and a crosshair appears within a five unit radius, release to launch there. We also taught the game to speak Xbox controller.
Nobody notices input plumbing when it works and everyone notices when it doesn't.
This week we gave the site a real face: a pixel-art page for TGIF, a games shelf, the works. We were proud of it. We pushed it. The website died.
Turns out the one file GitHub Pages actually cares about (CNAME,
a single line telling it our domain exists) lived only in the git history we had
just force-pushed over. So while we were busy admiring the new pages,
shadow-byte.in was serving a 404 to the entire internet. We
investigated DNS records, Instagram links (unrelated, long story), and GitHub's
Pages API before realising the culprit was our own git push --force
from three days earlier.
One-line file. Whole website. Lesson: when you rewrite history, check what history was holding. (It was holding the website.)
There was a silver lining. Staring at GitHub's generic 404 for that long convinced us we should have one of our own, so now the site has a page for when a floor has been made redundant. It is the most in-character thing we have written all month. You are meant to find it by getting lost, but here is a shortcut.
The game is not ready. The website has been saying "coming soon" for months, which is the least interesting thing a game website can say. So we built a small one you can play right now: The 4:30 Run, sitting at the top of the TGIF page. It is thirty seconds long and it is a microcosm of Chapter 1: juniors can be talked down with a slap, seniors will not hear it without a keyboard in your hand, consultants are not to be engaged at all.
The interesting part was not building it. It was watching people play it. Every single thing we thought was obvious turned out not to be. Nobody worked out that seniors need a keyboard, they just died repeatedly and assumed the game was broken. So the rules now wear their answer: a small badge floats over anything a bare slap will not solve. If you would rather work it out yourself, there is a toggle on the start screen that takes the signage down.
Then we tried it on a phone, which was humbling. The speed curve had been tuned on a 900px screen without us ever thinking of it that way, so on a 360px phone the same enemies crossed the floor in a third of the time. It was not hard, it was impossible, and no player could have seen why. Speed now scales with the width of the screen it is running on. The on-screen buttons are gone too: tap the left half to jump, the right half to slap, which gave the game back the seventy pixels the buttons were using.
None of that is the real game. It is a taste of how the real one is meant to feel, which is the point of a sneak peek.