Author: Ben Supnik

Art Controls, Stutters, and Progress

Art controls are internal tuning constants in X-Plane that we put in so that our art team can modify the behavior of X-Plane while they work without having to recompile the sim from source code. We leave them in the final product because they are sometimes useful to third parties, useful for in-field debugging, and because we are generally okay with people hacking the sim if they understand the limitations. X-Plane has always been a relatively open sim to play with and lots of X-Plane authors got their start just poking around. Our first instinct isn’t to encrypt everything.

We don’t go out of our way to break art controls. We don’t go in and change their names in every beta just to mess with third parties. But we also spend absolutely zero time trying to maintain art control compatibility with previous versions of the sim. Backward compatibility takes a lot of planning and effort and there’s just no way we can keep a bunch of internal tweaks the same while modifying the sim.

In X-Plane 11.30, a number of art controls have stopped behaving the way they used to. They aren’t going to go back to the way they were, because we don’t spend time trying to support hacks based on art controls. Here’s what happened and why:

As part of our work to port X-Plane to Vulkan, I rewrote the code that renders a frame in two ways:

  1. All off-screen rendering needed to draw the frame is now done before the frame is rendered; up to X-Plane 11.25 some of this work was done as a diversion, mid-frame.
  2. The graphic resources (mostly off-screen rendering buffers in VRAM) are allocated once when the configuration of the sim changes, rather than being allocated “just in time” when we get into a frame and realize something has changed.

Change 1 was needed to match how Vulkan and Metal handle off-screen rendering*; change 2 helps avoid stutters by allocating expensive resources early when we are not flying.

The side effect of this is that art control edits take effect only when the sim is reconsidering its graphic setup anyway (e.g. due to a window size change or rendering setting change); if the art controls change mid-frame, any code that does resource allocation ignores them because it is no longer “sniffing” for configuration changes per-frame. Other code that uses the art controls notices the change, and the result is often haywire drawing due to a half-used art control.

 

* This was an example of the OpenGL driver doing a lot of work for us, and hurting performance, to support an abstraction that doesn’t make sense. The real graphics card has to do real work when a rendering pass begins and ends; the OpenGL driver automatically synthesizes these rendering passes on the fly for the GPU as the app runs. Because Vulkan/Metal requires that we spell out the passes explicitly, we (the app) know exactly when we are doing something expensive (starting a new rendering pass) and we can minimize the cost.

Posted in Development by | 17 Comments

X-Plane 11.30 Public Beta: Are We There Yet?

Almost! we’ve been running a small scale private beta for the last few weeks while we finish new features and fix major bugs. I don’t want to curse the beta, but it looks like we may be able to get the public beta posted this weekend.

In the last two days we’ve had two major show-stopping bugs, but both are fixed, so we’re going to keep trying to nail this thing down and get it posted.

The public beta features not only the new particle system, available to third parties, but it is now in use for most (but not all) of the built-in effects in the sim. New Plane-Maker options let authors specify which effect categories (e.g. engine effects, wheel effects, etc.) they want to replace.

At this point it looks like we won’t have anything public for Vulkan this year, although I do think we will hit some internal milestones.

Posted in Development, News by | 158 Comments

4K Panels and Cockpit Objects in 11.30

A quick note on 11.30: we have an internal build of 11.30 that seems to be working and we’ll be rolling out private betas next week, as soon as we get menu items for the particle system editor. Once we get some feedback on the private beta we’ll know if we’re close to public beta or not.

Two new feature for aircraft authors coming in 11.30:

4K Panels. I do not promise that this is going to have good performance, so try it and go back to 2K if things get slow, but in X-Plane 11.30 you can use a 4K texture for your panel. This is mostly useful for aircraft that are generating a lot of plugin-based dynamic texture effects.

Cockpit Objects. Before X-Plane 11.30 the cockpit object is a magical object found by file name (aircraft name_cockpit.obj). In X-Plane 11.30 the cockpit object is just one among many “misc” objects in Plane-Maker, with the “cockpit object” check-box set.

X-Plane and Plane-Maker will automatically upgrade/interpret old planes, so there’s no “todo” here or compatibility loss.

This feature means that, starting with 11.30, you can now share a single cockpit object amongst multiple .acf files in the same folder. This means you can create multiple editions of your aircraft (e.g. for engine types) and not have to duplicate your cockpit .obj files.

Update: just to clarify something that a number of authors asked about, you cannot have multiple cockpit objects under the new system. You are still required to put all of your manipulators and camera-stopping surfaces in a single cockpit object. Now you have complete control over which object that is. (Panel texture may be used in any aircraft-attached object; this is true for all of X-Plane 11 and some X-Plane 10 versions.)

Posted in Aircraft & Modeling, Development by | 38 Comments

Austin and Ben, to Scale

Those who know Austin know that he is really tall. It’s a running joke that at company events, he ends up half a mile ahead of the group because each of his steps is quite a bit longer than the rest of ours. If he and I want to see eye-to-eye on something, I literally need a step stool.

But for those who haven’t run into him at a convention or event, this picture should put things into perspective.

Posted in Development by | 32 Comments

Art Controls Are For Hacking

Sidney posted a detailed write-up a few days ago as to why developing an add-on by modifying our shaders is not a good idea. The short version is that, like art controls, the shaders are an internal part of X-Plane that we don’t lock up so you can see them and muck around with them. But there is no stability, documentation, or any attempt to make them useful the way the plugin system is.

This confused a number of commenters. Do we want you to use them or not?

To resolve the mixed messages, Sidney created this fantastic flow-chart.

Hopefully that clarifies where the line in the sand is between “I was poking around” and “I made a serious add-on”. Pretty much everything here goes for the shaders as well as the art controls, only more so.

Posted in Development by | 24 Comments

X-Plane 11.26 and WED 1.7.1

Two notes on stuff we released today:

X-Plane 11.26r1 is now in public beta – click “get betas” to get it. It’s just a translation update except one bug fix: we think the weird errors about missing taxiways mid-flight should be fixed.  This bug was specific to users who loaded additional nav data into the sim, but if you are one of those users this will hopefully help.

WorldEditor 1.7.1r2 is now officially final. WED 1.7.1 supports all of the new airport line types from X-Plane, and also has a slew of new editing options for working with vectors.

Posted in News by | 31 Comments

X-Plane Live TODAY

A quick correction – the X-Plane Live session will actually be today, Tuesday at 4 pm (20:00 UTC) – I apologize for the total confusion and chaos on this one.  We have your questions from the developer blog and social media, and we’ll try to take live questions as best we can.

EDIT: T-minus 30 minutes to live stream! We’ll be live here on YouTube.

EDIT 2: If you missed the live stream, you can watch the recording: Part 1 and Part 2 (split due to technical difficulties).

Posted in Development, News by | 30 Comments

RFC: Questions for X-Plane Live

As Tyler previously posted, we’re doing another X-Plane Live video stream this Wednesday – this one a bit earlier for Europe.

A number of commenters pointed out that the Q&A has been a bit of a free-for-all in the past live-streams. It’s hard for us to pick up all of the questions, things get missed, etc.

So this time, we’re going to do a mix of live questions and questions submitted ahead of time. If you have something you want to bring up, please post in the comments section for this post. You can also ask questions via Facebook or Twitter – Thompson will post start a feedback thread on FB tomorrow.

Please only use this blog post for questions for the live session next week.

We are almost certainly not going to be able to answer everything that gets asked, and there will probably be questions where the answer is more or less “we’re working on stuff but it’s rully rully secret right now”. But we will read everything that gets asked here and do our best to make sure big things don’t get lost.

Posted in News by | 62 Comments

FlightSimExpo 2018 Slide Deck

I meant to post this weeks ago, and basically just lost track of it, so thanks for the reminders in the comment sections.  Here is a PDF export of our slide deck from FSExpo.

Flight Sim Expo 2018 Slide Deck

There is professionally shot video of the event, but it wasn’t shot by us, and I’m afraid I have no idea when it will be posted. We’re looking into using our own cameras next year so that we can ensure a video post on a more timely basis.

 

Posted in Development by | 24 Comments