The Impossible Fortress(19)
She leaned into the screen, studying all of the finer details. “God, I wish I could draw like this. Her outfit is perfect. You even put a tassel on her hat!”
I couldn’t believe she’d noticed. To research that outfit, I’d spent an entire hour browsing encyclopedias at the library, studying portraits of princesses all over Europe until I found just the right hat. It was called a hennin, and it looked like a giant pointy cone.
“Keep watching,” I told her. “This is where it all breaks down.”
The game began and the brave hero began his quest at the base of a mountain, while ogre guards swarmed all around him. The object was to guide the hero up the mountain, but everything moved in agonizingly slow motion. The characters looked like they were flailing about in zero gravity, a Super Bowl instant replay that never ended.
Suddenly I wanted to get as far from Mary as I could. I felt dumb for trying and even dumber for sharing. Planet Will Software! What the hell was I thinking?
But Mary didn’t look disappointed. If anything, she seemed more engaged, like I’d presented her with a problem worth solving. She hit RUN/STOP and typed LIST, and all of my code spilled down the screen. Mary skimmed the lines, nodding as she went along, not reading but skillfully assessing the overall structure, the way a mechanic might circle an automobile, inspecting the surface and kicking the tires before diving under the hood.
For ten minutes she didn’t speak. She read and reread the program, one subroutine at a time, mumbling to herself and occasionally jotting notes on a scrap of graph paper. She never asked me a single question; she didn’t need to. Sometimes she’d exclaim “Hmph” and I’d lean forward to see what she was hmph-ing about, but she was always moving ahead to the next loop. There was nothing for me to do except sit back and wait.
The speakers in the ceiling went from Hall and Oates to Glenn Medeiros to Howard Jones, and then there was a station break for 103.5 WLOV, “Radio’s Home to All Your Favorite ’80s Love Songs.” It was my mother’s favorite station; me and Alf and Clark referred to it as “Home to Ten Crappy Songs in a Row.” Bruce Hornsby started whining about “The Way It Is,” and Mary leaned back in her chair.
“Sorry about the music,” she said. “My father insists on it.”
I realized this was a polite attempt to turn the conversation away from the game. “I told you it sucked.”
“You weren’t kidding.” She restarted the game and guided the hero across the screen, groaning as she prodded him forward. “You could torture prisoners with this game. Strap them to machines and force them to play for hours. I’ve had more fun playing spreadsheets.”
I forced myself to laugh, but it came out like a whimper. See, I knew the game was horrible. It was unplayable. It was awful! But even with its flaws, this horrible, unplayable, awful game was actually the best game I’d ever made.
“You want to know the worst part?” Mary asked.
I couldn’t believe it. There was more? There was worst?
“The worst part is, your code’s perfect. There’s not a single wasted command. Every line is packed. And the way you toggle sprites to animate the guards? That’s fantastic. I love it.”
And there it was. After fourteen years of fumbling footballs and missing baskets and striking out, after fourteen years of miserable grades and bad rhythm and terrible fashion choices, after fourteen years of being me, I wasn’t used to compliments. My face burned bright red. I couldn’t help myself. I wanted to freeze time and linger over her exact phrasing: Perfect.
Fantastic.
I love it.
“Your only problem is speed,” she continued. “You need to rewrite this game in machine language.”
I laughed. She had to be joking. Machine language (ML) was the computer’s natural language—a hundred times faster than BASIC, so fast that programmers often built artificial delays into their games to keep the action from looping too quickly. But ML was famously difficult to learn. I’d studied passages in books and magazines, but the syntax was too cryptic, too complicated. BASIC used English words like PRINT and NEXT, but machine language used complicated acronyms: ADC, CLC, SBC, TSX. Numbers were inputted in hexadecimal format, so 11 looked like 0B and 144 looked like 90. There was nothing intuitive or natural about the language; it demanded the user to think and communicate like a machine.
“You know ML?” I asked Mary.
She shrugged. “I’ve always wanted to learn.”
“The deadline’s next Friday,” I reminded her. “I can’t learn ML in twelve days.”
Mary LISTed the program again, letting the lines cascade down the screen until she reached the loop that moved the seven ogre guards. Then she tapped the screen with her pencil. “This is the slowest part of the program. These fifty lines where you move all the guards. What if you wrote this part in ML? Not the whole game but just this tiny section?”
I don’t know where she got her confidence. It was like saying, “We don’t need to learn all of Mandarin Chinese. We just need to learn enough to translate the Gettysburg Address.” Mary seemed to believe that anything was possible if we were only willing to try.
“You’re crazy,” I told her. “I’m not that good.”
“I’ll help you,” she said. “We can work here after school. And when you win the PS/2—”