Often times, in my spare moments, say, on a plane to spy on Bungie's secret nudist retreat in New Zealand, I read the Marathon Scrapbook to get a feel for what Bungie was like in the poor ole golden days. This is also where I get my ideas about which ex-Bungie I should next stalk. Unfortunately, ex-Bungie employees are getting harder and harder to come by - probably due to the overwhelming shame of not being associated with them. Frustrated, one day I threw the Scrapbook away from me and tripped, striking my head against the Bungie #1 Fan trophy I had stolen. When I came to, a passage from the Scrapbook came to mind:
Alain Roy wrote Marathon's Byzantine networking code and received a Quadra 660av as compensation.
"What kind of fool would get paid with a Quadra 660av for working on the worlds most influential game?" I wondered aloud. At that precise moment my maid, Miguelita, chose to remind me that the same time Alain got that computer, I was using a Macintosh LC with that weird 65 DPI screen. Point taken.
Still, with the thought of Alain Roy firmly planted in my mind, I resolved to track him down. I pulled out my trusty web browser and prepared to take a great risk. It had been said that some men have died doing this, but I thought it was worth it. With my forehead beading sweat, I typed "Alain Roy" in Google and fatefully hit the enter key. As luck would have it, I didn't die and I breathed a sigh of relief. Also, my hard work had paid off, his homepage was at the top of the results. He shoots! He scores!
A quick plane trip to Wisconsin and I found Alain in the computing room of the University of Wisconsin-Madison. He was wearing a blue satin wizard's robe, complete with pointy hat. Although he was busy turning graduate students into rabbits, I interrupted him.
Alain, in the Marathon Scapbook it says you got a Quadra 660av...
I received the Quadra 660av as compensation for doing the port of Pathways Into Darkness to the PowerPC. I received small amounts of money for working on Marathon, and at some point after that I received a PowerMac 7200 as a bonus.
Agh! That Hamish! Another error found in his Scrapbook! Excuse me, I heard that Bungie hired you because you fiddled with Pathways.
One of the reasons I was hired to work on Marathon was because I broke the initial copy protection on Pathways Into Darkness. And maybe because I could write "300:A9 41 20 ED FD 60" without looking anything up.
What it was like when Bungie was beginning Marathon development?
I was at Bungie in the summer of 1994. There were just a few people at that time: Jason, Alex, Ryan, Reg, Doug, Greg ( sometimes), and me. Tuncer Deniz used to stop by sometimes, but he was at Inside Mac Games at that time. Bungie was in the middle of Marathon's development. They had just recently moved into their offices in Pilsen, a neighborhood in the near south side of Chicago. Jason and I lived both in Hyde Park, so he would pick me up in the mid-morning and we'd work until midnight or so. I was usually wiped out by 11:00pm. After a couple of weeks, I refused to work on Sundays, like Jason and Ryan, so I could preserve my sanity.
When I first joined, Marathon looked a lot like Pathways Into Darkness. Doom came out (a beta?), and after some discussion Marathon was reworked to be much cooler. For instance, walls didn't have to be at ninety degree angles. It slowed things down, but it was worthwhile.
I was the bottom-rung programmer, so I didn't work on the sexy graphics or sound. I worked on the code that let you do replays and demos, a lot of the user interface, networking, profiling, and more.
I remember one time that Jason told me I should profile the code, so that we could see where we were spending a lot of time. Maybe we could tweak the graphics code and get an extra .5 fps before the next demo. I spent a while profiling the code, and it turned out that we were spending 30% of our time in some little utility function that wasn't drawing graphics, making sound, or doing monster AI - it updated elevators or something like that. Jason didn't believe it, so I double-checked everything. Sure enough, 30% in that little function. We fixed that, and the game got one or two frames per second faster. Lesson: profile your code before you optimize it.
Once the networking code started to work, we had a lot of evening games. The network games were tested a lot. I usually lost. I'm lousy at video games, as much as I like them.
Sometimes, Jason and I would hang out in a park. He had a laptop, and would work on his latest changes to the rendering code while I relaxed in the sun.
I remember Ryan trying to debug some of the rendering code and failing. Jason made a new mode for the code, so that it displayed details of what it was doing on the screen. He debugged it in a day. This was a huge lesson for me: spending time building tools can save you time in the long run, and get you better results.
Was there something in the game that you liked, but didn't make it?
When the engine was improved to be non-orthogonal, like Doom, the doors got a lot less cool. The old doors had cooler lighting and shadows and had more variety of shapes.
Interesting. Besides development, what was Bungie like?
La Cucina's gorditas and burritos with their green sauce were consumed endlessly. I still miss their gorditas. I still remember the awesome food at Nick's Fishmarket and the whole dead cow carcasses at Lawry's. Wow.
People got fired a lot. "You checked in code that doesn't build? You're fired." We gave people a piece of PVC tubing when they got the shaft.
Really?!? I hadn't heard that! About how many people were fired while you were there? So Alex and Jason were vicious taskmasters after all? I knew it!
That was a joke.
You know, I would do something slightly stupid, like some stupid bug. Jason would tell me I was fired, and I give him the finger and keep on working. Same with "the shaft" - definitely a joke.
Hmm. So they were sweethearts after all? Damn! I was looking for dirt...
I got along with Alex just fine. I had nothing but good relations with Jason. We were always very friendly and he treated me well. When I wasn't at Bungie, I rarely heard from him, but he also worked insane hours. In my experience, Jason is one of the most brilliant and creative people I have ever met, and I've meet some great people. He wrote brilliant code while developing a great storyline. Not many people can do that. Heck, he did at least half the artwork for Pathways in addition to the story and all of the code.
Back to you. What happened after Marathon?
I did do some consulting work for Marathon 2 and Myth, but I was barely in touch with anyone other than Jason, and didn't hang around much. Other than the Christmas parties, and that doesn't give much insight into things.
When I was at Bungie, the web was only just beginning. I remember telling Alex that Bungie should have a web site. It was only 1994, and he was unconvinced. They had an AOL presence, after all. Not long after I left, he must gave gotten it, and they got a web page.
Rats. I was hoping you had some idea who the Bungie Webmaster was. Oh well. Now that I think of it, there is another Bungie mystery I wonder about; a game called Odyssey. Do you know anything about it?
After making Minotaur, Jason started on another similar game with a top down view. He stopped it and made Pathways instead. Richard Rouse inherited the code and made Odyssey. Odyssey was a pretty cool game, though the graphics weren't fancy. It never sold many copies, I don't think. I wrote about 20 lines of code for Odyssey though. It was an LDEF, to make a list look nicer.
Ah, one of the rare Marathon 2 ports! Yes, Marathon has turned into the Game That Wouldn't Die. Have you seen Aleph One?
I haven't seen it in a couple of years. I was impressed by the amount of time and effort that people put into it.
Are you surprised that there are a fair number of people out there keeping Marathon alive?
Given the wide variety of things that people do, I am completely unsurprised. It's pleasing that people are keeping it alive. We don't always need the latest game to have fun. Heck, I play cribbage, which has been around for 400 years.
Condor is a specialized workload management system for compute-intensive jobs. Like other full-featured batch systems, Condor provides a job queueing mechanism, scheduling policy, priority scheme, resource monitoring, and resource management. Users submit their serial or parallel jobs to Condor, Condor places them into a queue, chooses when and where to run the jobs based upon a policy, carefully monitors their progress, and ultimately informs the user upon completion.
While providing functionality similar to that of a more traditional batch queueing system, Condor's novel architecture allows it to succeed in areas where traditional scheduling systems fail. Condor can be used to manage a cluster of dedicated compute nodes. In addition, unique mechanisms enable Condor to effectively harness wasted CPU power from otherwise idle desktop workstations.
-- Condor Info
Now you have moved to bigger computing issues - from Marathon network code to large scale networks of computers, namely, the University of Wisconsin-Madison Condor Project. On a philosophical level, is writing Marathon network code and architecting a distributed computing methodology related?
I think that we can consistently will both of these activities, so according to Kant's categorical imperative of morality, they are both moral actions. If I understand it correctly, which I probably don't.
It's an interesting question. In some ways, they are very similar, in other ways, they are totally different.
One thing that we care about in the Condor project is making reliable programs. Reliable algorithms (two-phase commit, persistent job queues...) and reliable code. When writing the Marathon networking code, we cared a great deal about making it work reliably. In both projects, there was a feeling that we had to do things correctly, and as well as we could. In that way, they are similar.
Marathon was a very tightly constrained environment that didn't rely on a lot of other software. A great deal of the grid computing efforts these days fewer constraints on the environment and have a larger number of dependencies. MOP relies on Condor-G, which relies on Globus, which relies on a batch system, which relies on an operating system... Life is way more complicated in grid computing than it was in the Marathon networking code.
Sony has announced that the PlayStation 3 will use grid computing technology to make online games more responsive. Do you think this is the way to go for multiplayer games?
I've read some of the announcements for that, and I was confused by them. As far as I can tell, they're going to use OGSA (web services on steroids) for communication between some of the components. Is it between individual playstations? Between servers hosting the games? Part of the problem is that there are as many definitions of "grid computing" as there are grid computing researchers. I suspect that Sony is really saying, "we're using an open protocol to communicate between playstations". Maybe I'm just cynical though.
Can you foresee any gaming applications for Condor?
Not directly. Condor is aimed as doing high-throughput computing: there is no focus on high-performance or low latency. That is, if you have a lot of long running jobs to run, we will run them reliably for a long time. We won't get the same peak performance that you can get for short bursts of time on a highly tuned cluster, but we will also get the work done reliably, which matters more in the long run.
Here's my favorite Condor story. Shortly after I was hired in 2001, I heard about some people that had just set up a cluster. They installed Condor on it and submitted hundreds of jobs. But the cluster was still unreliable, so they spent the next several days fixing nodes, fixing networks, etc. One day, they got email from Condor saying, "your jobs have finished", and they were flabbergasted. No, we didn't get high performance, but many systems wouldn't have finished the jobs at all, so we got high-throughput.
Condor is cool, and I love games. But I don't see a direct link between the two, at least at runtime. It can be very useful if you have lots of advance computation to do. For instance, at least one special effects studio uses Condor to control rendering on their cluster. An artist says, "render this", and Condor makes sure it gets done. That sort of usage is probably the way that Condor would be the most useful to a game.
I can't help but wonder what it would have been like if all the non-playing people in, say, the Myth chatrooms gave up a smidgen of computing power for those they were actually playing the game.
That may be, but Condor wouldn't be the right way to do it. Given Myth's dependence on fairly low latency, I have a hard time imagining relying on extra computing power that may come or go at any moment, may provide high latency answers, and adds extra complexity to the code. That said, there may be some cool ideas in there.
Alain, thanks! This has been very interesting. By the way, I hear you are you are also an amateur magician. Seen any good ticks lately?
I recently saw a DVD of Rene Lavand, a magician who does fantastic card sleight of hand with just one hand. If anyone did what he does with two hands, it would be beautiful, poetic, and impressive, but he does it with one hand. Arturo Ascanio said, "The most amazing thing about Rene Lavand is that the most amazing thing about Rene Lavand is NOT that he has only one hand." And he's right.
I would have asked more questions but Alain waved his wand and disappeared with a flash accompanied by the sound of a 1200 baud modem. I presumed the interview was at an end. I wished he would have teleported me back home. When I got back on the plane to go home I began flipping through my dog-eared copy of the Marathon Scrapbook. Perhaps I could find Ryan Martell? Last I heard, he was somewhere in the Caribbean pretending to be a pirate.