Ben Supnik is X-Plane’s graphics lead and most seasoned developer. You might already know him from his writings on the X-Plane Developer site, but here we discuss the details of how he got started with X-Plane and more.
Question: Can you provide a little background on yourself? What was your first experience that got you into aviation or X-Plane?
Ben: I have been working for Laminar Research for over a decade, but my involvement with X-Plane dates all the way back to about the year 2000 and X-Plane 6.
In my past life I was a software engineer working on multimedia software, and for my job, I was flying between Boston and San Francisco for work. I started by trying to research air traffic control in Boston (to understand why my flights to SF always took that crazy hard left turn right after takeoff – turns out it’s a noise abatement route), and that brought me to VATSIM.
I became a virtual air traffic controller on VATSIM and (being a programmer by trade) wrote client software for the network. I went looking for a flight simulator so I could fly online too and discovered both Microsoft Flight Simulator 2000 and X-Plane 6. X-Plane 6 had great framerate and looked good on my Mac laptop, while my PC couldn’t really handle MSFS2k, and with that I was hooked on X-Plane.
My first interaction with Austin was when I tried to write a VATSIM client for X-Plane. At the time there was no plugin SDK, and no way to do local UDP, so I couldn’t complete the project. I emailed back and forth with Austin and one thing became clear: there were about a thousand of us asking Austin for changes and mods to X-Plane and only one of him.
(This is literal – at the time Austin was running the business, doing all of the coding, and providing tech support. Sergio was the only other developer involved, doing art-work part time while holding down a full-time day job. It is still amazing to me that the two of them put so much -stuff- into X-Plane 6 with so little resources.)
So instead of asking Austin for changes to get a VATSIM client working with X-Plane, I pitched something crazier: I’d create a complete plugin system for X-Plane; he’d just have to wire the system into X-Plane’s guts and I’d take care of the rest. From then on, third party developers wouldn’t have to queue in line to mod the sim – they’d have a plugin system they could use to accomplish all sorts of things.
Austin agreed to this, and I finally met him in person one year at the Apple World Wide Developer’s Conference. He was there for Laminar Research, and I was there for my employer; we sat down in the lobby of the Fairmont with our laptops and dumped the plugin code into X-Plane itself – it worked the first time! By this time Sandy Barbour was working with me on the plugin system – he was doing commercial software contracting by day and had offered to “take a look” when I put out an email asking for help on the Windows side of the plugin system. He got the entire thing working in less than two weeks.
So for a few years and a few X-Plane versions, I was a third party developer, working on XSquawkBox for VATSIM, maintaining the plugin system with Sandy, and using X-Plane. I had also gotten involved in the scenery generation process, mostly fixing bugs in the global scenery.
The big change came when I decided to quit my day job and become an air traffic controller. I left DigiDesign and enrolled in the Aviation Sciences program at Mt San Antonio community college – this was the nearest program approved by the FAA as part of theCTI (college training initiative) – the path for civilians without military ATC experience to become air traffic controllers.
Since the program was basically part time I made a pitch to Austin: hire me for a limited time as a contractor to go and fix some problems with the scenery system that I hadn’t been able to address in spare moments as a hobbiest. Up to this point, X-Plane had been a hobby; I figured if my goal was to really advance flight simulation I needed to apply more hours to the coding part of things.
The resulting work that I completed during school was the DSF file format that we are still using now and the first global scenery. When I graduated, it was clear that there was a lot more work to be done to get X-Plane 8 ready with the new scenery, and the FAA was horribly back-logged in employing people due to the increased post-911 security screening process. So I ended up working full time for Laminar Research. By the time the FAA called, I was already full time and made the decision to stick with flight simulation.
The aviation sciences training I got in school turned out to be useful – the course material included (among other things) the equivalent of ground school for a PPL and IFR ticket, as well as a bit about aviation safety and human factors, among other things. A lot of people working for LR have their pilots license; I came via the flight simulation route without being a real pilot first, so school was a bit of a crash course in things that are useful to know if you work on a flight simulator. I do hope to get my pilot’s license some day, but with two little kids and X-Plane it’s not going to be for a while.
What type of computer set up do you use?
Because I work on X-Plane’s graphics, I tend to have “one of each.” Right now my three computers are:
- An 8-core Mac Pro from 2008. This is my main machine and it’s pretty close to the end of it’s life. It’s a testament to what a monster this machine was in its day that I’m still using it as my primary development machine seven (!) years later. Right now there’s an AMD 4870 installed. It runs Snow Leopard and dual boots to Mavericks.
- A Haswell PC that boots to both Windows 7-64 and Linux (Ubuntu 12.04 LTS). It takes a full size gaming card, so I swap between a GeForce 680, an AMD Radeon HD 7900 and the built-in Intel HD motherboard graphics. It’s crucial to test X-Plane on all of these configurations, so I end up leaving the case open.
- A Mac retina-book laptop with an NV GPU, running Yosemite.
I have people ask me “what machine do YOU use” with the intent of getting the best machine for X-Plane, but my machines are picked for variety and an attempt to have one of everything, and definitely not to have the fastest hardware; I want hardware such that if X-Plane runs decently, it’ll be good for most users.
What’s the most exciting part of working on X-Plane for you?
My favorite part of working with X-Plane is seeing the graphics -after- the artists have had a chance to work with the code I write. There’s something I find very rewarding about creating a good rendering algorithm and then having it be pushed to the limit of what it can look like by good artwork. I’m lucky that we’ve been able to find top-tier artists.
Do you have a favorite aircraft to fly, or a favorite location?
I like to fly around the Boston area (i.e. my home area in real life); when I had more time to fly online and take real flights, I flew a mix of the King Air and the x737 (a much earlier version). The King Air is a great plane for short hops like from Boston to Cape Cod and Martha’s Vinyard – it’s a flight that can be flown with steam gauges or VFR and it’s short enough to fly one or two complete hops in real time in an evening.
Do you have a favorite plug in or add on?
Not right now – unfortunately as X-Plane has grown I really don’t get time to use the product as much as I used to. Every now and then I’ll take a real flight and be reminded of what X-Plane really is after weeks of viewing it in various debug modes.
During the X-Plane 10 run I got to know both Javier Rollon’s CRJ200 and JAR Design’s A320 Neo, and it was cool to dig into fully functional airliners; that kind of detail wasn’t possible in X-Plane 6. Austin would cringe to hear me say this, but I found the A320 Neo’s fly-by-wire simulation really entertaining. I’m a lousy pilot with stick & rudder but the A320 just goes where you tell it.