Выбрать главу

Figures moved across the screen like ants, west along the interstate or north into the mountains. Digby zoomed in with his joystick, explaining some hardware glitch to Meredith and Jerzy. The figures moving on the screen were boxy and stiff-legged, with flat immobile faces. Some were human, paying customers; some were simulated humans, software bots, the helpers and the holy men, the monsters in hunt mode. The helper bots acted as guides, innkeepers, rent-a-cop bodyguards, roadside pop-up merchants selling the necessities: food, water, armor, weaponry. The holy men, the wizard monks and holy village fools, posed rhyming riddles, seven in a cycle refreshed weekly, leading players to shrines and oracles. There were initially nine shrines hidden in the desert, three branded, six generic, later upgraded to twenty-three.

When Jens came here the first time, the game was in design and the screens were still in packing crates. Over the next few months, Jens and Vaughn Naubek, another coder, wrote the logic kernel, the software brain and navigation tools for the helper bots, working with specs from the head creative, BigIf’s chief imagineer. Head demanded wizards and sent Jens a sketch of a Tolkienish creation like Walt Whitman only not as macho. The drawing had been done by Phoebe Rosenthal, the artist on the payroll (a painter of real talent, who doodled bots to support her serious work). Jens and Vaughn Naubek took the fey Walt Whitman and built a brain, a hundred lines of source and ten function calls, a good, tight piece of problem-solving, well within the memory budget for the bot. The wizards were programmed to stay in one place, a plot in the Cartesian X, Y, Z, until addressed by a human player, then nod and move toward their assigned shrine. The wizards scanned every third human second for any player within five distance tiles. If a wizard found no humans in his scan, he returned to his starting tile and waited for the next scheduled scan and the next customer. In a person, say in Walter, this pattern of behavior might be described in moral terms (stoic, faithful, dutiful), but in Jens’ system it was algorithmic: new plot X2, Y2 equals X plus one, Y plus one, and the bot is driven to the virtual northeast. Algorithms were, as Walter had said, relentlessly amoraclass="underline" the wizards scanned and moved because they were programmed to, and for no other reason.

Jens and Naubek wrote the wizard prototype together in a day and were moving to the fools when Meredith, who led all game development, pulled Jens off to work on monsters for the head creative, whose taste in chilling evil ran to conscious parody, giant hamsters, mankilling cats, and seeing eye dogs with a yen for human flesh, hunting with their handles still on their backs, a vision of suburbia gone rabid, the house pets in rebellion.

The first monster (Jens’ design with Naubek’s help) was the cunning, grinning, barrel-chested rodent biped Hamsterman, who became the game’s first breakout star. Kids in malls on five continents wore Hamsterman t-shirts, Hamsterman high-tops, chewed Hamsterman bubble gum. Hamsterman’s trademark taunt, Majorca! (delivered just before he sank his fangs into your carotid), became an empty catch-phrase in a dozen countries, the sort of thing everyone is saying for a week, like Hasta la vista! or Cowaybunga! Later monsters — Skitz the toxin-spitting cat and Farty Pup, that gassy nemesis — were almost as successful. Each monster class had its assigned strength scores and special weapons, peculiar to the version. Hamsterman 1.0 had fangs and claws; 1.2 had fangs, claws, sulphuric urine (the players loved it); the H2 series, 2.3, 2.4, 2.5, and the beloved 2.9, had fangs, claws, urine, throwing stars, crunchy eye scum, a Lance of Power, and a Colt submachine pistol, a model called the Sportster, with realistic kick-and-impact physics. Colt, of course, paid a whopping fee for the product placement, and again the players loved it. Skitz the Cat had claws and fangs, flesh-eating spit, later a machete and a souped-up butane lighter (a Bic until the litigation). Farty Pup had fangs, claws, gales of flatulence, flaming ear wax, a willingness to hump you, a pair of Sony PC speakers, a Cub Cadet four-wheel-drive snowblower, a Minolta office copier, a Yamaha Disklavier GranTouch piano, and a Sealy Posturepedic mattress. The latter products served no fighting purpose; they were just around.

Some monsters barred the path to certain prized locations where scarce water or power scrolls or healing appliances could be won by answering riddles, or performing quests, or by participating in member bonus-mile programs. That was later, when Jerzy put them in alliance with Visa, Sprint, the airlines, and a thousand select vendors worldwide. A human could buy a trip to Paris, real Paris in real life, earn a hundred thousand miles, transfer these as credit to the BigIf servers, travel with a holy fool deep into the Rockies, meet an oracle and cash the miles in for an amulet which gave the player added strength to fight and kill Hamsterman, Skitz the Cat, Farty Pup, or the dreaded Seeing Eye, doubling the points or better — Seeing Eye was a triple trophy kill. Other monsters roamed the roads, attacking any non-bot within a set radius, providing danger and a thrill, thinning out the weaker players, reducing server load and lag time at the modem farm.

The code behind the game provided many ways to die. A human gang could murder you. A monster could eat you. Toxic clouds drifted through the sky; the gamespace went dark beneath them, the shadow calculators taking over. The clouds were born at random intervals but moved pursuant to actual Weather Service models for the American southwest — Jens’ touch, and he was proud of it. Some players who had killed monsters (or solved riddles, or completed quests, or cashed in their minute-miles) acquired power manuscripts and could predict the progress of these toxic clouds and sell predictions to newer players. If you were caught outside when a cloud passed over, the servers deducted life points until your score was zero, the binary OFF-OFF-OFF-OFF, and this was death. If you went without water or food, or lost a fight, or were duped into the bush by a false bot, life points were deducted. If you spent a night in the desert, the servers ran a hypothermia algorithm which rendered you slower and clumsier and finally immobile, as real exposure would, until you zeroed out. Life, wisdom, speed, strength, agility, time, fate, magic, beauty, death — everything was numbers crunched through algorithms endlessly.

My algorithms, Jens thought in the balcony, mine and Naubek’s. Jens’ code was made of IF-switches and WHILE-loops, of flow and flow-control structures. Tell the system: test for Z, a data state. IF Z is true, do something; IF Z is false, do nothing or do something else. A program runs from START to END, branching, forking, coursing forward in its runtime, or down a screen of source (down being after because we read that way). The program branches at the IF from the main run to a subroutine in memory or lying idle elsewhere in the shell. The subroutines were small programs, or big ones, often bigger than the main itself, containing their own control-of-flow conditionals, IFs and ELSEs and WHILE-loops (do this WHILE Z is true; when Z turns false, desist), their own forks into other subroutines or sub-subroutines, and each subsubsub was a set of definitions (let Z equal P), a battery of tests (for Z or P, for true or false), a maze of logic gates. A trip through the maze was called a thread of execution or an execution path. Take one line of code, a single logic gate, yes/no. There are two (or 21), potential threads, yes or no, that’s it. Add a gate, yes/no yes/no. Now there are 22 possibilities (or four), yes-yes, yes-no, no-yes, no-no. Add a third and there were eight ways though the maze. Add one more, there were sixteen. Twenty gates, in theory, let’s say a hundred lines, an easy module (an hour’s worth of work for Jens when he was working well), produced more than a million possibilities. Software was responsive, supple, thoughtlike, powerful to the extent that it could branch and pick a path in response to shifting data states, switching at the IFs, falling always toward the engineer’s intended END, yet every fork was a menace to control, a potential bug and fatal logic bomb. A single slip in syntax, a semicolon missing from eighteen million lines, could send the system brute-computing to its crash, so power becomes doubt, Jens thought, which was also thoughtlike. He had built this game, written it, the IFs and potential threads. He was certain of its beauty. When Walter judged him, when Vi criticized with her scanning eyes, Jens knew they couldn’t see the beauty of the IFs.