X-Developer Cross-platform development in C++, Flight Simulation

28Feb/13Off

How I met your X-Plane

My first encounter of the third kind (2005)

I first learned about X-Plane back in 2005 when a friend of my parents' wanted some help setting up a flight sim on his computer. I had been into PCs and MS Flightsimulator since about 1995 or so. My older brother had installed FS4 on our family 386 we were using at that time. I spend about the next ten years following FS through its incarnations up to "2004 - A Century of Flight". FS was for most of the time the only game installed on my computer with the notable exception of Silent Hunter, a WWII submarine simulation (seems I'm into vehicles that can move in 3 dimensions!).
So for this guy, Fernando, in 2005 it was only natural to ask the computer and flightsim geek kid for help setting up a decent flightsim on his machine. The only problem: he was on a Mac. He ran a little marketing design agency and so it was no wonder he was running exclusively Macintosh. So I did my research on the Internet (2005 was the year youtube was first launched. Internet with 2MBit/s was considered fast.) and found that there was this software called X-Plane 7 that would also run on a Mac. So I instructed him to order a copy of X-Plane at Application Systems Heidelberg, who was the German distributor of X-Plane at that time, and I promised to help him setting it up, though I had absolutely not the faintest idea how that sim worked. Moreover, I had never worked on Mac before. It felt so awkward, the mouse had only one button, and no program had a menu bar, instead there was this ugly menu bar on the top. I couldn't understand how someone would rather use this strange system then the rock-solid windows XP. So I limped my way through the installer and thought the joystick setup, and finally got this thing to fly. Flying the Cessna that came with it was fun and I recall that I was rather impressed by the different "feel" X-Plane provided compared to FS. However, X-Plane still proved to be no alternative for a die-hard FS user like me, with the Flight One ATR being my favorite airplane at that time. By the next year, X-Plane 8 was out and I decided to give it a try, of course I'd run it on windows.

X-Plane 8 (2006)

I got X-Plane 8 for my 19th birthday and started exploring. There was no global scenery as we know it, so the whole X-Plane world was considerably more boring than it is now. I still couldn't be convinced to switch. The Leonardo Maddog 2006 was my favorite aircraft in FS9 then and there was nothing even remotely comparable on X-Plane 8. So I spend probably a couple of hours having fun with X-Plane special aircraft, like the V-22 Osprey, because those things didn't exist in FS9. But it got boring after a few hours, so I de-installed it and never looked at it again.

The vasFMC years (2008-2010)

Since 2005 I'm a regular visitor of the local flightsim usergroup in Frankfurt. Well, it's not a usergroup, but a "Stammtisch", which means guys interested in flight simulation meet once a month to have a beer and talk about flightsim stuff.
It was in December 2007 when a guy I knew from this user group approached me because he knew that I was able to program in Qt. He said he needed a GUI to emulate a 737 MCP, and that software was to run on Mac. See a pattern here? So I agreed to take a look at it since I'd been using Qt on Linux for quite some time, and I assumed a Mac can't be that different from Linux, since it's after all a Unix running underneath it. The guy with the Mac and the MCP was Jörg Hermann, he was an avid X-Plane and VATSIM user. About a week later he said "have you seen this cool software called vasFMC? It's a real FMC and it is written in Qt. Can you make it run on my Mac?". And that's how the whole thing started. We became part of the vasFMC team and started porting it to Mac and Linux. I wrote my first X-Plane plugin to connect vasFMC to X-Plane. The rest is history - I dug myself deeper into plugin programming than few other people before.
Unfortunately, Alex Wemmer, founder and leader of vasFMC, lost interest in the project and shut it down early in 2011.

The CRJ year (2011)

I had first heard about the CRJ back in 2009 when Javier first announced it. I was looking forward to it very much since I wistfully remembered my beloved Leonard Maddog and wanted an aircraft on that level for X-Plane desperately. So I always thought "when this thing comes out, I'll be the first one to buy it!". As we all know now, things turned out differently. While I was finishing up work on vasFMC 2.10, the last version to be released, Javier posted the message on the X-Pilot forum telling everyone the project was scrapped. I was so sad to read about this - I had hoped for a decent aircraft in vain. Now at the same time I thought perhaps I could solve this problem myself. Instead of whining because I can't have a decent aircraft I should just create one myself! With the two years of vasFMC experience behind me I thought I could probably do it. So I teamed up with Javier, in greatest secrecy, almost no one knew about the project not being scrapped but instead being worked on. Boy, that was one hell of a ride! The amount of duct-tape I had to come up with to finish the CRJ and hold all the parts together was insane. In fact, when CRJ 1.0 came out, it was held together by hot glue and duct tape and immediately fell apart when the first user touched it. So came the updates 1.1, 1.2, 1.3, but it wasn't until 1.4 that I had finally replaced all the old duct-taped code with something that actually worked well.

The 777 year (2012)

During CRJ development I had learned a lot. About FMCs, simulating avionics, the quirks of X-Plane, how to integrate my stuff with a designer, how to talk to the X-Plane folks in case I encountered trouble. I think I made myself quite of a name with the rescue of the CRJ, so it was only natural that after CRJ several designers started approaching me with new proposals. Javier decided to make the Jetstream, which doesn't have an FMC or other complicated avionics, so I was free to take up work on another seemingly abandoned project, the 777 by Roman. Roman had contacted me before the 2012 Aerosoft conference and we figured out the details of how we work together during March. Work started on the 777 in April, and with all the CRJ knowledge in the background I was able to come up with some nice features, like a full ARINC 424 compliant navdatabase. The 777 was released in September 2012. And it was not nearly as a disaster bug-feast as CRJ 1.0. The 777 has about 5 times more code running the FMC and autopilot than the CRJ. The only reason it didn't come out with 5 times more bugs was the incredibly intensive beta test we were running behind the scenes in August.

2013 - Laminar and the future

In February 2013 I now started to work for Laminar Research to improve various aspects of X-Plane itself. It is great honor for me to to work on the worlds' best flightsim software myself now. And it is fun to see all the plugin API functions from the other side of the wormhole now, which leads to a better understanding of how plugins work. So I'm not done with X-Plane plugins, I now have an even better way to look at them. Stay tuned for more great things to happen!

  • del.icio.us
  • Digg
  • Facebook
  • Reddit
  • RSS
  • Twitter
  • Add to favorites
  • email
  • HackerNews
  • LinkedIn
  • Slashdot
Tagged as: Comments Off
16Aug/11Off

Whether to sell on X-Plane.org or X-Aviation (UPDATED!)

As a developer who sells his product on both platforms, I want to give other devs insight on the pros and cons of each platform. Don't expect a definite "winner" or a special recommendation for you, I'm just sharing my personal experience and thoughts here.

Own website vs established shop

First, let's talk about using one of these platforms in the first place. As a newcomer, using a renowned shop platform is a must. You may think your product is good enough to be sold through your personal website only, you can do marketing and advertisement yourself, and you are trustworthy enough so people send you money.
Trust me, you are most certainly wrong!
Buying immaterial things like software online relies on trust, perhaps even more than buying things in real life.
For the customer, buying on your personal website with Paypal button is like buying a used car from "Honest Achmed" in a shabby backyard, whereas buying on X-Aviation or X-Plane.org is more like going into a big Mercedes-Benz showroom and being served by a besuited official.

Sure, people like Peter Hager may be successful selling their planes through their own website, but few people in our community have earned the trust that every product of theirs is top-notch quality.
So, unless you have a track record like Peter, you should rely on the trust that people have in the big online shops, with the thousands of customers already, various payment methods, buzzing support forums, and the strong feeling that you actually get something for your money.

Now that we have decided we must sell through an established selling platform, being X-Plane developers, our choice boils down to the above mentioned "Big Two".

Shop websites

First, the similarities: Both offer a top-notch e-commerce system with product categories, preview pages, shopping cart/checkout, customer database, the whole enchilada. Both offer your customers the option to checkout either with credit card or Paypal.
Considering the overall visual appearance, the X-Aviation shop website wins. It looks tidier and more "Web 2.0"-like with the customer reviews built in. Also the graphics look sleek and modern, the animation is smooth and unobtrusive.
X-Plane.org on the other hand is more like Amazon or the classic GMail. Rather basic in the visual appearance, but well structured and clear. The icons look a bit 1999 though.

Support forums

Also, both offer hosting the support forum for your product - here X-Plane.org is the clear winner. The "Invision Power" forum software they use is simply great. The moderation options are very intuitive to use. Posting multiple attachments and graphics is done easily. The search function is a bit strange though, as you have to be proficient in using the advanced search options to get good results. The quick search tries to be smart but fails often. Another big plus of the IPBoard software is the mobile version. Browsing the X-Plane.org forums on your IPhone or Android is a great experience and feels like a native app. Browsing the X-Pilot.com forums on a mobile device is a pain, as you are constantly scrolling right and left.
The X-Aviation support forum (X-Pilot.com) is a rather simple forum software that is also less intuitive to moderate.

Update 2011-08-25: X-Aviation also uses IPBoard now, which is a huge step forward in usability of their online community. It is a newer software version than the one X-Plane.org uses. However, I've not yet got my moderator rights back which got lost in the migration process. So I can't comment on the moderation options of the latest IPBoard software. The mobile version however doesn't work at all for me. I tapped the link "mobile version" several times, but still get the standard layout on my Android. I heard from IPhone users that it works great there. I messed up more than one support thread when trying to split parallel discussions in a topic apart and literally spent half an hour getting a thread back together.
A big plus for X-Aviation though is that given their smaller portfolio they are able to provide support themselves, as they know all the products they sell a lot better than it would be possible for X-Plane.org with a total of 435 products at the time of writing.
I have complete confidence that when I'm unable to check the forum myself for a few days, Cameron will take care of all the obvious newbie questions, answer all installation-related issues and leave only the really hard-core questions for me to answer. That is something I can't and won't expect from the X-Plane.org store.

So much for the visible, the "customer" side. On the developer side there are huge differences.

Distribution System and Reporting Software

To put it in one sentence: X-Aviation offers a whole distribution system, X-Plane.org offers only a shop.
Part of the excellent distribution system of X-Aviation is a GTK-based wrapper/installer that works the same on Windows, Linux and Mac. It is very user-friendly and goes hand-in-hand with the activation/copy-protection system. I know very little about the technical details, but I know for sure that this system has an unprecedented track record - I have not been able to find a working copy of one of the X-Aviation bestsellers on any of the usual suspect websites. Sure, every system can be broken, but I think X-Aviation set the bar very high on this. If anything can be improved in the installer, then it would be a detection for the folder the user selected. If it tested for the presence of X-Plane.app or X-Plane.exe to make sure the user selected the X-Plane main folder, it would score 100% on my personal scale. So it's only 99%.
Getting all this to work requieres you only to link a ludicrously small static library to your plugin code. This static library is available for all platforms with the gcc compiler, and now -because of my demand- for Windows also with the MS Visual C++ 9.0 compiler.
When sales begin, you can watch them live on the X-Aviation reporting system. The reporting screen is very intuitive and clear, you get the overview over the total sales and earnings on each day, summaries for each month, and a fancy little graph plotting your sales over time, which is extremely helpful if you want to see the impact of marketing like a paper advert. X-Aviation pays out every two weeks, and you may choose to be wired the money to your bank account or to use PayPal.

Compared to that, the X-Plane.org store is rather basic. It's more or less a way you can sell files. They don't provide an installer, a distribution system, or any means of activation or copy-protection. For many X-Plane products this is sufficient, as the typical X-Plane aircraft consists of a single folder you drop into one of the Aircraft/ subdirectories, and you're done. But as soon as you have to distribute other stuff, like the AIRAC data or additional frameworks your plugin requires, giving only a .zip-file to your customers is no longer an option. I resorted to using InnoSetup on Windows and InstallJammer on Linux. Both are very good solutions, easy to configure and the installers look instantly familiar to Windows users. The InstallJammer wizard panes are based on Tcl/Tk and try to resemble Windows Installer, which looks a bit awkward on Linux. For Mac I use Apple Package Maker, which is a huge pain in the ### to configure. Dear Apple, aren't you the company claiming to have the most intuitive UIs? Then go back to the drawing boards with Package Maker, will you?!
Also, it is left up to you, the developer, to think of a way to protect your software against piracy. The X-Plane.org shop offers a system to distribute serial numbers with each purchase though. You can provide a list of pre-computed serial numbers to the shop, that are sequentially issued with the purchases.
The reporting system of the X-Plane.org store also offers a live view and a month-summary, but it lacks many of the nice computations the X-Aviation system does for you, like the earnings-per-month and the neat graph.
You may also choose to be notified of each single order via e-mail. Which I diverted to a separate account, because it totally clutters up my workflow. Payout is at the beginning of each month, preferred payout method is also PayPal.

User base and marketing

Now on to marketing. First thing to note is that X-Plane.org has a HUGE user base. Based on the registered users, the X-Plane.org newsletter is read by nearly ten times the people who read the X-Aviation newsletter. A single marketing action on X-Plane.org can have huge impact. Also, X-Plane.org often has special offers bundling two or three products to be sold at a discounted price. With more than 170.000 registered users, announcements on the X-Plane.org forums reach a lot more readers than on X-Aviation.
Update 2010-08-25: It is also noteable that X-Plane.org ist the 3rd largest Flight sim site behind Avsim and flightsim.com (which are mostly FSX).
Also according to Nicolas' statistics, users spend more time and view more pages per visit than any other flight sim website. Since Nicolas also runs the Avsim store, I trust him he has access to these statistics and knows how to read them.

All things considered, I have to conclude that you can reach more potential customers when selling on X-Plane.org.

X-Aviation in turn is more like a place where they sell hand-picked jewelry. Less users, less potential customers. But customers that are used to very high quality standard. Probably more potent customers, looking for top-notch software. Your product has to be good to be sold on X-Aviation. If the quality of the X-Aviation users makes up for the lack of quantity I don't know yet.

Summary

X-Aviation: Top-notch, state-of-the-art distribution system
X-Plane.org: MASSIVE user base

No, there's no final recommendation. I'm happy to have my product sold on both platforms. I like Cameron as a business partner as much as I like Nicolas, and I don't care that they don't like each other. Perhaps it's "the mercy of late birth", as a former German chancellor put it, that I never engaged in the turf war between them, because the split happened long before I had my first encounter with X-Plane.

So I encourage any author of X-Plane software to find his/hers matching business partner and continue creating and selling great software!

PS: Unlike to my other posts, I allow comments on this. But when spamming gets too worse, I will eventually close them.

  • del.icio.us
  • Digg
  • Facebook
  • Reddit
  • RSS
  • Twitter
  • Add to favorites
  • email
  • HackerNews
  • LinkedIn
  • Slashdot
23Jan/11Off

Lean Assist 1.4 update is out

I updated LeanAssist to include even more functions of the original JPI EDM-800 instrument. The latest update includes all modes brought to you by installing GPS tie-in and fuel flow sensor tie-in. So this is the top-notch installation you can have on your aircraft.

To learn more about the real thing, I strongly suggest reading the original manual, which is available online from JPI : http://www.jpitech.com/pilotguide.php

As always, the download of the latest version is on the x-plane.org download manager: http://forums.x-plane.org/index.php?app=downloads&showfile=12206

  • del.icio.us
  • Digg
  • Facebook
  • Reddit
  • RSS
  • Twitter
  • Add to favorites
  • email
  • HackerNews
  • LinkedIn
  • Slashdot
20Dec/10Off

LeanAssist 1.2 is out

The 1.2 1.3 version of LeanAssist features a completely new UI which resembles the Engine Digital Management System 800 by JP Instruments.

  • Lean Find Modes accurately modeled for both normal (rich-of-peak) and lean-of-peak leaning.
  • Various other display mode accurately modeled.
  • "Cheat" mode for automatic leaning refined from version 1.1.

Watch the introduction video on youtube:

Download from the X-Plane.org download manager.

Click the Flattr Button if you like it.

  • del.icio.us
  • Digg
  • Facebook
  • Reddit
  • RSS
  • Twitter
  • Add to favorites
  • email
  • HackerNews
  • LinkedIn
  • Slashdot
12Dec/10Off

LeanAssist, a plugin for flying recips in X-Plane

Did you ever wonder how to lean your engine properly? How to get the maximum power out of it, when in climb? Or howto squeeze the last NM of range out of your fuel on board?

LeanAssist is a small plugin that helps you with leaning the engine. While you lean, it detects peak EGT and can then guide you to either best power or best economy mixture.

LeanAssist works with all airplanes having a fuel-injected, normally aspirated piston engine. As opposed to real-life,  in X-Plane all engines have perfect mixture distribution, so you can all run them lean-of-peak.

To install LeanAssist, simply unzip to your X-Plane main folder. To finish installation, you have to assign a key command or a joystick button in X-Plane. This is explained in the video.

To use lean assist, press the assigned key or joystick button and start leaning the engine slowly. A small screen overlay will appear, reading "looking for peak". Lean slowly until the indication changes to "Peak detected".

  • For best power mixture, enrich again. The indication will display the ROP EGT delta. At 70°F ROP, the display will signal "best power". Stop enriching. The indication will disappear after a few seconds.
  • For best economy mixture, lean further. The indication will display the LOP EGT delta. At 50°F LOP, the display will signal "best economy". Stop leaning. The indication will disappear after a few seconds.

Also explained in the video:

If you want to learn more about leaning and what happens inside your engine when you adjust your mixture, read this excellent article:  http://www.avweb.com/news/pelican/182084-1.html

Download at X-Plane.org:

On Windows, please make sure you have the latest Visual C++ 2010 redistributable package installed. Download it here: http://www.microsoft.com/downloads/en/details.aspx?familyid=A7B7A05E-6DE6-4D3A-A423-37BF0912DB84&displaylang=en

  • del.icio.us
  • Digg
  • Facebook
  • Reddit
  • RSS
  • Twitter
  • Add to favorites
  • email
  • HackerNews
  • LinkedIn
  • Slashdot
10Nov/10Off

Rod Machado on Funny Experiences as a Flight Instructor

We all remember him, the flight instructor in MS FlightSimulator since version 2000.
Here he talks about some really funny things he experienced during has career as a flight instructor. Hilarious!

  • del.icio.us
  • Digg
  • Facebook
  • Reddit
  • RSS
  • Twitter
  • Add to favorites
  • email
  • HackerNews
  • LinkedIn
  • Slashdot
1Nov/10Off

X-Plane 9.3: leaning a piston egine

I just cranked some output from a plugin i wrote for testing purposes into a spreadsheet app and created this neat little chart showing what you can do with the mixture control in a turbo-charged, fuel injected, constant speed prop-equipped airplane engine.

The curves are plotted against the fuel flow (in gallons per hour), which is the scale on the bottom. With mixture, you control how much fuel is getting into the engine (or to be precise, how much fuel per a certain amount (by volume) of air).

This example is almost at sea-level, showing nicely how you can overboost your engine at "best power" mixture, to produce more than rated power.

Notice how temp peaks and falls, power output peaks and falls, and efficiency (specific fuel consumption) gets better with leaner mixture.

Note that when pulling on the red knob, you traverse this chart FROM RIGHT TO LEFT!

I multiplied efficiency by ten and divided exhaust temperature by 10 to fit it on the chart nicely.

Mixture vs temperatures chart

I hope that with X-Plane 9.4 the simulation gets better, because max power in reality is not close to max egt, but 50° to 80°F below on the rich side. Also CHT varies a lot with mixture, peaking at about the same fuel flow as power.
Here is certainly room for improvement in future versions of X-Plane!

  • del.icio.us
  • Digg
  • Facebook
  • Reddit
  • RSS
  • Twitter
  • Add to favorites
  • email
  • HackerNews
  • LinkedIn
  • Slashdot
22Oct/10Off

Knowledgebase for cross-platform X-Plane plugin development

Hi folks,

this is my blog about the development of X-Plane plugins, about the beauty of C++ code, about X-Plane and aviation in general.

The goal is to bundle all the advice on cross-platform development I scattered on the X-Plane.org forum in the last year.
So I will try to sum up everything you need to know to successfully build X-Plane plugins.

I will start by migrating blog entries from the X-Plane.org blog here, and then organize my various posts related to cross-platform plugin development to build some kind of knowledgebase for plugin developers.

Comments and suggestions are highly welcome.

Philipp

  • del.icio.us
  • Digg
  • Facebook
  • Reddit
  • RSS
  • Twitter
  • Add to favorites
  • email
  • HackerNews
  • LinkedIn
  • Slashdot