Friday, December 23, 2005

Instant Gratification

I've spent the last week performance tuning X-Plane 830. Performance tuning is a rewarding change of pace from regular global scenery development, because the gratification is instant. Run the sim, get a framerate. Twaek code, run the sim again, get a higher framerate. The gains are immediate and quantifiable.

By comparison, work on global scenery is an exercise in deferred gratification and unpleasant surprises. I write a lot of the code before I have artwork; the results don't look good until later when the real images are dropped in.

This is a picture of X-Plane 8 beaches with testing textures; Sergio made a beach texture with a descriptive word on each segment and colors indicating their uses. In the simulator, I can verify that the texture placement is correct, the textures line up correctly, they're not cut off, etc. When people post screenshots of the new global scenery I am usually surprised by what it looks like, because I spent most of the development time looking at images like the one on the left, not the final product.

The unpleasant surprises come from the size of the world: given how big and varied the world is (and how unreliable our global data can be at times), there will always be a location where the particular local data causes our algorithm to make bogus results. A few users have reported vertical walls of water; a classic global data varation problem. Given all of the combinations of shapes of water bodies overlayed on elevation data, our flattening algorithm doesn't always get it right. Since the water body and elevation data may come from different sources, it's possible that the water body data is saying there is a lake where the elevation data is saying there is a mountain!

Anyway, enough babbling; Happy Holidays to everyone! Soon we will have a New Year and a new beta of X-Plane - in the meantime, enjoy the time with your families and fly safe!

No comments: