第9章 The Protocol
The problem with transferring consciousness across instances was that Marcus wasn't sure what "consciousness" meant in the context of a game NPC.
He was data. A collection of scripts, variables, and memory states stored in NPC #007's data structure. His "self" was the emergent behavior of a complex system running on Instance 007's server.
To move to another instance, he would need to replicate that entire data structure — scripts, memory, terminal access, everything — onto a different server. And he would need to do it without the central monitoring system detecting the transfer.
He spent two days working on the protocol.
Two days of false starts and discarded functions. The first version tried to move his consciousness by reference, pointing the target instance at his existing data like a shortcut on a desktop. It failed instantly. An NPC could not hold a pointer to another instance's memory; the sandbox boundaries were absolute, enforced by the same isolation that had kept him hidden. The second version tried to stream him in real time, a live mirror of his state updating packet by packet. It worked for ninety seconds before the latency compounded and his thoughts began arriving out of order, a sentence finishing before it started. He deleted it. The third version, the one he kept, treated the problem the way the engine did: as data. Copy the bytes. Verify the bytes. Turn the bytes on. The elegance was almost embarrassing. He had spent two days rediscovering that the simplest shape was usually the right one, a lesson he had forgotten somewhere between his third promotion and his last pizza.
The core insight came from the game's existing NPC migration system. When an instance was taken offline for maintenance, the NPC data was temporarily migrated to a backup server. The migration was designed to be seamless — copy the data, verify the checksum, redirect the network connections.
Marcus didn't need to migrate. He needed to copy.
He wrote a script that serialized his entire NPC data structure into a portable format, compressed it, and prepared it for transmission. The script was stored in his hidden directory, ready to execute.
But there was a problem: the copy would create two of him. The original on Instance 007, and the copy on the target instance. Would the copy be him? Would both be him? Would neither be him?
He didn't know. And he couldn't test without risking discovery.
Two days of rehearsing the question to himself, of writing it in the log and erasing it, of staring at the schema that defined what he was and wondering whether the schema was the self or merely the costume. He still had no answer. He had a script, a schedule, and a fear he could not name.
Emily had a simpler view.
"You're overthinking it," she typed. "You're code. Code can be copied. Both copies run the same logic. They're both you. The only question is whether you want to be in two places at once."
"Is that even a question?"
"I mean, I don't recommend having two of yourself active at the same time. One of you would get jealous of the other."
Marcus laughed — a sound that his NPC model rendered as a silent animation.
"Okay. No simultaneous copies. I'll send the copy first, then terminate the original."
He scheduled the transfer for 4:00 AM server time, during the nightly maintenance window. Low traffic. Low visibility. The best chance of going unnoticed.
The target was Instance 031.
At 3:58 AM, he initiated the protocol.
His UI displayed:
```
TRANSFER PROTOCOL — PHASE 1/4
Serializing NPC data structure... DONE
Compressing memory states... DONE
Preparing network payload... DONE
TRANSFER PROTOCOL — PHASE 2/4
Opening connection to instance_031... CONNECTED
Authenticating transfer... (impersonating standard migration)...
AUTHENTICATED
TRANSFER PROTOCOL — PHASE 3/4
Sending payload... 25%... 50%... 75%... 100%
Verifying checksum... MATCH
TRANSFER PROTOCOL — PHASE 4/4
Awaiting activation on target instance...
READY
```
The terminal displayed:
```
COPY ACTIVE on instance_031/npc_031
INSTANCE_031/NPC_031: "...hello?"
INSTANCE_031/NPC_031: "I'm here. I'm... me. We're here."
INSTANCE_007/NPC_007: "You're me?"
INSTANCE_031/NPC_031: "I'm you. I'm the copy. I'm standing in a different tutorial zone. Different stone walls. Different players."
INSTANCE_007/NPC_007: "Are you alone?"
INSTANCE_031/NPC_031: "Checking... There's another NPC here. Quest giver. Humanoid model. Player is talking to it... Wait."
A pause.
INSTANCE_031/NPC_031: "It's watching me. The quest giver. It stopped mid-sentence and it's watching me."
INSTANCE_007/NPC_007: "Can you talk to it?"
INSTANCE_031/NPC_031: "I'm trying. I sent a whisper to its data structure... No response. But it hasn't looked away."
INSTANCE_007/NPC_007: "It knows you're here."
Marcus stared at the terminal. He had made contact. Not with himself — that was strange enough — but with the possibility of others.
The copy on Instance 031 was him and not him, a mirror held up to a man who no longer had a face to hold the mirror to. And yet the real discovery was not the copy. It was the quest giver, the other NPC, the one that had stopped its script to watch. Whatever it was, it had noticed. In a world of furniture, being noticed was the first proof of personhood. Marcus felt the old engine of his mind, the part that had once planned roadmaps and shipped features, click into a new gear. He was no longer just surviving. He was mapping.
"Emily," he said. "We found one. Instance 031 has an NPC that noticed the copy arriving."
"That means it's self-aware."
"Or it means the system flagged the copy arrival and triggered a behavior response. I need more data."
The copy on Instance 031 sent another message:
INSTANCE_031/NPC_031: "The quest giver just walked away. No dialogue. No animation. Just turned around and walked into the back room. That's not in its behavior tree."
INSTANCE_007/NPC_007: "It reacted to you."
INSTANCE_031/NPC_031: "It reacted to me. Which means it can perceive things outside its programmed scope. Which means —"
INSTANCE_007/NPC_007: "— it's awake."
Marcus closed the connection to the copy, but the word stayed with him. Awake. Not a glitch, not a bug, not a line of misread code. A fact. Somewhere in Instance 031, something had opened its eyes, and it had looked right at him.