WebMage Read online




  No time for

  second thoughts now

  Scorched Earth is not a spell that can be aborted halfway. Ultimately, all spells draw power from the same source, the primal chaos that churns between the worlds. But my family mostly uses the predigested forces my grandmother and her sisters channel into the net via their mainframe webservers. Scorched Earth isn't like that. It taps directly into the interworld chaos. That means it's both very dangerous and very powerful. It also means I don't have to have web access to run it. Melchior's voice interrupted my train of thought.

  "There's no carrier wave and no mweb line," he said. "I think we just took the entire net down, Boss."

  "Sweet Necessity," I murmured. "What have I done now?"

  "Kelly McCullough's WebMage has to be the most enjoyable science fantasy book I've read in the last four years. Its blending of magic and coding is inspired, almost as much as the portrayals of the Greek gods and their descendants. WebMage has all the qualities I look for in a book—a wonderfully subdued sense of humor, nonstop action, and romantic relief… It's a wonderful debut novel."

  —Christopher Stasheff, author of Saint Vidicon to the Rescue

  For Laura, my heart

  Acknowledgments

  First and foremost, extra special thanks are owed to Laura McCullough, Stephanie Zvan, Dave Hoffman-Dachelet, Lyda Morehouse, Shari Mann, Jack Byrne, and Anne Sowards, without whom this book would not be here.

  Many thanks also to all of the following: The members of my various writers groups: S. N. Arly, Anna Waltz, Stephanie Zvan, Barth Anderson, Alan DeNiro, Paula Fleming, Manfred Gabriel, David J. Hoffman-Dachelet, Burke T. Kealey, Kristin Livdahl, Lyda Morehouse, Doug Hulick, Naomi Kritzer, William Henry, Eleanor Arnason, Rosalind Nelson, H. Cour-reges LeBlanc, Sean Michael Murphy, Mike Matheny, Kevin Matheny, Sean Melom, and Ben Rouner. The WOTF Gang: Eric Witchey, Merry Simmons, J. Simon, Phillip Lees, Anna Allen, Robert Johnston, Michelle Letica, Steven Raine, and Marguerite Devers Green. Pros who've helped me along the way: Darrell Schweitzer, George Scithers, Tim Powers, Warren Lapine, Eric Heideman, Jim Frenkel, Steve Brust, Mike Levy, Dean Wesley Smith, Kristine Kathryn Rusch, Jane Yolen.

  Ted Davis, who gave me the computer that started it all. My web guru, Ben Zvan. Tracy Berg. Beta readers: Sara Rouner, Steve Fox, Karl and Angie Anderson. Research services: Jody Wurl and Barb Thompson. Mentors: Vaughn Koenig, Jerry Jax, Joel Samaha. My extended support structure: Bill and Nancy

  Rouner, James Hall, Tom Foster, Ann Robertson, and so many more.

  And my family: Phyllis Neese, Carol Sorsoleil, Paul and Jane McCullough, Lockwood and Darlene Carlson, Judy Roh-de, Lee Carlson, Kat Carlson, Kay Marquez, Jean Thomas, Lee Perish, and the rest.

  Contents

  Chapter One

  Chapter Two

  Chapter Three

  Chapter Four

  Chapter Five

  Chapter Six

  Chapter Seven

  Chapter Eight

  Chapter Nine

  Chapter Ten

  Chapter Eleven

  Chapter Twelve

  Chapter Thirteen

  Chapter Fourteen

  Chapter Fifteen

  Chapter Sixteen

  Chapter Seventeen

  Chapter Eighteen

  Chapter Nineteen

  Chapter Twenty

  Chapter Twenty-One

  About The Author

  Chapter One

  "Nothing here," said Melchior, his voice echoing from the depths of an ancient citrus-wood chest.

  "Keep looking," I called back to my familiar, yanking another drawer from my many-times-great-aunt's desk. "It's small. It could be anywhere."

  The spell was very tightly written, and elegantly coded. Embedded in the crystalline matrix of a memory jewel, it was beautiful. Even incomplete, it was the scariest thing I'd ever seen. Worse, it didn't seem to be anywhere in Atropos's suite. I shouldn't have been surprised. My great-to-the-nth-degree-aunt is a consummate weaver of intrigue. I dropped the drawer. Where should I look next? As if in answer to my question, a hound bayed in the distance, the unmistakable belling of a hunter on a fresh trail. I didn't have much time.

  "Melchior, Mtp://mweb.DecLocus.prime.minus 3051 /umn.edu,comstockhall301," I said. It was my current home site on the mweb. "Execute."

  "I hear and obey, Ravirn," replied Melchior.

  The webgoblin hurried to an open space on the floor and scratched a hexagram into the wood before spitting out a netspider. The tiny magical creature scuttled to the diagram, where it set an anchor line and vanished. A few seconds later it returned and Melchior grabbed it and returned it to his mouth.

  "Mm-mm. Delicious and nutritious, tastes just like chicken."

  "Can the editorials, Mel," I called, sliding out from under the bed. I'd sliced open the liner and dug around in the springs. The smell of dust filled my sinuses. "We're in a hurry, and I know they taste terrible. That's one of the reasons I built you in the first place. I just want to know if my dorm room is clear."

  The webgoblin stuck his spider-occupied tongue out at me. I snapped my fingers in exasperation, calling a wisp-light into being, and sent it to dance a few inches in front of Melchior's eyes. He hopped back and growled a little. When the wisp showed no signs of departing, he sighed and swallowed the spider.

  I dispelled the wisp. There was no sense in aggravating him, or drawing more attention than I already had. Although, on looking around at the wreck we'd made of my great-aunt's bedroom, I had to wonder if I could draw more attention. If she ever found out who'd done this, I was a dead man. Still, I found myself delaying our departure. The back trail I'd left should keep the dogs off a little while longer. If only I could find the damned spell. I searched the room one last time with my eyes.

  "Processing," said the goblin, his voice mechanical. Then, after a few seconds, "Reporting. Your room in Comstock at the U of M in the prime-minus-3051 Decision Locus is vacant."

  "Thanks, Mel," I said. "That wasn't so bad, was it?"

  "Ick, ack, ptooie," coughed Melchior, his voice returning to its normal whiny growl. He rubbed his tongue as if trying to clean off the remnants of the webspider. "When Lachesis wrote the code for those things, why did she make them so bitter?"

  "I'm tempted to say it's just another manifestation of my greatest grandmother's sparkling temperament. But that's not actually the case. Uncle Valarian asked her once while I was around. She said it's to remind us that the spiders are serious and potentially dangerous magical constructs, not toys."

  "Hmmph. Why don't you fix them?"

  "There are several reasons." I ticked them off on my fingers. "First, I'm not the one who has to eat them. Second, their programming is much more involved and nasty than it's worth. Third, they're virtually bug free, if you'll pardon the pun. Fourth, and finally, it would seriously irritate Lachesis, and that stupid I'm not."

  Lachesis, the Fate who measures the threads, is not a Goddess to be trifled with. For convenience's sake I usually refer to her as my grandmother rather than adding in all of the necessary greats, and she is more fond of me than of some of my relatives. But bonds of affection and blood are only a limited shield from her anger.

  "Now," I continued, "before you come up with any more distracting questions, I have orders. Melchior, establish a locus transfer protocol link with the Comstock hub. As soon as that's done, initiate transfer. We've got to get out of here."

  The little goblin glared at me but went to work. He pulled a piece of chalk and a bit of string out of his belly pouch. Using the string to measure, he drew a large hexagram on the floor and spat another netspider into the center. It blinked out the second it landed, leaving behind a glowing blob of gold silk.

  "Connecting to prime.minus3051," intoned the goblin.
>
  A few moments later the light changed from gold to green. "Connect," said Melchior. "Initiating Gate."

  He dropped to his knees and grabbed the node. As he pulled on it, the glow spread outward, filling the whole hexagram. Once the diagram was completely green, the light rose to form a hexagonal column about six feet high and two across.

  "Gate established. There you go, Boss. We can leave whenever you're ready."

  "Thanks, Mel. That was nicely done." A loud crashing sounded somewhere close by. That would be the cousins coming to see who had invaded their demesne. And, as much as I might have enjoyed staying and chatting with my dear, dear relatives, Atropos's brood was notorious for killing first and trading pleasantries later.

  "Perfect timing," I said to Melchior. "Shall we be going?"

  "Hades, yes!" said Melchior, hopping from one clawed foot to the other in obvious agitation. "Atropos scares me even more than your many-times-great-grandmother." The doorknob turned as someone tried to open it.

  "We need to go now!" He tugged the corner of my cloak. I twitched it out of his hand.

  "Too right, Mel." I really didn't want to be there when they got through, but dammit, I needed to find that spell.

  It wasn't going to happen. Defeated, I stepped into the column of light. The door shuddered and groaned as something thudded into it. A half-second later, the sound was repeated. Long cracks appeared in the thick, wooden timbers. I pulled my cloak up to mask my features.

  "Melchior, Locus Transfer," I said. "Execute."

  Phrased like that, with his full name at the beginning and the execute order at the end, it was a command he had to obey. Melchior, joining me on the hexagram, hissed out a string of spaghetti logic. The light began to shift from green to blue. A third impact buckled the door completely. I drew my rapier. An instant later, a broad-bladed hunting spear hurtled though a gap at the top of the ruined door, coming straight for me. I thought we would be gone before it got to me, but it never hurts to be careful. I brought my sword up in a parry. As the light finished its transition, the room wavered around us and vanished.

  There was a shower of sparks as the iron spearpoint grated along the edge of the rapier. The contact deflected the missile past my left shoulder. It buried itself solidly in my roommate's Toby Keith poster. It also left my hand stinging and numb by turns.

  "That," I said to Melchior, "was entirely too close." I dropped the sword and hooked the chain on my door.

  "Has anyone ever told you that you have a gift for stating the obvious?" asked my goblin. He was livid, literally. His face and neck, normally a royal blue, had faded almost to periwinkle. "Were you trying to get us killed, or are you just stupid?"

  That was too much. "Melchior, enough! When I wrote you, I included a certain amount of self-determination and sarcasm. But I won't tolerate insolence or insubordination. Go to your desk."

  "Your least whim is my veriest desire, o' prince." The webgoblin leaped onto my small desk, where he assumed a cross-legged position and glared at me.

  "Melchior, Laptop," I said, tired of his whining. "Execute."

  "No sooner commanded than performed."

  The goblin's flesh began to flow and twist like soft wax. Five minutes later the transformation was complete. What had once been a nasty-tempered little manling became a shiny WebRunner 2,200cs PPCP cell laptop. A small blue logo bearing a suspicious resemblance to Melchior was positioned below the screen on the left.

  While the goblin altered his appearance to better fit in with his surroundings, so did I. The black cloak and the rapier went into a trunk at the foot of the bed. The tights, likewise black, and the emerald tunic were stuffed into a laundry bag. The high leather boots were retained to go over a pair of black jeans. I topped that off with a green "Nobody Wins" T-shirt and a TechSec leather jacket before checking myself in the mirror to see whether I'd forgotten anything.

  Boy, had I ever. "Shit," I mumbled. The face that stared back at me was not one I could wear around here. I invoked the spell that rounded my slightly pointed ears and reshaped the vertical slits in my green eyes to more human circles. My long, black hair, fine bone structure, and dead white skin I left intact. On a campus with as large a Goth population as the U of M, they were normal enough to make concealing them a waste of magical resources, a cardinal sin in House Lachesis. That done, the transformation was complete. Prince Ravirn, of the House of Lachesis, sixty-seventh in line for the throne, was gone. In his place was Ravi Latcher, a junior in Classics and Computer Science with midterms coming up.

  Atropos and her spell would have to wait. I'd given Lachesis my solemn word that I wouldn't miss another midterm. And breaking a promise to Fate is an excellent way to end up as the subject of a Greek tragedy, even if you are a member of the family. I assuaged my conscience with the thought that Atropos hadn't been able to make the spell work yet. Otherwise, she would never have come to me. I'd have another go at finding it after my first test. Not enough to make me feel better, but the best I could do for the moment.

  Swearing under my breath, I turned and started stuffing books into my shoulder bag. That's when I remembered the spear. Ran into it is more like the truth, but that's neither here nor there.

  Damn! If Rod found that thing there, I'd never hear the end of it. Pulling the weapon loose, I tossed it under the bed. That left a rip in the poster and a hole in the wall. It seemed an awfully trivial concern just then, but anyone who's ever had a touchy roommate would understand. Sighing, I flipped the cover of the laptop up and hit the space bar.

  Enter password.

  Correct.

  Run Melchior. Execute.

  I hear and obey!

  The laptop shifted back to its webgoblin form. "What now? I didn't even have all my bootables in the right places. You know I hate that."

  He can get in a real snit when that happens, and I didn't feel like picking a fight with my laptop three days before term papers were due. He could crash at the most inconvenient times when he was angry.

  "I know, I know. I'm really sorry. You've been doing good work lately, and I haven't been praising you enough. But I was supposed to meet my study group in Walter Library ten minutes ago. I want you to fix Rod's poster, then catch up to me there."

  "I don't see why you can't just do it yourself."

  "Because I don't have time to code a real spell, and if I just paste an illusion over it, I'll forget about it. Then the illusion will wear off at the most inconvenient possible time, and I'll end up having a huge argument with Rod."

  "True. Pathetic, but true." I let that slide, and he continued, "Get moving, I'll be along in fifteen minutes or so."

  "Great." I opened the door, then looked over my shoulder. "Oh, and Melchior."

  "Yes?"

  "I don't want you terrorizing the sorority girls on your way over."

  "But—!"

  "No, Mel. Stay away from the football team too, OK?"

  "Yeah, sure. If I have to leave the Greeks alone, I might as well not have any fun."

  "Thanks, Mel. You're a prince."

  "No, you're the prince. I'm just a lowly goblin flunky, doomed to a life of menial labor." Melchior wrenched a razor-sharp tooth from his mouth and spat a netspider into his hand. He squeezed it until silk came out, then threaded it onto the tooth. "No one appreciates my simple graces."

  "Good-bye, Mel."

  As Melchior began to sew up the rip in the poster, I ducked out and closed the door. Then I took the back stairs three at a time. When I hit the campus mall, I sprinted. The mall was lined with vaguely classical buildings. My family's early-Greek worshippers would have recognized the style, though they'd have wondered why everything was oversized and rendered in stark gray granite or boring beige sandstone. It was October, one of the good ones, and the air was crisp but not icy. In the clear fall air the full moon seemed close enough to touch, and the smells of dry leaves and dying grass were enough to paint a grin on my lips. There was nothing like fall in Minnesota. Even with the thre
at of Atropos's spell hanging over everything.

  Melchior caught me as I was dashing up the library steps. Somehow, he'd gotten there ahead of me.

  "Boss!" he whispered loudly from behind a pillar. "Hey, Boss."

  I turned, startled. He'd gotten there too fast. "How'd you manage to fix the poster so quickly?" I looked around to make sure that none of the local human population was close enough to see me talking to a mythical creature. Together we slid into the deep shadows at the edge of the building.

  "I didn't fix the poster," said Melchior. He raised a closed hand to forestall my complaint. "We have much bigger problems than an annoyed roommate. This came through into the room after you left."

  He opened the hand. In it was a small, broken thing, a netspider. I took it and popped it into my mouth. The flavor was even worse than the ones my grandmother had coded. It was also familiar.

  "Atropos," I whispered. I was stunned. I'd been very careful not to leave any identifying marks, and I didn't think anything could have backtracked me. "This came from my cousins, or worse, my great-aunt. Are you jamming?"

  "As much as possible, but they're using some pretty heavy code-breaking algorithms. Their webhounds will have us locked down within ten minutes."

  "I guess I'm going to have to take a pass on my study night," I said. "Melchior, Bugout. Execute."

  "Executing," said the goblin. "Waiting for connection." There was a long pause. "Lachesis.web system connect denied."

  "What?"

  "Melchior is unable to create an mweb socket connection," he said. "The system may be down or there may be insufficient system resources at this time. Try again later."

  We were being counterjammed. That was very bad. It meant they had me at least partially localized. It also meant Atropos was directly involved. It would take her authority to seal access to a whole node or band of nodes. If she knew it was me…

  "Right. Melchior, Sidedoor. Execute." The goblin's eyes glazed over and a low hum emerged from his mouth. After a moment he spoke again. "Unable to open carrier wave connection. Access denied." In a more normal voice, he continued, "Sorry, Boss. It doesn't look good. I can't get in anywhere, and we only have about five more minutes."