Ultra-Realistic Flight Simulation

Version 10 Tuesdays, Installment 6 (General Aviation Aircraft)

The X-Plane 10 King Air on the runway

Welcome to the sixth edition of Version 10 Tuesdays!

This week, we’re showcasing some of the general aviation aircraft that will be included in X-Plane 10: the Beechcraft King Air, Beechcraft Baron, and the Lancair LC-40 Columbia 400.

Keep in mind that the usual caveat applies: these photos were taken in X-Plane 9, which we are currently using as a stable testing platform for the new models. When they are finalized, however, the models will work only with X-Plane 10.

If you missed past editions of Version 10 Tuesday, see Installment 1, Installment 2, and Installment 3, Installment 4, and Installment 5.

Images (click to see full size)

Share and Enjoy:
  • Facebook
  • Twitter
  • Google Bookmarks

Version 10 Tuesdays, Installment 5 (Clouds and Carriers)

A first look at the X-Plane 10 clouds--note the rainbow colors for testing purposes only

Welcome to the fifth edition of Version 10 Tuesdays!

To the right is an early development shot of X-Plane 10′s clouds. These are color-coded based on the drawing distance and puff-size for debugging purposes, so the colors are, of course, not final. But they do look… cloudy!

The USS Nimitz supercarrier featured below from Khamsin Studio is available in X-Plane 9 as a payware add-on (from X-Plane.org, here). In X-Plane 10, though, it will be included as the standard carrier. In addition, X-Plane 10 will include Khamsin Studio’s Oliver Hazard Perry-class frigate, also seen below.

These are some very detailed models that we really believe will enhance the carrier operations of Version 10.

Keep in mind that these screenshots are taken in X-Plane 9, which we are currently using for testing the models.

If you missed past editions of Version 10 Tuesday, see Installment 1, Installment 2, Installment 3, and Installment 4.

Images (click to see full size)

Share and Enjoy:
  • Facebook
  • Twitter
  • Google Bookmarks

Version 10 Tuesdays, Installment 4 (More Aircraft)

For this week’s Version 10 Tuesday, we’re showing some of our military aircraft.

Once again, you can see how far our models have come. The increase in the level of detail from the Version 9 models to their Version 10 counterparts really has to be seen to be believed.

Keep in mind that the standard disclaimers apply–these screenshots are taken in X-Plane 9 (which we are currently using for testing the models), though the final version of the aircraft will not be compatible with Version 9.

If you missed past editions of Version 10 Tuesday, see Installment 1, Installment 2, and Installment 3.

Images (click to see full size)

Share and Enjoy:
  • Facebook
  • Twitter
  • Google Bookmarks

Version 10 Tuesdays, Installment 3 (Scenery and Lighting)

Showing off some of X-Plane 10's airport scenery

In this edition of Version 10 Tuesdays, we’re showing off more of the scenery and lighting systems.

The images seen below are primarily of a “research and development” airport used for testing scenery art assets, so it isn’t necessarily representative of a certain airport in X-Plane 10. However, the images do demonstrate how World Editor (WED) might be used to build an airport, as this scenery was put together in about 20 minutes.

The scenes below demonstrate a small fraction of the airport art assets we’ll be using in Version 10. They’re also designed to show off the 3-D shadows and global lighting, as well as some of the tree placement. The airport terminal in some of the images is one of our new “plausible facades,” where the shape of the building can be anything a designer can draw in WED using bezier paths–it is not an X-Plane object.

If you missed past editions of V10 Tuesday, see Installment 1 and Installment 2.

Images (click to see full size)

Share and Enjoy:
  • Facebook
  • Twitter
  • Google Bookmarks

Object-Oriented Programming and X-Plane 10

The die of an AMD Phenom CPU

A note on the internal structure of X-Plane 10:

As X-Plane grows in scope to be a world simulator, not just a flight simulator, with many process to fly airplanes by air traffic control, drive cars along the roads and highways, and build forests and cities according to interesting little algorithms, all at the same time, it becomes clear that the organization of the code is becoming absolutely critical to handle all of these many processes at once without introducing extreme complications and bugs from countless interdependencies. Weather controls absolutely everything that is going on from the deer and birds to the hot air balloons to the rain and snow and ice to the type of instructions you get from air traffic control. Forests are actually planted in front of you on secondary CPUs as you fly, and cloud puffs, radar images, and even the flight models of other airplanes are running on secondary CPUs at the same time. There are countless processes all running at once to drive this virtual world, and if each process is not well-designed and insulated from the others, then crashes, bugs, and chaos will ensue.

So, how do we deal with this? The answer is object oriented programming. Here is how it works: each entity in X-Plane (say, for example, the deer that run across the runways from time to time) is it’s own little object of code. This object is its own little bit of instructions and memory, and this object is not allowed (and in fact does not know how) to access the functions or memory of any of the other objects in the X-Plane world. Each object contains its own logic and instructions, and I can safely forget how each object works when I am done coding it, because it is an insulated unit that cannot effect anything else. For example, the deer object will look at where you are so they can run and bound about at whatever airport you are near, using their own little primitive brains to decide where to run based on the size of the airport, weather, time of day, and your location, but the deer object does not know how to change the location of your airplane… Because your airplane is, of course, a totally different object. Since the brains, memory, commands and accessors for each object live within that object, they are not easily messed up by any other object. (A command for an object might be: “Deer object! Run out onto the runway! I command you!”, and an accessory for an object might be “Deer? Where are you? I need to know your location to plot you!”)

You will notice that neither the command nor accessor is actually allowed to get inside the logic or memory of the deer object… That would be dangerous because it could mess the deer object up. Instead, there is a firewall around every single object in X-Plane that keeps one object from messing up another, only allowing commands (which the object can follow if it deems fit) and accessors (which the object can provide safely). Other objects cannot go through this firewall to mess with the internal logic of each object. This object-oriented programming is what makes something as complex as X-Plane 10 possible. In the movie The Matrix, it was clear that the virtual world was complete, and made of countless computer programs all running at once… And this is where we are going with X-Plane 10: a virtual world, not just flight sim, where countless things are all happening at the same time.

Now, one obvious fallout of this is that you will want your computer to have many processors. Lots of them. With my 8-CPU, 16-core Macintosh, I saw over 100 frames per second (with no scenery) with 20 planes all flying simultaneously yesterday. Try setting the number of planes to 20 in X-Plane 9 and see how fast it runs. The difference is that X-Plane 10 has each airplane as it’s own object, and each object running on a different CPU, all at the same time. Multiply this by the ever-growing forest (the trees have to be planted in front of you as you fly… You do not have the RAM to memorize them all) animals, cars, air traffic controller, boats, ever-changing weather, and you start to see why it will take a lot of CPUs to run this complex world. But, an interesting thing is that with no scenery, I am seeing X-Plane 10 run much faster, and use less RAM, than X-Plane 9… This is because the objects are all packed so efficiently with minimum RAM use, and run many at the same time to give more speed. (Note: this RAM check was done before I finished installing the new weather system. The new weather system, when complete, may cause the total RAM use to be slightly greater in the won-scenery-case… We will see when the weather system is done.) Interestingly, the system that determines what the weather is in X-Plane 10 uses almost zero memory! This is because the weather is stored as a fiendishly-clever little algorithm that tells X-Plane what the weather is at any given location and then promptly forgets what it just said. This gives all the variation in the weather we could want, but without using any RAM at all! It does use memory, however, to memorize where to draw the clouds. The drawing part must be memorized for speed, because the video card can only do its work fast if you hand it the whole world of clouds to draw at one time, not one little cloud-puff at a time. So, for speed, we must use memory to store the location of every cloud-puff in the sky, but not the weather that caused those cloud-puffs to exist: that part was done by the weather-making object and its own internal algorithm.

Another nice thing about this object-oriented system is that it makes it much easier to track down and solve bugs without causing new bugs to appear by solving old ones. Because each object has its own logic and memory, any bug should, in theory, be traceable back to the object that is malfunctioning, where it can be fixed without affecting any other objects.

So, while X-Plane has been gradually broken down into objects for some years now, with version 10 we are really making it all object-oriented internally, and combined with the multi-threading, the results are really quite impressive.

austin

Share and Enjoy:
  • Facebook
  • Twitter
  • Google Bookmarks