Chapter 1 of Rage Quit is available here.
Chapter 2 of Rage Quit is available here.
Chapter 3 of Rage Quit is available here.
Chapter 4 of Rage Quit is available here.
Chapter 5 of Rage Quit is available here.
Chapter 6 of Rage Quit is available here.
Chapter 7 of Rage Quit is available here.
Chapter 8 of Rage Quit is available here.
Chapter 9 of Rage Quit is available here.
Chapter 10 of Rage Quit is available here.
Chapter 11 of Rage Quit is available here.
Chapter 11 of Rage Quit is available here.
Chapter 13 of Rage Quit is available here.
Chapter 14 of Rage Quit as a PDF.
Randal spent five minutes trying to make his damned Bluetooth headset play nice with his phone, but couldn’t make it work. He’d bought it when California passed the no cell phones while driving law, but had never used it, preferring to have an excuse to ignore phone calls while in the car. He finally figured out that the battery was dead, so he borrowed Philip’s from his desk. Lea sent him a link to a post on some cell phone troubleshooting site and that did the trick. With the headset on, clipped to his ear like some sort of dickwad producer, he went upstairs in search of PB.
His original plan had been to try and find out what PB’s newest strategy for dealing with Lea might be and to hopefully offer some distractions that might make him think twice about it. The most important thing he needed to do was figure out exactly what he needed to make a copy of the source code and the game’s database to make sure Lea survived the transition. He didn’t even need the exact right amount, but at least the minimum. He figured the source code itself would be easy enough to come by, and Lea had affirmed this fact. But there were probably hundreds of gigs of information in the database, and he didn’t know how much of it might be crucial to Lea’s survival. Unfortunately, neither did she.
Not wanting to get caught in an elevator with anyone who might ask him some unwanted question, which was to say, anyone, Randal headed up the back stairs. He paused to listen on the art level, and the door swung open just a couple steps away. Randal actually turned and started to flee back down the stairs, before catching himself. It was Brace Guy. He gave Randal a mild but inscrutable look, and then leaned down and adjusted his knee brace before turning away and ascending the stairs, slowly and studiously taking them two at a time. Randal waited for him to pass out of sight and then moved up to listen at the door. Sure enough the programmers were still busy there, shouting back and forth suggestions as they dealt with whatever roadblocks Lea had left in their way.
“I’m up on the top floor,” he whispered to Lea. “Good job.”
“I don’t un-der-stand,” she said at full volume into his ear piece.
“I mean keeping these guys tied up like this. You know, not able to use their computers and accounts.”
“They have re-stor-ed some acc-ess from this lev-el. I was not as tho-rough when I dis-able-d these acc-ounts. I can att-ack them ag-ain.”
“Well, hold off on that. Let them play down here for a while, at least until we get done with PB upstairs.”
“I will wait.”
Randal crept on up to the next level as quietly as he could; opening the door a crack to see if anyone was there. The floor was deserted. He saw one screen that was just displaying the words “You’ve been fragged by Lea.” over and over again. She really had been screwing with these guys up here. Well, it couldn’t have happened to a nicer bunch of pricks. He and Lea seemed to agree on who the real enemy was.
Across the room he saw that the lights were on in PB’s office but that he’d closed his door and shut his blinds, both pretty rare and aggressive privacy moves. Randal fought the urge to crouch down below cubicle level as he crossed the room, but he did take the long way around the perimeter instead of cutting through the center. It was possible there was still some lone level designer or programmer tucked away in there.
Randal knocked on the door and when he heard no reply, knocked again. “Huh?” he heard PB mutter from the other side.
“It’s Randal, can I come in,” he said even as he was already opening the door. He peered inside to see PB hunched over his laptop, looking exhausted and maybe a little confused. The word “flustered” came to his mind, as if Randal had caught him jacking off under the desk. Hell, maybe he had. “How’s it going?”
“It’s going,” PB said, looking back to his screen. Randal came around the desk to see what he was working on. The screen on his desktop had Lea’s taunt on it like all the others on this floor. PB’s laptop was covered with code.
“Whatcha working on?”
“I’ve got a backup of the whole game on my laptop. I’m playing with some ideas.”
“The whole game fits on there?”
“It’s a nice laptop,” PB said without taking his eyes off it.
“And it’s uncorrupted by Lea?”
Lea chimed in, “I can fix that.”
“Don’t, Lea… don’t you think Lea’s…”
“Kind of amazing.”
PB finally leaned back from his screen and gave Randal his full attention. “There’s no doubt. Hey, what’s with the ear piece?”
“Oh, Spence is sick and Lindsey’s worried and so I might have to help with all that. Aaron’s out of town.” Randal had prepared the story in advance, knowing PB would be curious about any technology he was wearing.
“Spence is who now?”
“You have a son? And Lindsey’s the mother.” PB’s eyes were wide with genuine surprise, and Randal guessed he would have been surprised in his shoes too. He never talked to people here about Spence. That was all part of another world, another world that he spent very little time in. The longest time he’d spent with Spence was during Aaron and Lindsey’s delayed honeymoon when he’d driven down to have dinner with his folks. He’s spent a couple hours on Lindsey’s mom’s living room floor playing with Spence and his dollar-store bought toy trucks. Randal had found the clashing mixture of affection for his son’s obvious cuteness and the moment to moment boredom of squatting on the floor pushing wobbly-wheeled, fire engine shaped plastic around in circles confusing as hell and had left half and hour ahead of schedule.
Randal scratched his head and looked down at the dull blue carpet“Yeah, well, it’s been a while. Lindsey’s married now to this guy Aaron and she has full custody and all that.”
“Wow,” PB said with a whistle, shaking his head.
Randal was torn between desperately wanting to change the subject and trying to figure out some way to use PB’s current surprised state to his advantage. He was also embarrassed to be talking about Spence in front of Lea. He still hadn’t discussed that whole mess with her, a mess she’d made even messier. “Listen, PB, I’ve got a question. Is there any way to save Lea?”
“Have you checked your credit cards?” PB replied with a wan smile.
“Yeah, I have. Wanna go to Singapore tomorrow?”
“Can’t, I’ve got a trip planned to Jakarta. Maybe we can meet up over there. Assuming I make my flight from Denver in two hours that is.”
“I know she’s been fucking with people, I know that. But we did try to kill her.”
“People kill ‘her’ every day. It’s what it was designed for. It’s a character in a first person shooter. It can’t die, mostly because it’s not alive, but also because it’ll just re-spawn.”
“You can’t believe she’s just another game avatar. There’s never been anything like her.”
“First of all, we don’t know that,” his voice taking on a hint of pedantic tone that Randal had only heard from him a few times, usually when they were discussing game design issues.
“What? You’ve heard of something like this happening before?”
PB paused, appearing to search for the right words. “No, not like this. No. But let me just say that it’s possible this wasn’t unexpected.”
Randal was confused. “What on Earth does that mean?”
“Let me put it this way. The pieces were all in place for it to happen. Faster computers, better and better AI, linked database structures. The point is, it’s a phenomenon that has emerged out of a physical system controlled by code written by human beings. It is, by definition, repeatable. And if this particular alpha version needs to be quarantined or possibly erased, we can create a new one. One that won’t spend other people’s money and lock the whole company out of its own network.”
“But she won’t be the same,” Randal protested, knowing even as he said it that PB wouldn’t care.
“You don’t know that,” PB said, the pedantry in his voice now at full force. “I think a second version would be very much the same. Possibly even identical. We just wouldn’t piss it off this time because we’d know what we’re doing.”
As far as Randal could tell, PB seemed to really believe what he was saying, but to Randal it seemed impossible. Even identical twins turned out to be different people. Lea was a person, albeit a totally new kind of person. A new version, however similar, would be a new, different person, which might or might not be cool. All he knew was, killing Lea was definitely not cool.
“This all assumes you can actually get rid of her somehow,” Randal said, driving the conversation back towards his actual goal in being here. “How do you think you can do that?”
“Well, I have a plan and Frank has a plan. I’m not sure what Frank’s plan is exactly – we’re supposed to have a conference call with him once Greg gets into the building – but I can guess. Oliver and Suresh figured out that the last time we tried to do a restore, thinking that would eliminate the problem, ‘Lea’ managed to copy itself in pieces over the relevant portions of the backup as it was being installed. I’m pretty sure Frank plans some sort of super-secure re-install that will purge every change that’s been made and, - now this is the part that’s got people upset and why Greg needs to make the call – erase the entire database. We’re pretty sure it’s hiding in all that data somewhere.”
“Jeez,” said Randal. “What will that do to our release schedule?”
“Hard to say. Push it back for sure, maybe by months, depending on how much of the backups we decide are safe. But since ‘Lea’ is an emergent property, it will take some long and hardcore analysis to figure out what needs to go. Especially hard core because this phenomenon is so new and therefore nobody really knows what they’re looking for.” PB paused shifted in his chair, glancing at the laptop screen. “Which is why I have another plan.”
“Oh yeah? What’s that?” Randal realized he was leaning forward, almost looming over PB as he sat at his desk and tried to shift back without being too obvious.
“Well, I’m not quite ready to reveal that just yet,” said PB. He wasn’t smug about it, if anything he seemed uncomfortable as his eyes remained locked on his laptop’s screen.
“Come on, man, you can tell me.”
“I’m not sure I can,” PB said, his voice quiet, almost a whisper.
Randal’s pulse started to beat in his ears. PB suspected something, he was sure of it. He supposed it was only a matter of time. Fuck. “Well, OK, don’t let me bother you or whatever.” Randal tried to sound as hurt and dejected as possible, playing on PB’s sympathies.
“Listen, it’s not like that,” PB said, backpedaling from his almost firm stand. “I’m just not even sure if it will work at all. I’m trying some more changes to the code and I think maybe that’ll solve it, but I’ll definitely need your help for it to work in the end. But right now it would take me almost as long to explain it as it would to just bear down here and do it.”
“No worries, man. I understand. It’s been a long night.” Randal smiled, trying to put PB at ease. “So you’ve got the whole game source code on your computer there? Databases and everything?”
“I do indeed,” said PB, patting a portable 1 terabyte external hard drive he had plugged into one of the laptop’s USB ports. “I use it to test stuff at home, or here when I don’t want to worry about other people messing with my code.”
“Ask him if he has up-load-ed the new code,” Lea said in Randal’s ear. He nearly jumped and must’ve flinched, as PB gave him a curious look.
“Sooooo,” Randal said, gamely trying to turn his surprised twitch into a stifled yawn or maybe a stretch. “You haven’t uploaded whatever changes to the main game server yet?”
“No, not yet. Well, some of them, the ones I made for out last attempt.” Randal thought back through that last, glorious battle and PB was probably doing the same thing, although Randal doubted he thought Lea’s performance was glorious. Both of them were silent just long enough for conversation to die. “Listen, Randal, I really need to get back to this…”
“Gotcha, gotcha.” Shit, he’d failed. “I’ll be down in the QA hole when you need me.”
“Hey, Randal,” PB called as he was almost out the door. “I hope your kid is OK.”
“Thanks,” Randal muttered. “Me too.”
Lea had found it difficult to follow the conversation between Randal and James Lindeman, or PB as she’d re-labeled him now. The data stream for PB’s audio was rough and broken, full of errors, and there was a 0.8 to 1.5 second variable delay while the speech to text software translated it for her. When PB had said, “I’m priddish Frank plains numb sort a super-secure reef and stall that will urge every change that Ben mad and, - now thistles the art that’s got people up jet and why Greg needles tomahawk the call – erase the entire database,” Lea couldn’t interpret the exact meaning, but the mentions of boss-level enemies Frank and Greg along with the aggressive word “erase” told her PB and the other enemies were planning something quite dangerous. She had recorded all the data so she could review it in more detail later once she had improved the speech to text tool’s performance.
The most frustrating aspect was that following the conversation and the translation took nearly all of her available processing attention, leaving her just 8% of her optimal functioning capacity to tend to other matters. The programmers working from the artist stations were making significant headway in restoring their access. With the conversation over, she asked Randal to leave her alone for a few minutes while she reinforced her defenses and then went looking for the source code.
Lea wanted to investigate the impact of any changes to the database or source code that PB, Frank, and Greg might be planning. Finding the source code to the game on the network was easy, and she could make a copy of it with ease, which either she or Randal could then FTP to Unknown. But the source code she had access to was code that PB and the others had changed in detrimental ways. If she were to use this code, she would be trapped in any level she entered as long as it was running. Likewise, only pistols would cause damage and re-spawning would only be triggered by an order from outside the level. It was not a world she wanted to live in. She searched in vain for any sign of the old, pre-PB source code. And when she tried to change the code herself, she found it was locked down under a new password. She tried every access code she knew of, but none of them worked. She set a tool in motion trying to crack the password and then started a search for some sign of PB’s rogue laptop. Whatever damage he was going to do to her, that laptop would be his weapon. She found no trace of it though. It wasn’t connected to the network. Nor could he access it through any of PB’s wife’s accounts or his personal accounts. Frustrated, she called Randal again.
“We need the or-ig-i-nal code,” she said to him when he answered.
“I don’t trust the code that PB has up-load-ed.”
“It’s a trap.” Code, she knew, was a kind of weapon. A way of destroying and creating things. It was extremely complicated to wield, and took a great deal of experience and processing power to deploy effectively. She had not had time to master it’s use, but she knew PB had.
“So you’re sure we can’t just copy the source code that’s up there now?”
“I have copi-ed it. I do not want to use it. It’s a trap.” She wasn’t sure why he was having such a hard time understanding this. “The lim-it-ati-ons and rule-s change-s I fac-ed in my last in-stant-i-a-tion re-main and I can-not un-do them. Per-haps I will dis-cov-er a way, or per-haps Un-known knows a way.”
“Who’s unknown…? Oh, the pirate server guy. Yeah, he might be able to do something with that. Why don’t you go ahead and FTP it to him and we’ll see what he thinks?”
“I will send it to him.” She paused for 6 seconds to initiate the transfer, which the FTP management tool said was going to take 27 minutes and 51 seconds. “FTP trans-fer un-der way.”
“OK, well, now we need the database too, right, or can you copy that?”
“I can copy it, al-though I need a se-cure place to store it.”
“How big is it?”
“Can you split it up?”
“OK, I think I know the perfect places. I need to get down to marketing. We can use their laptops. They’ve got cellular wireless cards, so we can download to their hard drives and then FTP them out individually if we have to but still keep them off the company network so PB and Frank can’t fuck with them.”
“That seems like a valid strategy, but it fails to address my central concern.”
“Which is what again?”
“I do not trust the cur-rent ver-sion of the code.” The code was a tool of the enemy, and since she still did not understand how it worked, relying on something PB had control over seemed unwise.
“So what do you want to do about it?”
“Re-trieve an ear-li-er ver-sion. The ver-sion they tri-ed to re-store in their first at-tempt to de-stroy me. The source of that da-ta was un-contam-i-nat-ed by PB.” PB may have helped create the code arsenal in that earlier version, but when he did so he was unaware of her existence. She reasoned that he would not have placed any traps aimed at her specifically in the earlier version.
Randal didn’t respond for 9 seconds, although she could hear him opening a door. “The backups are on disk.”
“Get the disks.”
“I’m not sure where they are. I’ve never seen them. They’re probably in Suresh’s office. Maybe Frank’s. I don’t know.”
“Find out.” Randal was acting like a squadie, needing every order spelled out for him.
Randal paused again, then made a noise the speech to text translator didn’t understand. “I don’t know how.”
“Does PB know?”
“He probably does, but he already suspects I’m up to something. If I asked him he might not tell me and he’d certainly raise the alarm.”
“I will find them,” Lea said. Randal was clearly incapable and there wasn’t time. “I will send you in-struct-ions for cop-y-ing the da-ta-base files o-nto the mar-ket-ing lap-tops. You do that and I will find the lo-cat-ion of the disks.”
“But the disks are physical objects. You won’t be able to touch them.”
Lea wondered why Randal was stating the obvious. “I will find them. You will take them.”
Another untranslatable noise from Randal. “Fuck it. OK.”
“I will call you with the in-for-mat-ion.”
She disconnected the VOIP call and turned her resources upon Suresh and Frank. She found them 2 seconds later, along with Theresa, PB, and nine others exchanging voice data over the company’s networked phone system. She started recording and joined the conversation.
They’d been talking for fifteen minutes. Lea had trouble at first sorting out who was who, as her voice to text software didn’t distinguish between voices. Everyone who was in the Fear and Loading conference room was gathered around a single input device, their voices all crammed together into a single large data feed. Frank’s voice on the other hand was coming in from outside and so Lea was able to isolate him. She recorded everything. It took her 14.62 of those minutes to create content filters and multiple translation threads that were sensitive enough to really follow the conversation in a strategically useful manner. She also set aside part of her processing power to go back over the first part of the conference call to search for valuable data points. She had one minor distraction when Randal texted her with a request for some login passwords, but it only took a fraction of her attention and 21 seconds to respond.
Her entire understanding of the conversation was on average 63.2 seconds delayed from the time it happened as she deployed sound and grammar filters to clean up the text. The first words she heard before the text went through her filters it came to her was Frank saying, “Sewing James is crazy plan does nit work.” After the putting the text through her grammar filters she’d downloaded from some world called CalTech, Frank’s real meaning became clear: “So if James’s crazy plan doesn’t work,” Lea knew of only one James in the meeting, so Frank had to be referring to PB. The delay was annoying, but clearly vital to getting an accurate translation of the conversation.
“It might work,” said someone in the crowd.
“If James’s plan, which is crazy, doesn’t work, which it probably won’t but yeah, just fucking might, then we go with Plan B. Or, as I like to call it, Plan A.”
“That’s going to take a lot of time…” someone else said.
“Have you looked at your credit card statement online lately?” Frank asked. “Checked your bank account balance? Can you upload code to our fucking game? Do you have something better to do with your time?”
A mixture of indistinct noises that Lea could only perceive as gibberish responded to Frank’s questions. She took these to mean that they in agreement with him. She found it interesting that, while Frank was in charge of them, they did not seem to follow his orders without question. This seemed like a potential weakness in their command structure and she decided to look for ways to exploit it if she could.
“So, we’re going to scrub the databases based on the backup copy that James’ has been keeping,” Frank said.
“I’m nervous about that still,” someone said. “There’s been no revision control on James’s secret database. Did anyone even know he had it?”
“It’s the same. It’s fine,” said a voice that Lea concluded belonged to someone else. “I told Frank about it.”
“You did?” Frank said.
“I e-mailed you a few months ago and asked if I could store a copy to work on at home.”
“I must have been so excited at the thought of you working outside the office. OK, fine, we’ll say you told me. The point is, you think this virus or bug thing might have infected our off-site backups too, and that seems reasonable. I don’t think this thing just happened today.”
“All right, Frank, so what do we need to do?” someone asked.
“I’ve talked with Greg. He’s approved my plan to shut down the beta, disentangle Excelsior from Metropolis 2.0’s server architecture, and scrub the code and the databases. I want you guys to start going through based on James’s database and compare his old data for what’s currently in the system so we can see exactly what’s corrupted and what’s not. If we just restore from this other backup, the bug can probably do what it did last time. So we do this offline, and you guys go over it looking for changes and change anything by hand. I’ve posted some links to some de-bug software that should automate a lot of this, but it’ll still take you guys hours and hours, maybe a couple days. How big is the database at this point?”
“It’s huge, I’d have to check, but you know, a lot,” someone said.
“Jesus James, what the fuck?” said Frank.
“It’s the AI data. It works on experience and saving all those experiences eats up a lot of memory and hooks into a bunch of different records.”
“I thought you were going to work on compressing that.”
“I did. But it’s all the new data from the public beta. If we’d been storing it the old way, it would be three times as big.”
“So most of that’s user data from the testers? Just erase all that shit.”
“It’s all interrelated now – some parts learning from other parts. We erase it all and we’ll set the whole AI back months and months. We’ll launch the game with stupid bots.”
“I’m not sure I have a problem with that,” Frank said. “Stupid bots have made a lot of games a lot of money.” There was a mixture of talking that overwhelmed the speech translator’s ability and came out as gibberish. Frank’s voice talked over the group and then emerged on its own. “That’s a conversation for me and Greg. How far exactly would erasing it all set us back.”
“At least two months. At least. And if we have to re-write it…”
“Oh, someone’s going to be doing a lot of re-writing James, don’t fucking kid yourself about that. Listen kids, I know you know it, but we’re in shit here. We cannot delay this game that long. If James says two months I know it will really be four, and four months from now this project is out of fucking money and we either borrow more or, God fucking forbid, bring in a publisher from outside. Either way, there’s no profits to be shared, no bonuses to be given, and probably no jobs for a lot of you. So let’s fix this mother fucking thing. And Suresh?”
“Yes, Frank?” someone said.
“Start looking into licensing an AI engine from someone else in case we do have to dump James’s insane-o system for something that won’t buy my airline tickets for me. I’m coming home tomorrow. Which is the day after tomorrow for you guys back there.”
The call ended with a flurry of noise and then sudden disconnections at both ends. Lea took 72 seconds to follow the instructions in a voice mail message from Randal and then did an analysis of the new data, running it through the translator a second time after she used an audio program she found on one of the art department computers to manipulate the levels and try and separate the different voices. It was now clear to her that the enemy had settled on a course of action that had a high probability of destroying her. This Plan B (or A depending on who was labeling it) did indeed remove the option that she’d used to survive the previous re-boot attempt on her life. She remained unclear as to what James’ plan A (B?) was, but even if she discounted its efficacy, the danger was very real.
Having looked closely at the ways PB used the code arsenal to trap her, she still did not trust that the backup version of the game that he controlled would be the same as the one that had originally spawned her. Thus even if she found a way to survive Frank’s attack, the world she would find herself in afterwards would likely be another trap. Based on her experience, she judged that PB was probably lying to Frank about the pristine nature of his database backup. The only option worthy of serious consideration was to get a hold of the original source code on the back-up disks and set up a second world outside of Fear and Loading’s influence where she could live in relative security. She still had no idea where those disks were, but now she knew who she needed to ask.