Category: Development

More Facade and Shadow Pics

One or two more facade follow-up pictures.  Here we have a curved facade airport terminal.  There are still some bugs with how the roof and walls go together.  A facade definition has two sets of wall definitions: one meant to be curved (with more vertices for smoother curving) and one with fewer vertices for frame-rates when a wall is not curved.

Here is the same picture in wire-frame mode.  You can see the second layer of cars.  The new facades can have multiple roofs – this feature was specifically put in to allow us to build parking garages.

By request: a series of shadow pictures.

From left to right: no shadows, 1 texture along 500 meters, 2 texture along 500 meters, 2 textures along 5 km, 4 textures along 5 km.  The distance is how far into the distance X-Plane tries to apply shadows (longer distances mean more CPU work to shadow more of the world, with less resolution on the shadows) and the number of textures is the number of separate texture shadow maps we apply.  The more separate shadow maps we apply, the more resolution we have to work with.

If there’s a take-away point for shadows, it’s this: they’re really freaking tweaky.  They can look really good or really bad.  The shadows you see here are not at all done; we still have a lot of tuning and optimization to do.  But these pictures will give you an idea of why we didn’t ship shadows in version 9 (the way I had hoped to): when they look bad, they look really bad.

I suspect we’ll have rendering settings to let you use more shadow maps to get nicer shadows at lower fps, or tune them down for more speed; we already have this with the reflection detail rendering setting.

Posted in Development, Scenery by | 10 Comments

X-Plane Hangs on Start with NVidia Cards

We’ve received a number of reports over the last month of X-Plane hanging on startup with NVidia graphics cards on Windows.  Most users don’t see this, but some do.  We fixed one use of off-screen rendering in X-Plane 9.67 and this fixed some of the users with hung video cards but not all.

I am working with the remaining users now; my hope is that we’ll find something we can change in X-Plane to work around the problem.  I don’t believe that the code in X-Plane 9.62 was actually incorrect, but it was simple enough to change.

I have also read some posts regarding poor performance on the GeForce 400 series (Fermi cards) vs. the older 200 series.  I have no hard data on this, and frankly, a lot of the discussion on the net strikes me as completely speculative.

Fortunately alpilotx has a GeForce 500 series card on order, and he is working with me on next-generation DSF renders for X-Plane 10.  From my perspective, the big question about the GeForce 400-500 series (Fermi and beyond) is: how well do they implement the DirectX 11/OpenGL 4.0 feature set?  In particular, X-Plane 10 is going to make heavy use of full hardware instancing, and while this has been available on ATI cards since their HD2000 series, the implementation has been partly in software on NVidia DirectX 10 cards.

The question our users want to know is: if I have a preference for NVidia, can I get a DX11-class NV card for X-Plane, or should I move to ATI.  By looking at instancing performance, perhaps we can determine if these cards are contenders.

(I am not worried about overall “how many fps” do you get because y’all can measure that now with X-Plane 9.)

Edit: since a number of you have jumped in with performance reports: please post the following performance info in your replies:

  • Precise graphics card
  • CPU with clock speed
  • Results of –fps_test=3 (3 phases) with X-Plane 9.67.
Posted in Development by | 26 Comments

Random Stuff on the Side

I spend most of the time working on global scenery, shaders, v10, the big ticket items.  But there are always little things going on too.  A few random things:

I have a JavaScript taxiway-sign editor I’ve been working on – it lets you type taxiway signs with the keyboard, see them using the real sign artwork, and then get the sign code out (you know, that cryptic {^ul,@r}27-9{@@,no-entry} gak) automatically.  I was inspired by WordPress’s insanely nice back-end web UI to see if I could make a web-based sign editor that was reasonably usable.  The answer is: with jQuery – yes.  Once it’s further along, I’ll post it; maybe someone can help make the CSS prettier.

We put another download server up this week; as we transition between hosting providers, we’ll have extra servers for a week or two, so, um, enjoy the bandwidth!

Finally, I’ve been poking (very slowly) at the panel documentation on the wiki.  In particular, I’m trying to delete documentation of legacy features. A lot of the complexity in the panel system comes from the interaction between old backward compatibility features and the latest way to make a modern aircraft. My hope is that by documented only the “modern” path, the documentation can be clear, concise, and a lot less confusing to new authors.  I figure if you’re reading the Wiki, you want to know how to make a panel now, not how to make one for X-Plane 3 years ago.

The real work of the week was the new road system and debugging the new global illumination code.

Posted in Development by | 1 Comment

The world is under control…

So as Ben has mentioned, I’ve been working on giving X-Plane a new ATC system. To be clear, the task was not to add features or fix bugs with the existing system, it was to write a whole new one…from the ground up. Why? Because our goal is to lay the foundation for a system that can grow over time; a system that we can easily expand and add features to. So what does this mean? It means that starting with the initial release of v10, the ATC system will grow incrementally until we feel it suits the needs of most of our users. It will never be a replacement for VATSIM however!

There’s only so much that can be done with artificial intelligence and since starting this project I’ve learned that humans make decisions in ways that are really really difficult to quantify, so lines have to be drawn somewhere. If you want that human factor, that’s what VATSIM’s for. The goal for our ATC is to make it as realistic as possible within the confines of what’s reasonable. It also needs to cater to a wide range of users. Some who are real pilots and do not deviate from ATC commands at all while others are new to aviation and may make some mistakes (even some dangerous ones). In real life making some mistakes will get you killed or at least earn you a phone call to the FAA…in here, the controller may grumble that you’re not listening and encourage you to follow directions again. I know that some of you are thinking “Why not just add levels of realism that the user can pick from a menu” and we may just do that for some things in the future, but for now I can’t stress enough that the goal is to be reasonable and flexible in our system design so that we can grow the system over time…all while keeping it fun for all types of users.

Enough blabber, time for some pretty pictures. The shot below is a picture of X-Plane with the North American ARTCC/FIR boundaries turned on. This is just for development purposes but it’s kind of neat to see the boundaries overlayed on the planet. As you fly from one center to the next, you’ll get handoffs from facility to facility.

And the shot below is what happens when I turn on the boundaries of towered airports. Any airport in the apt.dat file that has some combination of Delivery/Ground/Tower specified in it will be given a living control tower.

This only covers a tiny bit about the ATC system which is quite complex even in its infancy but I’ll do my best to keep the posts coming so that you can learn more about what it’s capable of.

I don’t have time to go into great detail about subsystems just yet (that’ll be covered in other posts) but I’ll leave you with a juicy detail….See those dots in the first image in the ZBW (Boston) ARTCC’s boundary? That’s a custom ATC pack (similar to a custom scenery pack) that I created that perfectly replicates Boston (KBOS) and Bradley (KBDL) TRACON airspace. Yeap, that means you can customize the system how you want it. More on what that means in the future….

Posted in Air Traffic Control, Development by | 11 Comments

Captcha support added for commenting

If you haven’t already noticed, I’ve added some captcha’s to our comments to try to combat the spam we’ve been getting. I don’t particularly like captchas….I usually spend several minutes staring at them like a Rorschach Test but I think this will save time moving forward. Please let us know if they’re causing any problems beyond the severity of just being annoying.

Posted in Development by | 2 Comments

Spammers: You will be nuked

An advanced apology to anyone whose comment gets nuked as spam.  This blog, like all blogs, gets attacked by spammers who put links in their comments to boost their pagerank.

So if I’m not sure if you’re a real commenter or a spammer, sorry, but I’m going to err on the side of the chainsaw.

Posted in Development by | Comments Off on Spammers: You will be nuked

What’s the Log File For?

X-Plane’s log file is our attempt to capture everything we could possibly want to know about your computer in case something goes wrong.  (There’s no personal information in there – we want to know things like what kind of CPU and graphics card do you have.) We do this because a fair amount of tech support comes from configuration problems; having the sim tell us the configuration saves tech support time in explaining how to gather configuration information and eliminates the risk of user error.

This matters because a fair number of bugs and tech support requests come from strange system configurations…often we don’t even know what was wrong until the user later reports fixing the problem by adjusting a piece of hardware that we didn’t know existed.  Here’s one example from last week:

Hi Guys, I just wanted to let you know, I got X-Plane working!  It turned out it was my sound card. I don’t actually have a sound card…I replaced my RealTek USB speakers with a small gnome that lives on top of my motherboard.  The gnome yodels what he thinks I should be hearing.

Well, it turned out that last week the gnome went on a wicked bender and passed out and shorted out my PCIe bus…I think that’s what was causing X-Plane to freeze.  I gave the gnome some charcoal pills and black coffee and the sim runs great!

BTW when is X-Plane 10 coming out?  Do you need beta testers? 🙂 🙂 🙂

Okay, I admit, I made that up.  But…that’s not far off from reality – just replace “gnome” with your favorite barely-compatible-with-DirectSound pro-level recording sound card.  Anyway, our response to this kind of thing is visible in the log…e.g.:

Sound Card: gnome (B.A.C. = 0.02%)

There is one down-side to the log: some users seem to like to report every single line of the log to us, with the question “is this a problem?”  We’ve been trying to make it more obvious what’s an error and what’s just information.  (Hint: most of it is information…except for the lines with the word ERROR in big bold letters.)

Therefore I make this suggestion to plugin developers re: the use of the log file.

  • Do identify all log output as coming from your plugin.
  • Do log serious errors that will be needed in crash forensics.
  • Do not log errors that are reported to the user.  If the user opens a file and it’s the wrong version, and your plugin presents a dialog box, you probably don’t need to also log the error.
  • Do log configuration information needed to triage a system.
  • Do not log routine status from normal operation – not in a release build please!
Posted in Development by | 5 Comments

New Installers…Shiny!

Well, they are new at least.  The new installers/updaters are now posted.  Version 2.06 fixes Linux DVD problems, but also has two features that should be nice for users who beta test heavily (and grab full demo installs off the net to do so):

  • The new installer/updater keeps net connections alive, which really helps download rates per connection.
  • The new installer/updater connects once to each server, balancing the load between servers.

Previously you had to pick one server and poke around until you found the fastest one.  By keeping connections alive and using all servers, we should get fast, even download times for everyone.

Posted in Development by | 11 Comments

Who IS this Chris guy anyway?

…and who gave him access to source control?

Seriously, Chris is the third and most recent developer to join the team – he’s been full time with us for a while now, working mainly on the new ATC system for X-Plane 10 and the Android port of X-Plane mobile.

Like Randy and Austin, Chris is a real-world pilot.  He also worked on some of VATSIM’s core technology back in the day – AVC and VATSIM’s voice-over-IP tech and XSquawkBox.

Please don’t flood him with “will ATC do X, Y and Z” questions; since version 1 of the new ATC engine hasn’t been released yet, it’s a little bit too early to start the discussion on how to extend it.

Posted in Development by | 1 Comment

When is X-Plane 10 coming?!?!?!

If I had a dollar for every time I saw this question asked on Facebook, forums etc I’d be richer than Warren Buffett. I have to say though, I can’t really blame people for asking because our track record for releasing news has not been stellar but that’s changing as we improve our online front. Stay tuned for more news on that!

You have to understand that it is not as if we’re keeping the release date a secret, it’s that we don’t have a hard date set at the moment. I will reiterate that we’re all working really really hard. This is not a 9-5 job where you punch in and punch out and go home and forget about work. We’re all pretty much chained to our computers most of the time because like you, we REALLY want X-Plane 10 to go live as well. It’s going to be a great step forward for the flight simulator community.

So when is it coming out? When it’s ready and not a moment sooner or later! Trust me, you’ll be the first to know when we have updates to share.

Posted in Development, News by | 60 Comments