September 26, 2004
Osama Bin-Laden decides where we go: We don’t
Sept 27, 2004
OK So I had to go see Ben Supnik in Maryland to integrate the new scenery algorithms into X-Plane.
These are pretty complicated algorithms, because they assume no pre-determined organization of the world… they take in any set of polygons you can image, each with it’s own size, orientation, and texture. On the face of it, this would seem pretty simple to draw in X-Plane: just draw each polygon with the right texture! Simple!
Of course, it doesn’t work out that way: this would be WAY too slow to plot with a useable frame-rate… switching textures around all the time would be way too slow… switching from one texture to another (say grass to water) is actually the slowest thing OpenGL does (surprise!) so you cant simply go through the polygons, switching to the right texture per polygon. Instead, for speed, you have to GROUP ALL THE POLYGONS THAT USE GRASS INTO ONE GROUP, all the polygons that use water into another group, etc etc etc. By the time you have added all the terrain, roads, rivers, highways, railroad tracks, powerlines, little mini-me’s waving to you from mini-Corvettes, and countless other objects and buildings that make up the world, you have a huge pool of different textures, and you must draw ALL the polygons that use a given texture, then switch to the next texture, and draw ALL the polygons that use THAT texture! This is needed for SPEED (frame-rate) because it switches textures (the slowest part) the least number of times.
Now, is this good enough? No way. Not even close. The flying region is about 150 miles across, and drawing polygons out that far is totally impossible from a frame-rate point of view (too many polygons) so we can NOT simply say “draw all the grass polygons”… there are just too many of them to draw them ALL each frame and still get decent frame-rate! We must draw only the ones IN VIEW. So why not simply check each polygon to SEE if it is in view? Again, TOO SLOW… even CHECKING EACH POLYGON is too slow because there are simply TOO MANY OF THEM. So the polygons are dropped into little “BUCKETS” (or GROUPS) of a few miles across or so… then, we only need to check if each BUCKET (or GROUP) of polygons is in range.
AH-HA! NOW we have some speed: We organize terrain by WHAT TEXTURE IT USES and WHERE IT IS ON EARTH… this way, we switch textures as few times as possible, and only even CONSIDER polygons for drawing that are sort of close to us. It is this organization, bringing ORDER from CHAOS (remember, the scenery input into version 8 can by ANYTHING!) that is so critical for frame-rate.
Anyway, it’s pretty hard.
So I had to go to Maryland to see Ben to work with him to integrate this stuff into X-Plane version 8.
Now, Ben is generating HUGE, DETAILED scenery files for X-Plane 8, that take in OUTRAGEOUS AMOUNTS OF DATA (elevation, landuse, roadmaps of exquisite detail with every street in the USA, county maps, countless objects from Sergio, countless textures from Sergio, and a bunch of other stuff I can’t even remember).
The UPSIDE of this is varied, accurate, detailed scenery.
The DOWNSIDE is it would take months to generate all of the Earth on one computer.
If we just generated the scenery on one computer, the generation would take so long we would miss out November 16 deadline.
So I needed to see Ben to integrate code, and Ben needed some of my computers to create scenery files (why many computers? to generate some scenery on each computer… many hands make light work). Now, how to get myself and a bunch of computers to Maryland? Cirrus to the rescue, of course.
So with my Cirrus loaded up with THREE computers, my suitcases, my giant 23″ Apple Cinema Display monitor, I busted out of Columbia for Maryland to work with Ben.
A few words about this flight:
My desired destination airport: College Park Maryland… College Park is an excellent little airport 5 minutes from Ben’s house… a perfect little runway and excellent facilities, with a long tradition of being a light-plane access-point to Washington.
An airport which has been closed to outsides since Sept. 11 unless you get a background check from the CIA and a special code to enter… so off-limits to me. THis left me with the next-closest option, a place I had never heard of called “Freeway”.
Now, most of my trips are carefree, fun flights from Columbia to see friends in Kansas or Florida, or do business in Texas or Massachusetts.
This trip, however, to Freeway, was well into the “ADIZ” (Air Defense Identification Zone) around Washington, and right up to the very edge of the “Freeze-Zone” around Washington.
What do these things mean?
Well, in addition to one of the regular processions of Hurricanes up the coast, I had to file IFR to get into the ADIZ. The flight plan had to be filed with a special flight service station… the regular briefer could not allow me into the ADIZ. I must follow all instructions carefully to navigate the ADIZ, and must NOT penetrate the “Freeze Zone”. There are, indeed, Surface to Air missiles mounted in this zone near the Whitehouse… a navigation error was not adviseable.
So, flying up there, my GPS’s dutifully told my four moving maps the exact optimum direction to Freeway airport… a direction I could never actually FLY, because ATC kept routing me from VOR to VOR, fix to fix, as they ALWAYS do when you fly IFR. In the days of GPS, which lets us go direct, with the resultant minimum fuel-burn, why does ATC take us on a hop-scotch routing wherever we go? Because the ATC system as we know it today was created when people wore wide orange or brown ties and thought it was cool. To them, GPS stood for “Groovy Phunky Sounds”… and the system has NOT been updated, so we wander across the sky like dis-oriented drunks despite computers in the cockpits of the Cirrus’s that allow us to go anywhere STRAIGHT… this is why I never fly IFR unless absolutely necessary.
Anyway, with a Hurricanes at my tail, and guided surface-to-air missiles waiting for me at my nose,I zig-zagged up the east coast, stupidly wasting fuel wandering from VOR-to-fix-to-airport-to-VOR-to-fix as the decrepit old computer told the controller to tell me to do. Arriving in the ADIZ, I got many vectors left and right, designed to keep me clear of the Freeze-Zone, and my eventual clearance to Freeway, with VERY CAREFULLY STATED admonitions from the controller to NOT change my squawk code even after I left his frequency and cancelled my plan. I spotted Freeway and began my approach.
Now, there are a few things you NEVER want to hear about an airport, and here are some of them:
You looking for the airport? Oh yeah, just drive down the highway until you see the HUGE POWERLINES GOING OVERHEAD… it’s right there.
You looking for the airport? Oh yeah, it’s the one right in THE EXACT PATH of the Hurricane… just follow the Hurricane and you’ll be right there.
You looking for the airport? Oh yeah, it’s the one right on the ragged edge of the airspace boundary where they shoot you down if you cross it.
You looking for the airport? Oh yeah, just look for the deep valley with hills on ALL SIDES and a tiny delapidated pavement strip (2500×30 feet) art the bottom.
You looking for the airport? Oh yeah, just look for the green grassy area beside the deteriorated pavement where the grass is so tall that you cut it with your prop as you taxi… you like to use your plane as a lawn-mower, right?
Well, all of these things are true of Freeway… 50 feet was the narrowest runway I have ever landed on before this (here I got 30) and while 2500 feet is indeed about the shortest runway you will ever find, when it is at the bottom of a valley, requiring a steep approach where you can’t aim short, it is pretty much verging on ridiculous to get into… and with parking on the grass that they never though to mow, you actually hear a “Bzzzzzzzzzzzzzz” as you taxi, as your prop actually cuts the grass for them. (the prop on my new Cirrus was green and chipped on the leading edge from 1 minute of taxiing). You don’t take a Ferrari onto a dirt Go-Cart track, and my Cirrus was equally out of place at this little pit in the valley… and the annoying thing was that College park was 15 miles away, and a perfect destination… this airport was crap because when it was built, no nice planes were expected to use it… they were all expected to go to College Park.
But we can’t go to College Park, can we?
And why not?
But do you REMEMBER a few years BEFORE 9-11, when some idiot crashed his Cessna into the White House?(successfully) It didn;t get much coverage cause the plane was rolled into a little ball in the corner behind some trees, and I could not even see a scratch on the building it had just hit from the one or two pics that CNN showed. Compare that to what a U-Haul truck can do.
But what’s logic compared to paranoia?
With the US Government, logic is NOTHING compared to paranoia.
Anyway, Ben and I worked for a week, got the scenery code implementation preliminaries done, and I loaded up the bird and headed out after filing an IFR flight plan and picking it up by phone BEFORE take-off… the amazing thing was: the moment I was clear of the ADIZ, the controller was actually a bit surprised that I cancelled all radar services… after all, why shouldn’t I stay with him, for SAFETY!!!?!?!?
Did you know that the rounded shape of a Cirrus fuselage makes it easy for the plane to slide through the air SIDEWAYS? How do I know, and why do I care? Crosswind landings. Coming into Cola Metro, the controller initially cleared me for a runway aligned with my inbound heading, then tried to switch me to a different runway… I asked why. “Because the runway I initially cleared you for has crosswinds 10 gust 17 knots! You can still have that runway if you WANT, of course…”.
My Cirrus EATS CROSSWINDS FOR BREAKFAST. With a speed range from 59 to 200 knots, I can come in at any speed I please, making the initial crab angle a non-issue for any conceivable crosswind. Then, once close to the runway, you have to aim the nose of the plane straight down the runway and bank a wing into the wind so the sideways part of your lift pulls you into the wind, canceling the sideways force of the fuselage dragging in the other direction, thus allowing you to MOVE straight down the runway while POINTING straight down the runway. This bank is problematic for some planes… take a Mooney, which sits low with a long wing… banging a wingtip is not unheard-of in these types of cases! The Cirrus site proudly high on the ground to clear it’s huge propeller (or lawn-mower blade, as the case may be), so a wingtip strike is out of the question. The next problem on the crosswind landing a ground-loop as the tail flips around in the wind… this is only a problem on tailwheel planes, though, which the Cirrus is not. The final problem is that if you touch down a bit crooked (not aiming straight down the runway) then your plane will jerk OFF THE SIDE OF THE RUNWAY AT LANDING SPEED as soon as the tires grab pavement! (plop a plane down onto the runway while it is pointed off to the side a bit.. you see what will happen). This is not a problem for the Cirrus, though, since it has a FREE-CASTORING NOSEWHEEL. Plop it down while cocked at an angle and the front of the plane free-castors and the back wheels DRAG. So then what? With the front free to go with inertia (go FORWARDS), and the back wheels dragging (go AFT), inertia and friction just straighten the nose right out. You don’t have to do anything. The plane fixes itself. Finally, a problem with landing some other planes in a crosswind as that you have the rudder cranked hard to hold runway heading through the touchdown… but the moment the nosewheel touches, the plane bee-lines for the weeds because the nosewheel was cranked right along with the rudder! Duh-OH! With the Cirrus free-castoring nosewheel, though, this is not an issue.
So, between the approach-o-many-speeds, sleek round fuselage resulting in very little sideforce, the tall gear keeping the wings clear of the ground, and the free castoring gear, this plane takes a crosswind like IT’S NOT EVEN THERE.
Thus, my acceptance of the initial runway and perfect landing without the foggiest hint of a problem, despite the trepidation of the tower controller.
Anyway, back home, I set up the computers, and the started the version-8 coding in earnest.
I shall now switch this narrative to the present-tense, since I am taking a brief break from coding at this moment to write it.
Coding version 8 involves large quantities of several things:
1: 99 Posse (AWESOME IPod collection given to me by Lorenzo Santagada, son of artist Sergio Santagada)
4: Macintoshes (OK, it only takes one of those… but after 12 hours per day, it still seems like a lot somehow)
OK so I will explain in order:
1: 99 Posse: TO avoid any further copyright issues, please buy albums from these guys at Amazon.com. Don’t copy. Albums “Cerco Tiempo”, “La Vida Que Vendra'”, and “NA_99_10” kick rocks. …very large amounts of rocks. This group is so awesome I listen to them for 8 hours at a time while I code, the Ipod going deeper and deeper into the huge playlist. They are Italian rock, and truly rock. My favorite songs are “Sub” and “Non C’e Tempo” and “Odio/ Rappresaglia”… the albums above contain various mixes of these songs, each more radical than the last!
Now, they do seem a bit Anti-American possibly (very anti-G8… very liberal.. with a song called “America” that I cannot understand (I don’t speak Italian), but the word “Bill Gates” that is in it is the same in any language, so it CAN’T be TOO good!) This is no matter, though… I am not a pathetic, retarded, petty, tiny little peon that tries to boycott people whose political beliefs are simply different from mine. This alone makes me different from a huge number of people these days.
Anyway, their music is AWESOME, and I am listening to them constantly.
2: Techno. I number of you guys have sent me CD’s and I listen to them as well, along with the INTERNET RAADIO available in ITunes, which, amazingly, I did not know about until a customer pointed it out to me. Remember, no matter how cool the code, you still start to drift off after a while if the music does not keep you energized and focused.
3: Caffiene… Iced tea, Coke, coffee Frappucinos, Starbucks “Double-Shot” Espresso. Lots. So much, I still feel buzzed IN THE MORNING WHEN I GET UP, making 7 hours of sleep enough for this usual 8-hour minimum person.
4: Macintoshes. OK only 1. A Kick-Ass G5 with 23″ mega-display. BE WARNED: THE CPU REQUIREMENTS OF VERSION 8 WILL HOPEFULLY NOT BE TOO HIGH, BUT GET ALL THE VRAM YOU CAN!! 64 MEG AT LEAST! Will you really NEED that much? Probably not, but one of the ways we are getting SPEED is by loading ALL THE SCENERY RIGHT ONTO THE VIDEO CARD, avoiding the slow transfer of information FROM the computer TO the video card. This dumps Nitrous-Oxide into the rendering engine and kicks up the performance, BUT IF YOU COME UP SHORT OF VRAM THEN THE SIM WILL RUN SLOWER as the huge amounts of information are swapped around between the computer, where the info is stored, and the video card, where it is actually needed. Get tons of VRAM.. nothing wrong with 128 meg of it. That’s how much I have.
5: Time. My workday is from noon until about 5 am… that is not REALLY a 17-hour day, because I do eat lunch at the local deli and take walks, but with the commute being about 10 feet from the bedroom to the computer room, and little other to distract me (Citibank and Bank of America are becoming annoyed with me as the bills pile up in a corner, forgotten) the actual workday I get in is not too far from 14 hours or so.. but does that mean that X-Plane-8 is only being written 14 hours per day? NO! Ben Supnik goes to bed at 10 pm and gets up at 6 am! So, each day at 5 am right before I go to bed, I transmit the code (securely) to Ben, which he starts in on it at 6 am while I sleep… he then puts in 6 hours of work on it and then transmits it back to me at noon! This is the beginning of my workday, I have just gotten up and walked across the hall to the computer: the perfect time for me to resume work on it. This way, the code is in development 23 hours per day, 7 days per week. Ben is actually putting in 12-plus-hour days as well… once he delivers the World-Maker/X-Plane code to me at noon, he starts on his code-magic for generating the scenery files, which is done with a SEPARATE program that you have not seen or heard of yet. We have kept this pace since version 8 began to materialize inItaly on August 5, and will keep it up until November 1 when the gold master hits the duplicators.
So what is coding LIKE? Well, there is the constant techno/99 Posse from my fine Harman/Kardon/Klipsch system, in my immaculate house (true genius can function in any environment… but I am no genius… I need a clean environment to write clean code). It is almost always dark because of the hours I keep, and the room is very COOL to keep me alert. I am constantly examining ways to connect strange and disparate equations into a coherent model that will give the highest possible SPEED of application. Why this connection of seemingly un-related equations? It’s because Ben dropped all these mega-alogorithms in my map, and NOW I HAVE TO INTEGRATE THEM! This is the hardest work I have EVER done, because Ben’s stuff is truly esoteric and powerful… much more so than the simple-minded, straightforward code I am used to writing. It is sort of like I have used nothing but a hammer and screwdriver on wood for the last 10 years, and am suddenly handed a total Craftsman toolset and a Stock Car to assemble with it… not easy. At all. But an awesome challenge that is taking X-Plane 8 to new heights… and the final price will be: (sigh, groan) $39.99. I think this is an insult to my work, and Sergio and Ben’s commitment, but my publisher says this is the price to sell to the masses, so there you have it. I think it’s ridiculous but this one is not my decision. I might release a PUBLIC BETA AHEAD OF SCHEDULE with a 2-for-one deal where you get the betas AND THE FINAL RELEASE for $59.99 or something like that… the people of the “House of X-Plane” could have no objection to the $59.99 tag, and can feedback to me during beta to help tune the sim, as is our tradition… and the “masses” can still get in cheap, after the fact.
Of course, to finish rounding out the picture, I have to include the occasional email I get asking if I will do some tiny little bug-fix-type refinement in X-Plane 7, like some guy (OK, Ray ____. I won’t publish his full name so people won’t harass him) who, when informed by me that I will tone down the mild turbulence in the clouds in version 8 (not 7) says: “Am I correct in assuming that version 7 customers will have to PAY for these fixes? … it is blatantly unethical to sell a flawed product and charge the customer to fix the error.”
I don’t mind the 8-hour code-sessions and 15-hour workdays, but some of the customers…
So, to summarize:
Crosswinds: NO PROBLEM.
99 Posse: EXCELLENT.
tall grass: ANNOYING.
Bin Laden running the Dept of Transportation, using Bush as is point-man: CRAPPY.
useless, misguided government and other paranoia: CRAPPY.
15-hour workdays: KIND OF COOL… INTERESTING TO SEE HOW FAR I CAN PUSH MYSELF.
surface-to-air missiles: SORT OF ANNOYING.
customers complaining they don’t get version 8 for free: VERY ANNOYING.