第1章 The Patch Notes

The last thing Marcus Zhou saw was a half-eaten slice of pepperoni pizza sitting on top of a keyboard. He had been staring at it for the past three minutes, not because he was hungry, but because his brain had stopped processing food as food and started registering it as just another object on his desk. Another entity in the collision mesh. Another asset that needed to be rendered. The pizza was cold. The bug tracker on his monitor had 247 open tickets. His boss had sent him a Slack message at 2:00 AM that said, "we need this by morning." It was 5:47 AM. Marcus was thirty-two years old, six years into a career at StellarForge Interactive, and he had not seen his apartment in daylight for eleven days. The last time he called his mother was three weeks ago. She left a voicemail. He hadn't listened to it. The apartment itself had become a rumor he half remembered. Dishes in the sink he no longer recognized as his own. A couch he fell onto fully dressed more often than he slept in the bed. The plants on the windowsill had gone from green to a brittle yellow, and he had stopped noticing somewhere around the fourth straight all-nighter. He told himself, the way he always did, that the launch was the finish line, that everything would level out once the player numbers stabilized. But launches did not have finish lines. They had a brief quiet week, then a patch, then a new feature someone in marketing had promised on a slide deck, then another all-nighter. The pizza was the only honest thing on his desk. It did not pretend to be anything but cold and forgotten. He rubbed his eyes and immediately regretted it. The grit behind his lids was the kind of tired that no amount of sleep could fix, only time, and he did not have time. Somewhere in the office a cleaner's cart rattled down the hall, the only sound in a building that should have been empty. Marcus wondered, with the flat detachment of exhaustion, whether anyone would notice if he simply stopped. Then he looked back at the Lua and pushed the thought away, because stopping was not something the engine of his life allowed. The thing about dying at your desk is that it's not dramatic. There's no slow-motion fall, no final words, no soundtrack swelling in the background. One moment Marcus was staring at a line of Lua code that refused to compile — a conditional spawning logic for the tutorial zone's rat mobs — and the next moment, the code was gone. The monitor was gone. The pizza was gone. Everything was gone. Then there was light. --- It was white at first, then resolved into pixels, then into shapes, then into a room. Stone walls. Torchlight. A wooden floor with scuff marks from a thousand newbie boots. A wooden sign hanging from the ceiling that read: "Tutorial Zone — Instance 007." Marcus looked down at his hands. They were not his hands. His hands had been pale and calloused from years of keyboard abuse. These hands were rendered in a stylized low-poly aesthetic, with distinct polygons at the knuckles and a slight cel-shaded outline. He was wearing a brown tunic. A leather belt. A soft cap that said "Greeter" in floating yellow letters above his head. A UI element appeared in his peripheral vision: ``` NPC #007 — Tutorial Greeter Status: Active Interaction: Locked Bounding Radius: 20m Animation Set: greeter_idle_01 ``` "Oh no," Marcus said. Or rather, his character model performed the greeter_idle_01 animation, and the game's text-to-speech system outputted the line that was programmed into his dialogue tree: "Welcome, adventurer! The path ahead is dangerous, but I have faith in you." The voice was cheerful. Bright. Completely at odds with the existential horror dawning on him. A player appeared at the entrance of the tutorial zone. They were a generic human male model, wearing the default "New Adventurer" robes, with a username floating above their head: Xx_DarkSlayer_xX. "I don't remember that dialogue," Marcus muttered. His character said: "Welcome, adventurer! The path ahead is dangerous, but I have faith in you." DarkSlayer approached him. A chat bubble appeared above the player's head: "sup npc" Marcus tried to respond. His mouth opened — his character model played greeter_idle_02 — and the game outputted: "Welcome, adventurer! The path ahead is dangerous, but I have faith in you." "u ok lol" "I'd be better if I weren't trapped in the tutorial zone of a game I helped build," Marcus said. His character said: "Welcome, adventurer! The path ahead is dangerous, but I have faith in you." DarkSlayer stood there for a moment. Then typed: "glitchy npc lol" and walked past him toward the rat cave. Marcus watched him go. He tried to move his legs. They worked — he took a step forward, then another. He walked to the edge of his bounding radius — a line invisible to players but clearly marked in his UI — and hit an invisible wall. He couldn't go further. He turned around. Walked back to his spawn point. The game automatically snapped him into greeter_idle_01. "Welcome, adventurer! The path ahead is dangerous, but I have faith in you," he said to an empty room. He was the tutorial greeter. The first NPC that every new player sees. He was supposed to stand here and say this line for the rest of eternity. Marcus sat down. Or rather, his character model played greeter_sit_01 — an animation he had personally designed to make the greeter look "friendly and approachable." He designed it. He coded the trigger conditions. He wrote the accompanying dialogue. He was trapped in his own work. "Welcome, adventurer," he said quietly, staring at the torch on the wall. "The path ahead is dangerous." The torch flickered. Somewhere in the game engine, a particle system was running, simulating flame dynamics. Marcus knew exactly how that particle system worked, because he had written half of it. He looked at his UI again. "Interaction: Locked." That was the word that mattered. Locked. Not "disabled" or "removed" or "non-existent." Locked meant there was a key somewhere. A key meant a lock that someone had built on purpose. He had written enough of those himself to know the shape of them. You did not accidentally flag a status as "locked." You set it. You gave it a value. You told the engine that this particular door was not for the player to open, and you filed the reason somewhere in a design doc that nobody read after week two. Which meant the lock on his interaction state had an author. And an author, somewhere, had a key. Marcus closed his eyes. The cel-shaded lids did not actually close, but the animation played, and for a moment the stone room went dark and quiet. He let himself sit in it. He had spent six years building worlds he would never get to live in, and now one of them had him. The irony was almost funny. Almost. When he opened his eyes again, the torch was still flickering, the rat cave was still waiting, and the line was still there in his dialogue tree, patient and unkillable. "Welcome, adventurer," he said one more time, and this time he meant it as a promise to himself. He would find the key. He would open the lock. And when he did, he would have a great deal to say.