Vaporware Read online

Page 14


  “I’ll be good to her,” I promised. “Catch you later, man?”

  “Sure thing.”

  I turned on the monitor. Apart from the slightest of greenish tinges to the image onscreen, it looked fine.

  “Good enough,” I said, and shut everything down. I could see in the hallway that the sunlight spilling through the windows had just started to acquire that syrupy, late-afternoon glow. A look at my watch, it told me it was a little after six, plenty early by my standards. In the distance, the hubbub of the back room was still going strong.

  And Michelle was waiting in the hallway, with just a few things she wanted to talk about before I took off.

  * * *

  Sarah was curled up on the couch when I got home, eating a salad while a Colin Farrell movie played on the television.

  “Hi,” I said, dropping my bag on the floor and leaning over the back of the couch to kiss her forehead.

  “Hi,” she said distractedly. “There's more salad in the fridge, if you want it. Otherwise it's leftovers.”

  “Huh.” A quick check of the fridge provided incontrovertible proof that she was lying; there were no leftovers to be had. I cracked open a leaf-filled vat of tupperware and spooned it out into a bowl. It hit the sides with a faint slapping sound, which the addition of croutons didn't do much to dispel.

  “I thought you were going to wait for me.” I settled on the couch next to Sarah. She tucked her legs up further underneath her and poked at a particularly recalcitrant bit of baby spinach with her fork.

  “For the movie? I was. I did.” Her fork finally speared the evasive green, and she popped it in her mouth, chewing thoughtfully. “For about an hour. Then I waited a little while longer, and then I decided that if I couldn't get you home on time, I could at least tell Alexander the Great when to start and stop. It felt like a good tradeoff.”

  I shoved a forkful of salad into my mouth, as much to avoid having to respond for a few seconds as anything else. “I got grabbed on the way out the door,” was what I finally offered. “I was headed for the door, and Michelle grabbed me.” Too late, I realized how that sounded. “I mean—”

  Sarah cut me off. “I know what you mean. There was just one more thing. I know how this goes, Ryan.” She jabbed viciously at a cherry tomato, which fairly exploded under the impact of the tines. Tiny jets of tomato guts spattered the inside of her salad bowl. “So I decided to start the movie, because if I'd waited, it would have been too late to see the whole thing by the time you got home.”

  She looked up at me, and after a second I found myself staring into my leafy greens. “It was work, you know. It's not like I was messing around.”

  “I know.” She put down her fork and grabbed the remote. The volume on Alexander telling someone off went up, abruptly.

  “You've been staying late for work, too, lately….”

  “Because there's no reason to come home early, now, is there?”

  When I looked up, she was aggressively staring at the television, the set of her jaw telling me how deliberately she wasn't looking my way.

  “I guess not,” I mumbled, and ate my salad.

  Chapter 12

  After work meant Montague's, and Montague's meant beer. I'd spent the day in meetings, going over the results of the various playtest sessions from the past week and what they meant for our production schedule. By the end of the day, my back felt like a mattress spring, and Leon had suggested going out to unwind a little bit.

  “Sarah going to be OK with this?” Leon asked, leaning over the foosball table like the unlamented Varney. He held the ball in his left hand; his right deathgripped the rod attached to his goalie.

  “She called to tell me she was working late.” I put my hands on the striker and midfielder bars. All of Leon's men had been painstakingly painted in the colors of the Irish national team. All of mine were in the colors of the English team, and most of them had been deprived of their snap-off heads at some point in the two weeks since the table had been installed.

  “Fair enough, then. Loser buys?” He dropped the ball.

  “Loser buys.” I lined up a midfielder and twisted, rifling the ball at his goal. He slid a fullback in the way and easily deflected my shot, sending the ball spinning around to where another one of his men could pick it up. His hands flew from rod to rod as I struggled to keep up. I'd just gotten my fingers around the grip on the goalie bar when he flicked his wrist and rocketed the ball into the corner of my goal with a solid thunk. My goalie slid into position too late.

  He grinned. “I'm ordering something expensive.” I ignored him, fishing the ball out of my goal and adjusting the score to reflect the fact that I was already behind. Two taps on the side of the table, as per custom, and then it was in play again.

  It was four to nothing before either of us spoke. I dropped the ball onto the table and watched it carom away from my line of strikers. Leon caught it with his, then spun it back a line and pinned it in position under one of his midfielders, lining up a shot. “I did some checking on that box for you,” he said conversationally, and then flicked the ball at my goal.

  I shunted it aside, barely, and spun a couple of fullbacks in vain as the ball rolled by, just out of reach. “What did you find?”

  He brought up the ball and passed it to the center of his line, slamming a hard sideways shot that evaded my defenses and cracked against the back wall of the table. “The thing we saw?”

  “Yeah?” My goalie brushed against the ball, enough to send it on a slow roll toward midfield.

  “Yeah.” He skated the ball from man to man, line to line. “I checked the build. It wasn't in there.”

  “What?”

  He took advantage of my surprise to slam another shot home. The ball hit the back of the goal so hard it popped right back out. I gave it a whack with my goalie and somehow sent it skittering down the length of the table, avoiding both my desperate swipes and Leon's more reasonable ones. “If it doesn't stay in, no goal.”

  “No goal.” He turned his attention to corralling the escaped ball. “It wasn't in there. I checked everything. No bad calls, no misnamed objects, no nothing. It's just not in the build.” A quick swipe, and the ball was careening toward my goal again. I nearly fell forward trying to get my defenses in place, and managed to deflect it just enough to have it bang off the back wall and spin away.

  “Then how did it get in there?” I cranked the spin on one of my defenders, which merely resulted in the ball going backwards into my own goal. This time it stayed there.

  Leon shrugged. “I don't know. I don't know a lot of things about this project. For a simple port, it's got more than its share of weird-ass shit going on.”

  I nodded. “It does seem that way. Did you purge all the Blue Lightning stuff out of the database?”

  He stared at the ball pointedly until I picked it up and put it in play again. Seconds later, it was back in my goal. “Blue Lightning was never in there, you know that. All that's over in its own database. I could scrub that easy, but there's no point—it's all self-contained. No crossover possible. Mind you, wiping it would just get it off the network, maybe. It's all backed up offsite, plus whatever crap guys have sitting on their hard drives. But even someone who had the whole project database on their system couldn't have inserted something into the build. It's just not possible.”

  “We saw it,” I reminded him. I rolled the ball onto the table again.

  “Once, and then your system shit the bed.” He spun his forwards as the ball meandered down the center line. “And something ate the dump off my machine, too.”

  The ball hit the far side of the table with a gentle click, then bounced off and started rolling back the way it at came. Experimentally, I spun a line of kickers. They whipped up a tiny breeze that didn't affect the ball's trajectory in the slightest. Leon just stood there and watched it, fingers tensing on the grips of his rods.

  “You're kidding me, right?”

  Leon shook his head. “Nope. N
o proof. But with all the weird shit going on, you almost kind of expect that. Of course there's not going to be any evidence left for anyone else to see. That would be too easy.”

  “Weird shit?” I asked, trying to keep my voice level. I knew which weird shit, so to speak, I'd seen.

  He ticked them off matter-of-factly, his hands never leaving the foosball rods. “The object in the game, and what came after. Brownouts even when nobody's running their AC. Weird equipment failures all over the back of the building. And that.”

  He nodded down at the table. I looked.

  The ball had stopped, dead center on the green-painted field of play. One of Leon's guys twitched, but didn't come close to batting the ball. I didn't bother.

  “Pick it up and do over?” I asked. He shook his head.

  “No way, man. You don't stick it in the crazy, and you don't mess with the weird.” He relaxed his death grip on the handles and backed away from the table. “Besides, my beer's getting warm.”

  I followed him back to the booth and slid in on my side. Leon's beer, mostly full, was still there. Mine was gone, the mere couple of inches left in the pint glass having proved irresistible to the waitstaff..

  I tried to ignore Leon's beer. “Got anything else on the weird list? Or is that it?”

  He looked at me for a long moment before taking a swig of beer. “There's other stuff. And I know you've seen a couple of things, too, not that you ever talk about it. But every so often you do that clench thing with your face that means you don't want to say something.”

  “Heh. You're not doing a lot to convince me here, Leon.”

  Another sip of beer, and he shrugged. “I don't have to convince you. But if I tell you nobody saw shit like this before we started working on Salvador, would you believe me?”

  I thought about it for a minute. “I don't know. And I don't know if there is anything to see. God knows we're all stressed out enough on this one.”

  “No,” he corrected me. “You're stressed out. The rest of us just see weird little things once in a while. No big deal, really.”

  “If you say so.” I slapped a twenty down on the table. “This ought to cover me, man. I'll catch you later.”

  Leon's eyebrows went up. “You're not pissed, are you?”

  I shook my head. “Nope. Just want to check something else at the office and then go home. Another beer and I won't be able to drive.” I stood up, and as I did Shelly walked through the door, shaking an umbrella dry. “Besides,” I added, “she's better company than I am.”

  “She's got a better rack than you do.”

  I grinned at him. “I won't tell her you said that.”

  “She's the one who told me.”

  With a flourish, I turned to go. “If you need her to tell you that, you're in worse shape than I thought. Catch you tomorrow, man.”

  “Tomorrow.” He didn't sound entirely enthusiastic. I nodded to Michelle as I passed her, and she put a hand out to stop me.

  “Hey.”

  “Hey yourself.” Gently, I removed her hand from the center of my chest. “I was just taking off.”

  “I can see that.” She cocked her head sideways and grinned. “Sure you won't stay a little while longer? We can pretend it's a leads meeting and charge Horseshoe for it.”

  Over her shoulder, I could see Leon. He caught me looking and raised his glass in a mock toast. I grinned, then turned back to Shelly. “Would love to, but I can't.” Her face fell a little. “It's not you, it's Leon. He stomped me so badly at foosball that if I don't get out of here now, I'll never hear the end of it.”

  “You're full of shit,” she said sweetly, and patted my cheek. “If I call the office in fifteen minutes, are you going to pick up?”

  “No,” I said. “I'll let it ring and bitch about how it's distracting me from my work.”

  She laughed at that. “Same old Ryan,” she said, shaking her head. “All right, you win. I'll see you in the morning.”

  “See you then.” I walked away. The closer I got to the door, the more I could hear the rain hammering down. It was a real summer cloudburst, each fat drop visible as it pounded the asphalt of the parking lot and exploded into watery shrapnel. Little rivers were already rushing toward the drains, carrying hapless trash along with them.

  The bartender caught my eye as I stepped up to the door. “You might want to wait,” she said, shaking her head back and forth. “It should be done in a few minutes.”

  I nodded, then turned to look at Leon. He and Michelle were already deep in conversation. Over in the corner, I could hear the clack of a spinner on foosball, or foosball on wooden tabletop.

  “Naah. I won't melt,” I said, and ran out into the rain.

  * * *

  The rain was still coming down four hours later, not that I paid much attention to it. I was sitting in a dark room with only screenglow to keep me company.

  There was no one else in the building, of that I was sure. If there had been, they undoubtedly would have come to complain when I settled in with the latest build at the station in the center of the main team room and cranked the volume. There was motion on the screen, but none else anywhere in the building, except perhaps the steady growth of the forest of empty Coke Zero cans next to my chair. The last evidence I'd heard of anyone else had been an hour ago, a door slamming shut.

  In front of me was a scene of post-apocalyptic devastation, decorated in late-period dead mutant. The main character, whom marketing had imaginatively code-named “Sal,” was in the middle of the frame, doing a short, jerky idle animation loop that was supposed to make him look natural and at ease while he waited for the action to begin. Unfortunately, the loop wasn't long enough to really sell the illusion, instead giving the image of a guy who really needed to get out of his gleaming battle armor fast and find the nearest rest room. Off in the background, individual pixels slowly coalesced into advancing enemies, and the controller buzzed in my hands to simulate the earth's quaking under their warlike tread. Bits of special effects razzmatazz onscreen indicated that sufficient “hyperbattle charge” had built up, enabling me to use powers that would lay waste to both my enemies and the scenery around them.

  What really mattered, though, was the small box in the upper left corner that showed a steady series of numbers fluctuating between six and forty-six, the frame rate indicator. Our goal was sixty, but we'd settle for thirty, the refresh rate of the human eye, if we could get it. In a game where one of the sell points was going to be the sheer number of things we'd have to get onscreen at once, keeping the frame rate up was going to be vital, and I'd spent the last four hours since getting back from Montague's watching the numbers creep up and down.

  I settled in for what would hopefully be one of the last runs. Next to me was a notepad where I'd been marking highs and lows and other things like how many enemies were on screen, how many special effects were going off, and how many buildings and other bits of interesting terrain were in the vicinity. All of it was important data and all of it was being tracked automatically by tools built into the game, but the numbers had been coming up wonky recently and I wanted to double-check with my own eyes. The trick had been pausing the game in time to write it all down before getting killed.

  The controller buzzed again, stronger this time. The rumble of approaching enemies shook the chair I was sitting in and set up a sympathetic buzz in my sternum. I could hear alien battle cries, or at least the placeholder versions we’d stubbed in to see if the sound system worked.

  And somewhere in the room, a phone started ringing. I ignored it and gripped the controller, leaning forward in my chair a little bit in anticipation. So far the play had been…decent, even if the frame rate had slowed to a stuttering crawl every time things got interesting.

  The ringing stopped for an instant, then fired back up again. “Great,” I said out loud, “A persistent one,” and turned my attention to the screen. Blasting ensued, explosions exploded, and somewhere in there the phone stopped ringing ag
ain. “Good,” I said, and returned my attention to darting out between buildings and strafing enemies who, lacking full AI implementation, didn’t have the tactical sense God gave a cheeseburger.

  As if on cue, the phone jangled once more, somehow louder than the action onscreen. It was enough to get me to look over at it, to make sure it was really the phone making all that noise, and as I did so I got the sudden, sharp jolt from the controller that told me something had blown Salvador’s electronic head off.

  “Well, shit,” I said, and let the controller drop. It hit the thinly carpeted concrete of the floor with a crack that was a little too loud, and I said something else not nice. The impact had yanked the controller cable out of the console, leaving the game frozen. The ringing of the phone filled the sudden silence, painfully loud.

  “Fine,” I snarled, and grabbed the receiver off the hook. “What?”

  “Ryan?” It was Sarah’s voice. “Is that you?”

  I blinked. “Sarah, honey? How did you know I was back here?”

  She snorted. “Well, I knew you were at work, and where else would you be besides your office?”

  “That’s not right,” I said, and meant it. “I’m not in my office. I’m in the back, testing the build.”

  “Right. Whatever.” She sounded unhappy. “I don’t know the numbers on any other extensions. Your office number is the only one I know.”

  “I’m serious,” I said. “I’m not at my desk.”

  “Like it matters. Maybe Eric put in call forwarding or something. And it wouldn’t have mattered if you’d answered your cell phone the six or seven times I called.”

  “I didn’t get any calls.” I shoved the receiver under my chin so I could dig my cell phone out of my pocket. “It’s…oh, crap. The battery is drained.”

  The exasperation in her voice was palpable. “Of course it is. Tonight, maybe you’ll remember to plug it in?”

  I took a deep breath. “I plugged it in last night to recharge. This afternoon, when you called to tell me you'd be working late, it still had three bars on the power meter.”