Wednesday, December 02, 2009

Don't Lie To X-Plane

Well, I won't stop you from lying to X-Plane, but if you do, your add-on may have problems in the future.

Basically: some parts of X-Plane take measurements of real world information and attempt to simulate them. I have previously referred to this as "reality-based" simulation (e.g. the goal is to match real world quantities).

In those situations, if you intentionally fudge the values to get a particular behavior on this particular current version of X-Plane, it's quite possible that the fudge will make things worse, not better in the future.

This came up on the dev list with the discussion of inside vs. outside lighting. X-Plane 9 gives you 3 global lights for objects in the aircraft marked "interior", but none for the exterior.

Now there is a simple trick if you want global lights on the exterior: mark your exterior fuselage as "interior" and use the lights.

The problem is: you've misled X-Plane. The sim now thinks your fuselage is part of the inside of the plane.

This might seem okay now, but in the future X-Plane's way of drawing the interior and exterior of the plane might change. If it does, the mislabeled parts could create artifacts.

So as a developer you have a trade-off:
  • Tweak the sim to maximize the quality of your add-on now, but risk having to update it later.
  • Use only the official capabilities of the sim now, and have your add-on work without modification later.

2 comments:

Chris said...

You're right. A lot of developers get into hot water when they lie to the sim.

Morten said...

This has always been an issue with XP's flightmodel.

1. Work around the problem and have
realistic behavior NOW, or..
2. Let the sim do it's thing and (maybe) have realistic behavior in the FUTURE.

Never been any doubt in my mind what to do..