Traffic Global for X-Plane Dev Diary – June

Originally published on

Welcome back! So far in these diaries I’ve been trying to talk a bit about what the development of something like this feels like from the “other side”; not just a “what I did on my summer holidays”-type essay in multiple parts, but what the thought processes and drives are for someone who produces the digital download that, with any luck, improves your simulator experience. Well, this month’s is a doozy.

The big reveal. The unveiling. The public’s first look. I’ll show you mine if you show me yours, and please don’t laugh. It’s a nerve-wracking moment when the dark hours of the night are filled with doubts and if-onlys. I’m sure there are people out there who don’t go through this, but that’s not me. I can see the flaws and, because I’ve been working on polishing them out for so long, it gets difficult to see anything but the flaws and sometimes that’s quite hard to keep in mind.

The beta team, bless ‘em, have been using Traffic Global for a few weeks now and are doing really good work in pointing out problems. And…

Actually, most of what they’re pointing out are things that I knew needed fixed. On the one hand, being bombarded with faults is a downer, of course it is, but at the same time it’s unavoidable, absolutely necessary, and these people are genuinely doing their level best to help out. They’re here to point at problems and the fact that they leaped on – pretty much, anyway – the same list of things that I’d been beating myself up about in the early hours is both an indication that they’re paying attention, and that my estimation of what wasn’t good enough yet was reasonably accurate.

Although there’s a good number of things to correct yet, I’m genuinely pretty pleased with how it’s gone, given how complex the code is behind the scenes. It’s certainly not “production ready” as it stands, but the majority of the problems that are being reported are down to two or three core issues that are just manifesting themselves in interesting and imaginative ways.

A few are simple things like out-of-date liveries or, in one case, an Aer Lingus A320 has managed to get blended with a British Airways paintjob at the same time. Aer Airways? British Lingus? Probably best not to Google that last one at work, but either way it’s actually a simple fix that just needs a bit of time and effort.

Night textures in action

Some are more interesting. Somebody reported a hard crash to desktop, but only at a specific airport. That one at least was easy to find! Load it up, start a flight at that airport, boom. Odd though, the only thing that might cause something like that would be some kind of airport-specific problem, which means it would have to be something to do with the information in the apt.dat file (the ones that X-Plane uses to define airport layouts), but all of that’s really carefully checked already, so what’s up? That one turned out to be a simple arithmetic error in a deep-down bit of code that is used by every single airport and which had been written months before and in use for far too many hours a day, most days, ever since. The nature of the mistake meant that it worked entirely correctly, and entirely by mistake, almost but not quite everywhere in the world.

The most awkward problems to fix are the ones that I can’t see for myself. Somebody reports a problem, gives plenty of evidence that it’s really happening, but for whatever reason it just can’t be reproduced reliably. Or at all. Sure, I can apply some thought and work out what it might be, but in an ideal world I’d be able to see the problem, make a change, and see it go away. It’s frustrating from the developer’s point of view; you know there’s something wrong, people are looking to you to fix it, and the best you can do goes something like this:

“There’s a problem with scheduling, X airport, Y time, Z flight. Just sits there.”
“OK…” >tinker, tinker< “Hmm. Can’t see it but this should do the trick”.
“Damn. OK, lemme try… Ah, of course…” >tinker, tinker< “Right, got it this time”.
“What? Oh. Uh… still works for me, but it’s wrong for you, which means it kind of must be… Oh, no, I was hoping to avoid that… OK, gimme a few days.” >tinker, tinker, rip out major system and re-write< “Try this”.

Which – mercifully not with Traffic Global, at least not yet – is sometimes followed with something like:

“Oh, hold on, I had static aircraft switched on, sorry.”

Another night-time picture because it’s hard to screenshot sound!

In short, then, despite the list of outstanding bugs I think we’re in a pretty good place. There’s still a few things, important things, that need to be written but they shouldn’t cause too many headaches. There are one or two mind-bending problems to get finally nailed down, a bunch of fairly minor tweaks and some nice, simple, no-brainer busywork things to finish up with. Like I said last month, sometimes it’s good to just have a few low-hanging fruit left that you can reach for when all the others are beginning to feel untouchable.

Next month’s diary might just, if we’re really, really lucky, be the last. (Note to self: Ha!) Tune in, same time, same place, to find out.

About the Author: jimkeir