Experiences of X-Plane

It all started when I picked up the then-most recent issue of Popular Science. It had an article about X-Plane, a flight sim. "Oh, yeah, cool. I've heard of that. I think I tried it in the 6.x days. Hmm, the article says that they're up to 7.x now... Maybe I'll give it another shot." I was at camp, and so I made a mental note to check it out when I got home. Weeks pass, and it's almost the end of the summer. I finally remember my mental note. I hit the X-Plane web site and download the demo, but to my dismay, it's only available for Windows and Mac OS. "Oh well, I have some time to kill -- maybe it'll work under WINE", I think to myself. WINE is the Windows emulator for Linux. It's not particularly compatible with most applications, but it's worth a shot -- maybe I'll get lucky.

After a few hours of tinkering with builds and development releases, I finally get X-Plane running. It's a pretty cool simulator. I figure it'll probably be worth it to document what I did, so that others can run X-Plane under Linux as well. Another couple hours burned up, and I have a script that I can run to repeatedly install X-Plane from scratch. I'm pretty pleased with myself -- it works well, it's almost entirely automated, and it's fast. During some testing, I decide to see what kind of a community is out there for this product. I took a look on some of the unofficial X-Plane sites, and I found that one of them had their own IRC -- Internet Relay Chat -- server that they all hung out on. I connect, and mention my accomplishment. Somebody jokingly tells me that I could probably get a free copy of X-Plane out of this if I call up Laminar.

Now, in the Popular Science article, the author mentioned that Austin (Austin Meyer, the author of X-Plane) had a, well, interesting style of doing business. He preferred to pay in terms of things that people want or need. As mentioned in the article, if a co-developer needs money to tide him over to the next "real" paycheck, Austin'll do it. Big release? New Powerbooks just might be in order. I figured that it was probably worth a shot to call up Laminar Research, just in case.

Laminar has another interesting quirk of business. Instead of trying to hide a phone number from people, they publish it on the X-Plane.com site. I listened intently through the options -- Bug report? Nah, not a bug report. Feature request? Nah, not that either... I already implemented it. I just wanna see if I can get something for it. Tech support? Nope. Anything else or to talk with Austin personally? Sure, that sounds like the option I'm after. A little bit of hesitation, and I choose the option on the menu. The phone rings four times, and then I get redirected to some sort of answering machine. "Ah well, as long as I'm here, I might as well leave a message", I think to myself. I leave a message asking for a call back, although in reality, I didn't expect one.

Imagine my surprise when 15 minutes later, the phone rings, with the caller ID reporting it as "South Carolina" -- home of Laminar Research. I pick it up, and sure enough, it's Austin, the author of X-Plane. He tells me that a script is all well and good, but what he's really interested in is a native port. He asks me if I know any C or C++, and whether I'm fluent with the OpenGL libraries. "Man, am I fluent? I just finished writing a little game in OpenGL... I know the APIs like the back of my hand...", I once again think to myself. I tell him that I am, indeed, very familiar with OpenGL. Out of the blue, he says something totally unexpected -- "Ok. I'll mail you the source for Airfoil-Maker, the simplest subapp of X-Plane we have. Some of the source is proprietary, don't share it. Please email me at austin@x-plane.com so I have your address."

"He's kidding?" I thought to myself. That was a dream come true. I was 14 years old, and I managed to talk myself into getting access to real, live, commercial code. Suddenly I felt like the coolest kid on the block. I excitedly agreed to his plan, and another half an hour later, I'd successfully gotten my hands on the code.

I'll spare you the boring details of implementation -- after all, these are experiences of X-Plane, not drudgeries of X-Plane. Instead, I'll skip to December 2004, when I finally got to meet Austin in person. He flew up here in his little Cirrus to stay with us for a week while getting the actual X-Plane port running. (He trusted me, but not enough to send me the source code for his entire livelihood.)

To be honest, I don't recall much of the time spent working on code. (I think that falls into the drudgeries of X-Plane category.) I do remember, however, getting the opportunity to fly in his airplane -- and even to take the controls for a few minutes. To me, that was the second most rewarding moments of this whole process -- getting to learn and experience something really cool and really new. I'd never flown in a small aircraft before, let alone taken the controls of one -- this was a seriously new experience.

However, that was only the second most rewarding moment. The most rewarding moment of the whole thing was watching X-Plane launch for the first time under Linux. That was it -- six months of work had finally come together. As I recall, it was on the night that Spirit landed on Mars. Austin and Ben Supnik (another developer who lives near here) were watching the TV when I abruptly spun the monitor around. I walked towards the TV, and we heard Spirit transmitted a tone. We all applauded, and in the midst, I pointed to my monitor, which was showing a plane sitting on the runway. In an ever-so-trite manner of speaking, that had to be one of the coolest days of my life.

So what's the moral of the story? What's the conclusion? I guess if I wanted to get technical, I could say that I learned to reach out and try things. But in reality, this might be like one of those stories that you hear on This American Life. It might not have a direct ending, but even still, it touches you in some way that you can't really comprehend. It surprises you and makes you laugh -- and you know it's over when there's no more to say.