Monday, March 15, 2010

Musings on CSLs

Now that Wade has XSquawkBox 1.0.3 out, I've been thinking about CSLs - that is, the collections of simplified airplanes that XSquawkBox uses to draw the other users. The CSL system was invented back in the days of X-Plane 6, and it's getting a bit long in the tooth. You can't use OBJ8 files, and it doesn't understand a lot of the modern rendering tricks that authors use with the standard tool chain.

Plane-Maker has advanced quite a bit since then too - to make the original CSL, I had to create a special one-off hacked build of Plane-Maker to export aircraft as OBJs. This capability is now built into Plane-Maker, works a lot better, and even supports animation.

X-Plane now exports a native OBJ drawing interface to plugins. Besides giving plugins access to the fully optimized native OBJ draw code, this also means that plugins can draw objects with per-pixel lighting.

One more piece of the puzzle: in France Austin announced that we were working on a new ATC engine. One goal of this new engine is to provide ATC to the AI planes, as well as your plane, so that the other aircraft interact seamlessly in one simulated environment. (In X-Plane 9, ATC only directs you, and the AI are rogue planes that try not to buzz you when you're on the runway.)

This makes me wonder: should there be a next-gen CSL format that is shared between X-Plane and third parties, based on X-Plane doing the rendering work?

4 comments:

Anonymous said...

It would be good if the new XP10 ATC could be turned off by a plugin so that a plugin could completely implement its own ATC logic.

I guess what I'm really suggesting is to give XP10 plugins the low level SDK capabilities to create/destroy and issue speed/alt/lon/lat waypoints to objects (such as aircraft with specific livery, ground vehicles, people models etc). This will allow developers to build sophisticated ATC and "living" airport environment addons.

If you give developers a powerful SDK then you will be amazed at what they can do! You can make XP10 far more "extensible" than FSX if you empower 3rd party developers via the plugin SDK.

Kind regards, MatthewS

Dirk said...

Let me turn the question around: what would be the advantage (if any) of not doing it? It seems to me to be the logical next step to have X-Plane do the rendering of objects that are provided by plugins.

BTW: when can we expect first alpha / beta code of the new ATC system? The plugin author who tried to tackle this last year is missing in action, so those of us who'd like a more realistic ATC environment are waiting anxiously to see something like that.

Benjamin Supnik said...

Hi Y'all,

A few things:
- I can't start a discussion of ATC features right now, and generally I'd say please hold the requests...we've already taken in a huge amount of feedback re: ATC and are working on substantial features...so I expect if everyone starts asking for ATC thing we'll get a lot of dupes.

- Why not do this? The burdon is always positive (why do this)? The reason why not is that developer time is valuable, so the feature must be weighed against the opportunity cost. In other words, we can't do everything that is cool, only the most cool things.

- Dates: As always, I cannot make any announcements on dates or features of future products.

Anton said...

I've never experienced this first person, but given that X-Plane provides multiplayer capability alone (i.e.. without any plugin), I'd say that it should provide the core framework to retrieve and render "others" aircraft within your simulation by itself.

"Others" can be your peer connected directly to you over LAN (no plugins for that), or a massive realtime simulation environment like VATSIM (with a plugin like xsquackbox acting as interface between the two).

That would look like a sound approach to me.