Redmond, Washington-based ACES Studio, the Microsoft-owned internal group behind the venerable Microsoft Flight Simulator series, has been heavily affected by Microsoft's ongoing job cuts.
Development sources have told Gamasutra that a large portion of the dev house's staff has been let go - with multiple reports indicating that the entire Flight Simulator team has been axed.
It started unfolding earlier today when some collegues mentioned that the Microsoft cuts had started. I went to check out techmeme and noticed that all lot of the action seemed to be focussed around the Entertainment & Devices division. And then, little by little, it all started unfolding on Facebook…
The studio has gone. The products are no more.
I feel a little stunned, but can't imagine what the folks who were working in the studio up until this morning are feeling. There were people on the team that have worked on FlightSim since it's subLOGIC days. Did you know that FlightSim is (or rather was) Microsoft's oldest product, in continual development (for the PC) from 1982 through to today?
The community seems to have noticed and popular sites such as AVSim and Sim Outhouse are waking up to the new reality. Hundreds of thousands of people just had their hobby put on hold.
So what now for Flight Simulation? I guess it's a good day for X-Plane, though I think I'd really like to see FlightGear, an OpenSource flight simulator, ahem, take off…
To access the hidden feature, open Google Earth and hit Command+Option+A (note it must be capital A) or Ctrl+Alt+A if you're using a Windows Machine.
However, given my obvious conflict of interest, I'll just take exception to TechCrunch's final statement:
…It wasn't perfect, but it was as good visually as the paid Microsoft Flight Simulator, and in terms of actually presenting real objects it was better…
Obviously they haven't looked at FSX. The two products have both different visual focusses and merits. How does the terrain and imagery look outside of major cities? How do those airports compare? How are the flight systems? ATC?
I'll just stop now before I dig myself into a hole :-)
Actually, I do, but I'm about to squander the last of it away like Jack giving away his cow, without even some magic beans, much less their subsequent beanstalk, to show for it.
I collect DVD's, and have a weakness for certain types of movies and television shows. Sometimes, my standards can actually be fairly high, tending toward well-written dramas, comedies-of-manners - ”Careful there, Vicar“, ”Very droll, Bernard", that sort of thing.
This isn't one of them. Not even close.
No, in this case, I'm admitting to enjoying something terrible. Why? Well, because it has a rather surprising amount of good flying in it. Before Michael Bay gave us Pearl Harbor, before Tony Bill gave us Flyboys, flying scenes in movies and television shows were usually real, and, thus, good. If scenes weren't shot for that particular title, then you might see stock footage. If it was faked, it was usually faked so horribly with models that it was worth watching anyway.
This is laugh-out-loud funny! Well, it is if you're a Flight Sim geek or the one partially responsible for the “what matters are the cool graphics” moments and married to someone who grew up having to endure Bollywood constantly playing in the house…
After reading reviews of One Six Right by Paul and Susan, I headed over to the movie's site and ordered the DVD on the spot. It arrived a couple of days ago and last night Julian and I sat down to watch it.
“One Six Right” is an exhilarating documentary film that celebrates the unsung hero of aviation - the local airport - by tracing the life, history, and struggles of an airport icon: Southern California's Van Nuys Airport. Featuring thrilling aerial photography and a sweeping original score, the film dispels common misconceptions and opposes criticism of General Aviation airports. Through the love story of one airport, past to present, the film shares the timeless romance of flying with all ages.
If you have a love of aviation, or love stunning film making, you have got to pick this up.
“One Six Right captures the spirit, joy and beauty of flight. One of the finest aviation films ever made.” - Harrison Ford
The movie basically follows the history of California's Van Nuys airport from it's humble beginnings through to the present day with lots of great footage and interviews with pilots old and young. A recurrent theme is the continual loss of general aviation airfields all over the country and the fact that once they're gone, they're gone forever. The movie also calls out the unforgivable rape of Chicago's Meigs Field by Mayor Richard Daley.
This weekend was a great one. Good weather and fun with the family.
[Note, unusually I have decided to write this post before processing and uploading the photos. Odd for me, I know. For most of you, dear readers, the photos will have already been added to this post before you read it and this paragraph will be irrelevant. For the few early birds, they'll be coming soon. I just felt like writing this post now.]
Was the preceding paragraph a waste of electrons, or what‽
Yesterday was Museum Day, so Julian and I took full advantage of it and headed off to one of my favourite places - the Museum Of Flight.
This time I got to look at most of the exhibits, including The Red Barn - the original Boeing manufacturing plant. Very cool. Julian was in top form, laughing and joking around and generally doing his utmost to avoid having his dad take pictures of him in front of large jet engines.
The museum was the busiest I have ever seen it, with the parking lot in front of the building completely full, though handily the buildings are so large and airy that it didn't feel crowded.
Today though was a blast. The whole family decanted itself into the Jeep and we headed down south to the Point Defiance Zoo and Aquarium. This place has come along in leaps and bounds. I don't believe I've been there since before Julian was born and it didn't particularly impress Nabila and I then. Now though, the place is a must see.
Maybe it was just the day, but the view over the water from the entrance was just beautiful, as were the wonderful animals caringly curated inside. A particular high-point was the Wild Wonders Outdoor Theater and the two entertaining presenters with an obvious love for the subject matter and joy in presenting it to adults and children alike.
After that we drove off to Gig Harbor. My favourite “place where I'd like to own a second home”. Maybe one day.
The drive was mainly to ensure the kids had a nap - an unusual weekend occurrence unless they are forced to sleep via boredom and the motion of the car. It's my normal weekend trick to ensure an evening unencumbered by cranky kids.
The cool thing about this time though was driving across the Tacoma Narrows Bridge and witnessing the construction of the new parallel bridge. It was definitely an example of awe inspiring engineering.
Shortly after arriving home at three, Julian and I headed out once again for the RC airfield in Marymoor Park. Good fun. We even got to see a textbook departure stall incident where one RC airplane definitely bit the big one.
This was the nth time over the past year or so that I've taken Julian to the RC airfield. This time he actually asked to go there rather than just being taken there by his Dad, and he asked “can we go to the shop and buy a plane?”
Looks like a great hobby for me and the boy to enjoy together.
I hope it doesn't get too expensive.
Actually, given my track record for “expensive” when I get into a new hobby, I'd better start saving…
My former colleagues at Microsoft have released a demo version of FSX. All I can say is wow! You have to believe me when I say that this is no mean feat - actually producing the thing before the product goes final and shipping the demo of a two DVD game within the size of a CD (I have to say, it's mighty close at 634MB :-)
This might sound a bit heretical from someone who spent the last eleven years of his life working on graphics engine (just go and look at the screenshots for Flight Simulator X - mmmmm yummy), but you need more than just a great engine to ship product. It'd be nice if you had a reasonably nice one though.
In fact, you don't need a great graphics engine at all.
But of course, that doesn't matter because they're not selling to the hardcore FPS gamer, and they are making a crap load of money (and raising a load of funding too).
They're building a great experience that appeals to a lot of people.
Good for them, but the graphics still offend my sensibilities - I think they get away with it because their customer base just doesn't know any better.
And don't give me any of that “but our customers' machine capabilities are all over the map - writing engines that work on the full range of machines from no 3D hardware to the latest NVidia monster is hard.”
Yes, it's hard. But everyone else in the industry has been solving that problem for years. Just hire a couple of decent engineers1.
Imagine what it would be like with an engine with the quality of FlightSim or Guild Wars
Now that would be something to write home about.
1 Well, maybe they have - their upcoming features for the next build of the client claims “now with hardware lighting!”. Whoop-de-doo. ↩
On a sidenote, I picked up a 2.16GHz, 2GB, 100MB/7200 rpm MacBook Pro yesterday. It is a wonderful piece of hardware - Dell, Toshiba, etc… need to take note - there's a very tasty new Windows laptop out there now…
Just in case you're going to be at the Game Developers' Conference in San Jose next week and didn't know, two members of the Flight Simulator development team will be giving presentations.
Adam Szofran will be giving a talk on the “Global Terrain Technology for Flight Simulation”:
This talk presents some of the terrain engine technology developed by Microsoft Game Studios. Of particular interest are techniques for handling the large amount of geospatial data required to represent the Earth from the surface up to orbital altitudes. Also discussed are fiber- and thread-based technologies for composing surface textures on the fly at run-time using a variety of geospatial data. The last part of the presentation focuses on how to triangulate a global, multiresolution terrain mesh requiring double-precision coordinates when the rendering hardware only supports single-precision coordinates.
and Adrian Woods will be presenting “The Make Art Button: Batches, Actions, and Scripts”:
Do something once, it's creative. Do something twice, it's repetitive. Do something three times, you can probably automate it.
This session gives artists tools they can use to help minimize repetitive tasks and maximize creativity and iteration. Using the dreaded DOS prompt, Photoshop actions and droplets, and MaxScript, the speaker shows how technical ability can actually unleash creativity. For example, you can use MaxScript to enable in-game visuals never seen before. You can use Photoshop actions to speed up production time. And you can use the DOS prompt. Spend less time getting carpal tunnel syndrome, and more time creating beautiful artwork.
I wish I was going to be there, but my current employer won't let me…
My husband is into the whole Microsoft Flight Simulator world, which is apparently a rather large world with organizations and ranks and events and training and barbecue suppers and satanic rituals and what have you.
Read the rest of this amusing post over on Mel's Diner. And don't skip the comments!
Well, the time has finally come for me to say adios to Microsoft and hit the startup road. This has nothing to do with Microsoft or the Flight Simulator team/product and everything to do with my insane desire to try something new.
In fact, this was probably one of the hardest decisions I've ever had to make - Microsoft and in particular the Flight Simulator team is a wonderful and stimulating place to work and it is hard to walk away from eleven years of history.
What have I worked on in that time? Well in summary, back in January 1995 I joined some friends at a small 3D graphics startup in London, UK. One month later we were acquired by Microsoft and shortly joined the fledgling DirectX (then Games SDK) team. Our product, Reality Lab, became the basis for Direct3D and shipped in June 1996 as the key feature for DirectX 2. After that I worked on DirectX 3, VRML, IE4, DirectX 5 in Windows Multimedia and then moved onto Chrome (who remembers that?) and DirectX 6.
In 1997 we relocated to Redmond.
In 1998 it was time for something different, and I led feature teams on Flight Simulator 2000, Combat Flight Simulator 2, Flight Simulator 2004 and FSX, found time along the way to run the development team at a new studio, work on a bunch of Xbox stuff, build a game engine and scriping engine/language completely from scratch and generally get my fingers into a lot of incredibly interesting pies.
And now it's time for something completely different.
For the Flight Simulator fans in the audience, let me tell you that the product is in a great place. It'll ship on time and look astounding - I've made sure of that!
Anyhow, stay subscribed - my blogging will continue (does it ever stop?) and in fact I will continue to post about Flight Simulator as long as my value-add is still relevant (and the team puts up with me :-)
Although I can claim to be the first Flight Simulator Team blogger, I'm really happy that Mike, Jason, Adrian, Hal, Susan and others are now on board, and delivering a really compelling and insightful look into the world under the hood of Flight Simulator. The conversation rocks. Long may it continue.
There appears to be a general confusion in the forums about what SLI is, how it works, how applications take advantage of it, whether Flight Simulator gains any advantage, etc…
Hopefully this will clear up some of these issues, but first a caveat. I don't have an SLI system and I've never seen Flight Simulator running on an SLI system. This information is based on what I know, so take from that what you will.
SLI itself is a bit of a misnomer. SLI stands for (or used to) [S]can [L]ine [I]nterleaved. Basically, one horizontal scan line goes to one card, the next goes to the other, etc… Now this doesn't mean that you get 2x the performance as there's a bunch of work that has to be done on the hardware no matter what pixels are being filled e.g. clipping triangles, performing vertex shader operations, etc…
This is basically what the original consumer level (i.e. 3DFX circa 1998) was doing, because no consumer 3D hardware performed the geometry transform and full triangle setup on the hardware. It was all done in software and then the final projected triangle with all associated edge derivatives were sent to the hardware. The overhead of the per triangle stuff was only incurred once.
With the hardware doing little else other than filling pixels, the true SLI mode made sense. It also made playing the original Half Life with a 3DFX Voodoo 2 SLI setup a lot of fun…
Fast forward a few years and hardware is doing pretty much all the work, that means that sharing the rendering load between multiple cards very hard. To be quite honest, most apps are geometry and transform bound - the 3D hardware vendors have got very good at pushing pixel fill-rate, while the busses that get the data to the card haven't really kept up. Stick two cards in the mix and you've doubled the data that needs to be sent to each card.
Of course, they could arrange for one card to be a conduit to the other card, or something like that, but I'm just speculating as I don't actually know…
It's very easy to saturate an AGP bus with 3D data, let alone the PCI bus. Just ask any audio developer about the fact that the graphics guys have been eating all the bandwidth.
Now, with PCI Express the bandwidth has gone up again, and we're on our own bus. Also, the graphics card guys need to boost the speed again (and of course they want to sell you more than one of their quite expensive cards), so SLI makes a return.
This is goodness, but as far as I can tell it's not really SLI - i.e. they're not interleaving scan lines, but rather providing a bunch of different ways the cards can be used in tandem. Techniques such as splitting the screen in half and sending one half to each card; rendering one frame on one card and the next on the other card; etc…
So, at the end of the day, it's a way to split the rendering between multiple cards - though it'll probably never get you a real 2x performance improvement. Of course that doesn't matter though - anything better than 1x is good!
So, what about the application (i.e. Flight Simulator)?
The application knows nothing.
It's all hidden under the hood of the driver - there is nothing the application needs to do to enable it, support it or anything it.
Of course, we may do some interesting things that make it hard for SLI to work effectively, but hey, we shipped first. Hehe.
I know you can't please all the people, etc… But I can't stop myself ;-)
Amoungst all the great comments and feedback on FlightSim's presence at the keynote and comments on the content, I keep seeing comments like this:
Quick example: if I see another iteration of quantized gauge needle movement I'm INSTANTLY going to say “why the hell didn't they spend some time and energy into THIS rather than add ANIMALS INTO SCENERY…”
I take it you didn't like the boats bobbing in the water either.
Take two deep breaths and repeat after me. Realism and immersion. Realism and immersion.
Feel better now?
Let's also think about this. Animals in the environment. What's required?
Skinned animation system. Check. Used for the aircraft stuff.
AI systems. Check. Used for the aircraft stuff. And airfield stuff. And other stuff.
New code? Minimal. Distraction to developers? Minimal. Distraction to the panel developers? Zero.
Value to immersion? Lots.
Leveragability of new code into other emergent features? Lots.
If there is an issue with where we're spending our time, at least compare apples to apples. Are you going to have a problem with Ferrari spending too much time on their styling when they could be eeking an extra 1bhp out of the engine?
I think not.
The rich platform we're providing enables content providers (i.e. our art and design team) to provide rich visuals such as animals. I can't wait to see what the 3rd party guys will build.
Meanwhile, I'm off to add a pelican to the sim rather than optimize some shaders…
This was forwarded to an internal pilot's alias. I have tried to find the original post, but it is everywhere. I believe it's true as that tail number is actually registered to the author.
Anyhow, it gave me a warm glow inside.
I have read many posts on the web site from members and on MMAIL who are thinking about owning their own aircraft and looking for ways to offset the cost of ownership. I have heard many reasons for and against ownership. Why buy an aircraft? It's cheaper to rent and you do not have all the hassle with maintenance, fuel and insurance. Well, here is a little story that I think explains it all as to why I own my own airplane.
It was a beautiful Saturday morning. No winds and the temperature was just right. So instead of mowing the lawn like my wife had planned for me, I decided to go to the airport and take the Sport out for a run. She yells back at me, “WELL IF YOU GO, TAKE YOUR SON WITH YOU.” So I ask my son. Want to go flying with dad? In which he says Yea, Can I take my light saber?
You see, my 9 year son thinks he is a Jedi Knight and that our Sport is his personal X-Wing fighter. He is only 4'5 and has to sit on a pillow in order to see over the glare shield and he always carries his light saber just in case we land on a strange planet in which there might be trouble or civil un-rest. Always prepared this one is. So away we go.
THERE I WAS….
We were straight and level at around 6,000ft and I let him take the controls of the X-Wing to do some turns to the left and right. Joshua Approach called and said there was traffic at our 2 o'clock 2 miles opposite direction and my son said to me “Look over there dad, Tie fighter coming right at us”. I told him to steer clear of the Tie Fighter because our lasers were out for repair and we were un-armed. No reason to provoke a fight.
So even though he is having a blast, I am starting to get a little bored and thought, “Let's go do a practice approach on the ILS”. So I called Joshua Approach, requested the ILS 25 Approach to Palmdale Full Approach and off we went. I maneuvered the X-Wing to the VOR and started the turn outbound to the outer marker. Now my son is just really enjoying this. At the outer marker, the blue light started to flash and you could hear the BEEP in the headset. My Son jumps in and said “That Tie Fighter has locked on to us” I said “That's Right” and I started my evasive maneuver on the procedure turn.
My Son is listening to the exchange between me and the controller and wants to chime in on the conversion. I said to my son, “Just hang on; I will give you a chance”. I never should have said that because now he is all excited to talk on the radio. As I start to turn inbound on the turn, the Approach control said “Contact tower when established on the localizer”. So I told my young Padawan Learner “OK, when this needle gets here on the dial, push the radio button and tell the tower that 93 Romeo is inbound on the localizer”.
Now imagine this, I am giving basic instrument instruction to a 9 year old, I cannot get adults to say this during training. So before I can give him something simpler to say he keys the mike and says “REBEL BASE, THIS IS RED 5. WE ARE STARTING OUR ATTACK RUN ON THE DEATH STAR”.
Now this post 9/11 and before I can key my mike and say anything, the tower jumps on and says “RED 5, YOUR CLEARED FOR THE APPROACH TO THE DEATH STAR. REPORT HITS AWAY”
Now I am waiting for the tower to add “And tell your dad to call this number” But I hear nothing else. So we continue the approach. Now my son is in heaven. This is real life stuff to him and he is doing everything I tell him to do as far as tracking the needle. As we approach the outer marker inbound, the light starts to flash and there is that tone again. “Dad, the Death Star has a lock on us”. Yes Son, you keep on the approach, I will worry about the guns.
Everything is going great and now we are approaching the middle marker. My son has noticed the GPS has a red line with an airplane on it and it ends at the Death Star. So he asks me “IS THAT A TARGETING COMPUTER DAD?” Well of course it is, and it shows us where we are to the target. So now he hears Obewan tell him to USE THE FORCE SCOTT and he turns the GPS OFF. Tells me he is OK and does not need the targeting computer because he is using the FORCE.
Now the middle marker light flashes and the tone comes on. I apply full power and the airplane,,,X-Wing,,, Starts a climb. I start the turn to the missed approach path when my son keys the mike and says “HITS AWAY”. The tower answers back with “GOOD JOB RED 5, CONTACT REBEL APPROACH ON 126.1”
We go back to Mojave SPACEPORT, and I decide that the X-Wing needs a bath. So out comes all the cleaning stuff and we spend the rest of the day washing and waxing the turbo jets and laser pods.
So you see. This is why I own my own aircraft. You cannot beat this kind of quality time with your kids. And there is no way you can put a price on that.
As many of you know, Flight Simulator provides real world weather functionality. That is, FlightSim can connect to a service (kindly hosted by the Zone), download the current state of the weather around the world and import that into the sim.
The problem was caused by some network issues at the data center that hosts the service. A router was apparently doing something very odd. This has now been fixed (or rather, I'm told that it has been fixed…)
Anyhow, you can all stop calling our support guys about this problem now - hehe - they've been a bit overloaded (to put it mildly) by people calling to report it. The interesting part is that we have a system setup to monitor the service and nag us incessantly when there's an issue - the reason the team didn't get notified (I think) is that the monitoring is on our internal network, so it can't see an issue when it's related to external access. We need to fix that…
Here's a little snipet of info that might explain some things to a few AVSim users.
The RenderToTexture option in the display settings is used to control how the cloud impostors are generated. If the setting is on, then FlightSim will use the GPU to generate the impostors (if possible). If it's off, FlightSim will use it's own software rasterizer.
The problem people are seeing is that if you replace the cloud source textures with DXT3 textures, then FlightSim will fault if RenderToTexture is off. This is because the software rasterizer doesn't know how to deal with DXT3 textures. In fact it can only deal with 1555 or 8888 textures, which we assert in own internal builds, but there's no failure path for the release build.
I guess we missed the fact that end users might replace our cloud textures with their own…
In a similar vein to The Blurries, stuttering, or hitching (as it is commonly known in the first person shooter communities) is another topic of interest and frustration amongst Flight Simulator users.
Stuttering is similar to the blurries, in that the blurries are commonly caused by a lack of time during the frame to get some other work done, but with stutters the problem is that the work has to be
performed in the particular frame (or series of frames), so the frame rate drops and the visual aspects of the simulation “stutter”.
So what's going on?
I'll assume for the purposes of this post that the computer is up to the job with reasonable performance and that you're not running an Instant Messenger client, email, web browser or any other application
on the system that periodically may hit the network, perform some CPU intensive task or just lock the machine for a while.
I'll also assume the machine is free of spyware and viruses and that it is setup optimally. Personally I recommend taking a look at Autoruns from Sysinternals to make sure the machine isn't also running a bunch of stuff “helpfully” installed by other applications.
OK, so we've got a clean, fast machine and we're still getting stutters. What's causing them?
Flight Simulator does as much as possible to make sure that stutters do not occur, or that the impact is as small as possible. Our performance test suite of machine runs multiple flights and
scenarios on a wide variety of machines, tracking frame rate and variation in that frame rate. Stutters get caught by this and we aim to mitigate them.
A lot of work that can cause stutters, such as all loading of data from disk, are moved to a separate thread where they happen asynchronously. We perform tasks on fibers (as described in The Blurries), balance texture loading to the hardware, and generally try to do the right thing.
But, we're human, and the application is dynamic (especially with users adding in add-ons), so we miss some stuff.
Some things that can be happening:
Fiber jobs running too long and busting through their allocated time slice. Remember, this is cooperative multitasking - they have to play nice.
We upload textures to the hardware once per frame and limit the amount of data we'll transfer based on the performance characteristics of the machine. The limit may be wrong, or boosted too high by users aiming to mitigate The Blurries.
Something just took too long to run… This is the problem one and difficult to nail down.
And time for a mea culpa of behalf of the team. Remember that I said that all disk access was performed asynchronously? Well, that is true except for one case in FS9 - audio.
When we need to play a sound, that sound is loaded there and then. If it's huge, then it could cause a stutter - such as when your wheels hit the runway upon landing and we want to play the wheel noise audio… Ooops. Sorry.
What can you do about it? Well, the short answer is “ask Flight Simulator to do less”. I know that might sound flippant, but things like rapidly changing views, pushing too many textures on a machine with low bus speed and/or restricted video memory, and generally overloading the application will cause issues.
As for the audio issue? Well, you might delete the touchdown sound from the aircraft's sound config file (I can hear screams from the aircraft designers now…) or reduce it's size.
With that out of the way, and in conclusion, it's important to recognize that we hate the problem as much as you do.
But it's also important to realize that we model the entire planet. It's just not possible for us to load up an entire “level” and have it sit resident in system memory. It's also not possible for us to preload all needed textures into video memory.
Even when a lot of games perform this shortcut, you'll still see them stutter with lots of explosions and other stuff going on. It's a hard problem.
Having said that, even though the problem is, by definition, practically impossible to solve with finite resources, we do treat it seriously and work hard to mitigate it.
Reducing stutters is as important to us as having a high frame rate.
It looks like the topic of The Blurries spurred a lot of conversation - it was my highest hit post in the shortest amount of time, and definitely the most commented upon and cited.
So I'd like to start some more.
I have a list of topics regarding Flight Simulator that I'll be drawing from, but if you've got any suggestions please post them in the comments section of this post. I can't guarantee I'll get to everything, but I'll consider anything - please make them graphics or system architecture questions.
Mind you, I'm not about to spill all the beans about all the inner workings :-) But if things have been confusing you, or are a source of frustration (like the blurries), please let me know.
Robert Bruce posts a cool article about Flight Simulator forums and their participants. It's an interesting read and a very interesting reflection about some of the rumour mongers and “I know more than you know” people that live in the various forums.
It's also a spot-on description of the dangers that companies engender by non-participation in the conversations around their products.
One of the topics that comes up a lot on the forums regarding Flight Simulator is that of “The Blurries”. There has been a lot of speculation regarding the cause of this, some of it close to being correct, some of it just plain wrong.
So what are the blurries? Well, they are just one aspect of the problem of resource starvation, most obviously manifesting itself as blurry terrain.
The interesting thing about this issue however, is that the resource we are running out of is time1.
In order to understand the issue, I need to explain a little of the inner workings of Flight Simulator. Although it might be surprising to some, the application actually has a lot to do other than just render triangles as fast as possible. In order to render those triangles, we need to know what to render where and what to texture it with.
There's a lot of data to process at runtime (as you're flying at potentially 500 knots over the landscape). The terrain system needs to load source textures; composite them based on land class data; render roads and other vector features into the composited textures; light the terrain taking into account features such as valleys; figure out where auto-generated buildings and trees are to be placed; exclude some of those due to placed features such as the Space Needle; burn the shadows of the buildings into the textures; and much, much more.
There are also many other systems doing similar things, systems such as AI, ATC and weather.
The way that Flight Simulator handles these tasks is to divide all these tasks into much smaller jobs and then use a form of cooperative multitasking called fibers to schedule them. This system allows us to schedule exactly how much time all this processing gets in order to maintain a consistent frame rate. Without fibers, each system would need to be developed to play extremely nicely with other systems and would need to know how to suspend itself and maintain it's state - we can't have a particularly complex task run without interruption for hundreds of milliseconds.
So in summary, fibers allow us to write complex tasks without stalling the application.
But therein is the issue.
The fiber system needs time to run, so where does it get it from?
It's a bit more complex than this, but basically the main loop in the application keeps track of how long a frame takes to run and it has a target frame rate. The time left over is given to the fiber system. If there isn't any time left over, the fiber system is given a minimal amount of time to run so that some work gets done, but it ain't gonna be pretty.
This is what happens when you set your target frame rate in the settings section to “unlimited” on a system that can't cope.
When running with an unlimited target frame rate (or any target that your system cannot achieve), the fiber system is starved of time, work items take a long time to finish and you end up with a blurry terrain until (if ever) the system finally catches up.
If you're flying at 500 knots and your system is not capable of keeping up with the processing needed, the fiber system may never catch up.
So what's my recommendation? Drop the “lock to frame rate” slider to a level that the system can maintain.
Then drop it a little bit more. Give the system some time to do something else other than just render triangles as fast as possible.
1 Caveat - video memory starvation can also cause blurry textures, but the issue described above is the main culprit. ↩
And another Flight Simulator team member joins the fold! Please welcome Susan, lead panel and gauge systems developer. I think in the few days that she's been blogging, she's put out more useful information than anyone!
That makes eight of us.
Don't you think it's about time our Community PM started blogging? Come on Mike!
It looks like Gmax isn't being canned next week as previously announced by Autodesk. We received an update via email, which they posted themselves in their official forums. Here's an except:
Recently we communicated a plan to cease new development on Gmax and ramp down support on the current offering; this decision was based on multiple factors and data points, including diminished interest from games publishers. Since the announcement, more partners provided feedback that we are investigating -- for this reason we are happy to announce that we will extend the previously communicated November 1, 2005 deadline and continue to make Gmax available to the active community.
Looks like they got the message that quite a few people actually use it…
If you want to experience true virtual flight then you need motion. The following how-to articles represent my efforts into perfecting the least expensive, easiest to build, most versatile motion simulator for home use.
The JoyRider is a two axis flight motion simulator you can build without the use of expensive hardware. It's VERY fast, and SMOOTH and best of all it can be affordably constructed from readily available supplies with simple hand tools.
A quick perusal of my site stats this evening revealed that ASim's main page had jumped to the top of my referrer stats. Hmmm, after a quick look at AVSim I see that they have linked to the flight sim team blogs from the main page. Jason also notes the mention.
Cool! We've been linked to from various articles in the forums, but I guess that a bunch of people had missed those. I've been a lurker on AVSim for quite a few years, and have posted under a few pseudonyms a number of times… It's cool to be in the open about all this now…
So welcome to all my new readers! And if you're just interested in the Flight Simulator stuff, I categorize it all and it appears in the Flight Simulator index on this site, but I hope you'll stay to read all my other ramblings too.
On another note, I'm a big fan of many of the add-ons that the community produces, especially scenery stuff. For example, just take a look at this (Flight Scenery) work in progress from Flight Scenery - and there are many more talented developers like them out there, producing great add-ons for Flight Simulator.
Reaching into the "mail of the wierd" file, a reader points me at a virtual pub crawl... taking place using a virtual aircraft!
The Flight of The Hopper chronicles the continuing journey of The Hopper and its crew as they traverse the world in search of beer. Utilizing Microsoft Flight Simulator, the crew will establish a weekly flight plan which will bring them to a new location, where they will procure a sample of the local brew for consumption on the next leg of their journey.
Note that this is a bit of a rant, normal service will be resumed as soon as possible... Anything I say is not the opinions of my employer, etc..., etc...
In a recent thread over on AVSim, people have picked up on a "fix" to Flight Simulator that helps fight shimmer with objects (such as AutoGen objects, e.g. trees) that heavily rely on alpha test.
Basically, this dll shims DirectX and forces some state settings, in this case both anti-aliasing and alpha-to-coverage.
Putting aside that it is an incredibly risky thing to be doing "Ah, here's a dll that effectively replaces a system component as far as the app in concerned, lets drop it in and see what happens!" - just witness the people that have had problems:
Dropped the two DXOverride files (.dll and .ini) into my FS9 directory and then found FS9 wouldn't start.
Might I need to edit the ini file? If so, does anyone know what changes I would need to make and why??
A friend has a MSI 9800 PRO 128MB card, the tweak is not working for him.
He gets an error message when starting FS9:
"FS cannot run because the version of MS DX installed on your computer is incompatible. Please reinstall DX9.0 by running FS setup."
He reinstalled Windows XP, Service Pack 2, Catalyst 5.8 drivers and FS9 and he stills get the error.
Any help will be appreciated.
Yup - risky thing, but if it works for you, err, ok. Just please don't start calling customer support when random things start going wrong.
Oh, and don't start me on that one. I've lost track of the count of email we check saying something like "Blah add-on won't start because it says FSUIPC is a wrong version, can you help?"
But I digress.
Back to this mod.
As far as I understand it (note, I have not installed it), this mod forces on some newish features on 3D hardware called "Alpha To Coverage". What this basically does is gives you a form of sort-independent transparency It requires anti-aliasing to work as basically it samples the coverage of an output pixel in the multi-sample buffer and uses that to calculate a level of alpha. The problem with normal alpha-test is that it generates hard edges that are unrelated to real geometry - this means that standard multisample anti-aliasing can't help soften the edges.
So, how does this affect you? Well, for a start it forces on anti-aliasing. If you weren't already using anti-aliasing then you just took a big fillrate hit as Flight Simulator his now having to render many more pixels, plus the associated memory requirements for the render targets.
More important is that FlightSim did not know that this is going on. I.e. FlightSim thinks that it's not doing anti-aliasing and is doing different things because of that fact. You're doing things behind it's back - not good (and don't get me started on hardware vendor's "value add" control panels that basically do the same thing). Don't blame FlightSim if you start having panel problems...
Now, lets look at how the fix for alpha-test is enabled in the mod. This is a new feature of some hardware, and not exposed in DirectX 9, so I imagine it is turned on via a vendor specific backdoor to the API similar to this one by nVidia. In this example, a feature is turned on by setting a state that controls adaptive tessellation (i.e. a totally unrelated state), with a value that is a private communication between the vendor's driver and the application.
Does that sound portable and hardware independent to you?
At least if the application is doing it, it has some idea about what is going on (it might have checked PCIIDs to confirm the hardware type, etc...) But in the case where a shim between the application and driver/hardware is doing it? Well, caveat lector...
For those that don't know, Autodesk produces Max and Alias produces Maya which are competing high-end applications in the 3D modeling and animation space many industry types, but especially for game development. Most studios use one or the other. Internally on the Flight Simulator team we use Max, but other studios in MGS use Maya. Max is a very strong product, but Maya has always been thought of as a stronger animation package.
It'll be interesting to see how this one shakes out. Discussion abounds in our hallways...
Yesterday, Nabila and I had the distinct honour of attending Mike Schroeter's wedding to Ellen Webber. Mike is the guy on the Flight Simulator team that builds our incredible core simulation engine.
The wedding was pure class from start to finish. From the wonderful ceremony at St. James Cathedral to the classy reception at the Women's University Club. As expected, the bride was beautiful and Mike was Mike.
The speeches were hilarious, especially the one by Ellen's dad, but we had to leave straight after his Rindercella speech (you had to be there...) to rescue the baby sitter...
I love the art walks. Even though I interact daily with a small subset of the art team (mostly Jason, Pete and Adrian), it's amazing to see what the rest of our wonderful art team are doing with our new graphics technology. They really are putting some features - features that I wish I could talk about - to really interesting uses that I had never envisaged.
It's great to see our idea for a generic and flexible architecture put to such great use. Remove the technological straight-jacket from your customer and watch them get all creative. We're really making a big effort in this cycle to be an enabler for art.
Actually, that's another interesting point. We're quite lucky in the graphics team in that as well as having actual paying customers (i.e. you guys that buy the product at retail), we have the art team are our direct, in-house customer. By providing them with a functional and highly maleable pallette to work with, they turn around and use that to make great art.
I love graphics. It's such an immediate, instant gratification!
As we we're doing the art walk, Nick and Geoff's jaws were literaly hitting the floor. Personally I was astounded with the wonderful quality of the models, texturing, animation and application of the "secret sauce". I couldn't have been happier as thoughts like "I enabled that!" kept bouncing around my in head. It's such a trip, working with these incredibly talented artists (oh, and some of themdon't just build Flight Simulators).
In my opinion, our vision, our design for each release of Flight Simulator could be distilled to a pretty simple equation: Take Reality, subtract the Last Version of FS, and then set about minimizing the difference.
The annual AVSim convention was held this past weekend in San Diego, and by all accounts was a good one. As usual, the Flight Simulator team, represented by our Dev Manager, Carl, was there to give a presentation. There's a good write up on the California Classic site, including some shaky pictures of the slides!
It's good to see the hard work that my team have been performing given front and center attention, but I guess it's always the graphics that get all the glory in presentations *grin*. Mind you, the stuff that was shown is only the tip of the eye candy iceberg: there's plenty more than was shown, and the other areas of the product (i.e. the actual Sim itself) will just blow you away.
I'm really looking forward to the moment when we can reveal the whole product to you in it's glorious, feature rich goodness.
Kevin Griffin, one of the Program Managers on the Flight Simulator team is currently down in the disaster area with his Maule transporting relief supplies. What follows is a email he sent to the team last week and an update relayed over the weekend. Reposted with permission and editted only to remove some non-pertinent private information.
Safe flying, Kevin.
Subject: Katrina Relief Effort
Date: Tue, 6 Sep 2005 22:36:26 -0700
From: Kevin Griffin
Tomorrow night I will arrive at Central Texas airport, Lago Vista (5R3) to fly relief supplies via the Maule to airports in Mississippi, Louisiana and surrounding areas. A church group has stationed an unlimited supply of relief items at Lago Vista. Already they have delivered >70 loads (about 17,000 pounds) & made a HUGE difference in people's lives. There are currently 17 volunteer pilots, including myself and 1 other friend who is a pilot & Microsoft employee. We will be flying dawn to dusk. No night flights that I'm aware of as there is no power at many of the destination airports.
While this effort is entirely at our own expenses, (although volunteers are boarding the pilots and logistics volunteers in their homes around the airport), if you feel like donating, no gas money offer will be refused. Even though gas prices there for Avgas are only $2.25 a gallon, getting there they average around $3.80-4.50.
I have heard the military is not allowing photographs, but will do my best to keep you all appraised of the situation.
And here's the update:
Sent: Fri 9/9/2005 9:27 PM
Subject: FW: Friday: Update: Kevin
Volunteering for Katrina Relief Effort
Good evening all.
I was finally able to talk with Kevin for about 20 minutes tonight - it was good to hear his voice and hear of all the wonderful things that they are doing for people in need.
Let me try to piece together all of the information he gave me .. which was alot.
He has taken about 200 pictures so far, but without internet connection, sharing them out will have to wait until he comes back home.
Today he flew to Hattiesburg, Mississippi (not Slidell as originally thought). 8.5 hours of flying total and over 400 miles each way. The destruction from the air is very hard to realize. Most of the areas that have been hit by the hurricane look like "junk yards" from the air. Once he landed, however, he saw some of the damage at the airport. He told me of a hangar that looked like it was ripped to shreds. The hangar door had been completely torn off and had landed on the wing of a King Air still parked inside. The insulation and metal was just hanging from the structure which was once a hangar.
Hattiesburg is a staging area for the coast. Most of the supplies that are being flown in are being put on trucks and transpored to more remote areas.
Kevin transported about 400lbs of cargo today - including baby formula, rice, top ramen, mac and cheese, cookies, canned food, other non perishable items, and vegatables. All of the volunteers today, transported over 10,000lbs of cargo today alone - all of which has been donated. He told me that they were on the local news last night and, this morning, local residents start showing up at the hangar asking them where they could donate ... their trunks were full of supplies.
There are volunteers everywhere - at Lago Vista, they are there to load and balance the airplane, take care of the pilots, and a mechanic to ensure the planes are in good condition - at the destination airports, they are there to unload the planes and put the needed supplies in trucks (trucks are usually waiting for them or arrive shortly after they land - after hearing them approach on radio frequencies).
There is a lot of aircraft in the area. There are Relief Flights, which are all cargo (like Kevin). There are Angel Flights, which are transporting people out of the area. The Civil Air Patrol is there as well as a lot of Military aircraft.
When I asked him about how he was holding up - he told me again about the wonderful volunteers. The family that he is staying with is about a 20 min drive from Lago Vista airport and is housing both Kevin and Alan (the other pilot from Seattle). They take them to the airport in the morning and come back and pick them up in the evening. They are also providing them breakfast and dinner. He is very thankful to be getting a good nights sleep and good meals after full days of flying and loading/unloading supplies.
Tomorrow, Saturday, has already been set. Kevin's airplane is fueled and loaded with supplies - ready to take off. Tomorrow morning he will be going to Slidell - the flight will be a bit closer than Hattiesburg was today, so he may make two trips (which would probably make for even a longer day)
I told him about everyone here at home and their overwhelming support and pride. He enjoyed hearing as I read the emails and told him of the wishes that everyone has sent. He wanted to thank you all for your support, thoughts and prayers (as do I) - Thank you too for starting a "fuel fund" for Kevin... fuel is costing about 500.00 - 600.00 a day, so this fund is greatly appreciated.
When I told him that I was sending updates to everyone, he told me of a little story which he found a bit funny... when he landed today at Hattiesburg, he noticed that the air was thick with "fly" like bugs. He was told that these were "Love Bugs" and that they are not normally in Mississippi, but rather found in Florida. The hurricane had picked them up and dropped them off there... They were so thick that when Kevin came back to the airplane after it being unloaded, they had covered the airplane in a blanket (he thinks they were attracted to it). He had to use a papertowel to wipe them away just to get the door open... ick...
Again, thanks to everyone for your overwhelming support.
I'll continue to keep everyone updated, although I think that information may slow down as his weekend sounds like it will be long hours and a lot of flying.
Over on his blog, tdragger (a PM on the team) posts a great response to a thread on the AvSim forum regarding backward compatibility in Flight Simulator. So of course, I need to add my rather overpriced 2c.
Although never a box feature, it has always been important to us on the team to maintain backwards compatibility going two versions back for scenery, aircraft, AI, terrain - basically any content that the end-user can add onto the product. Sometimes a few things will break, but that break results from well thought out trade-offs.
Most of those add-ons are graphics related (scenery models, placements, aircraft models, etc...) but some are other forms of data like flight models. I'm going to talk about the graphics stuff here.
A lot of the conversation on AvSim seems to imply that we are trading-off increasing the visual fidelity of the product for supporting some old models. Nothing could be further from the truth. The engine is architected such that the core rendering engine is abstracted and the 3D model and database system access it by well defined internal APIs. When we revise the graphics engine we do so without breaking the fundamental way that the object system (and any other client such as weather) accesses it. What we may do however, is provide new features in the graphics engine that can only be fully taken advantage of by newer models that specify new parameters such as bump maps, skinning information, specular maps, etc... There's a whole bunch more visual juice than that - you'll just have to wait to find out what...
Of course, newer models can take advantage of that, but what about old content? Content that might not map well to the newer system? Well, it goes through a translation. Sometimes that translation is static, sometimes it happens on the fly.
Other issues that are interesting to deal with are those old forms of content that effectively say "Here's a triangle, ohh, here's another one. Here's a new texture. Errr, go look at the airspeed. Here's another triangle." Modern graphics systems really like "Here's 5000 triangles and a full definition of the material, go and be excellent". Of course, this is the current architecture.
Other issues to do with backward compatibility include visual consistency. If everything in the world is now bump mapped, specular mapped, squishing and swirly and making cups of tea at the drop of a hat, the old content is going to stick out like a sore thumb if rendered naively. So we do things to alleviate those issues.
So, in conclusion, it's not a matter of old content giving us a backward compatibility boat anchor around our ankles. It's a matter of us thinking though carefully how to push old content though a new pipe.
Now, for the other issue.
I've lost count of the amount of times that I've read on forums "Why can't Flight Sim look like my <insert FPS de jour here>?" I wish we could, and we're striving to make the visual fidelity of the product on a par (or better) with the best graphics engines out there.
But you have to recognize our constraints. Flight Simulator allows you to be anywhere on the planet, at any time of day, in any day of the year, at any altitude (or attitude for that matter). Most other games have your eyes approximately six feet off the ground at a fixed time of day in a well constrained location. Everything is prelit and stage-crafted for that visceral experience.
I'm not trying to make excuses here, but you can't compare apples to pot roast.
My presentation at Meltdown seemed to go over really well. Pretty well attended and lots of questions. I was surprised that most of the questions were to do with Flight Simulator itself rather than DirectX 10...
Another cool thing was that I was given an XM satellite radio (the Delphi one) as a thank you/commemorative gift. So that's now installed in the Jeep and working well. I have to say that I'm very impressed with satellite radio so far, especially as XM carries the BBC World Service.
Even though I'm on vacation, I'll be at the DirectX team's Meltdown event this Tuesday and Wednesday. On Tuesday I'll be giving a presentation on the work we're doing to prepare for DirectX 10:
Flight Simulator: Preparing for DirectX 10 Speaker: Steve Lacey
Flight Simulator is a graphics intensive application with a vast amount of pre-existing content. We model the world. In this talk, we'll look at the title with respect to features that will be enhanced by DirectX 10 and new features that will be enabled. We will also look at the processes we are currently undertaking to smooth the transition process.
If you're going to be there, please come and say hi!
Yesterday, Julian and I went out for a bit of a drive around as he wouldn't take his normal nap. We did the usual trip to Best Buy (picked up a copy of the latest Harry Potter...) and then I thought we could take a drive through Marymoor Park - I though there would be a Cricket match on, and indeed there was. Sadly, that was when he decided to sleep.
I watched the match for a while, and when he woke up we headed over to the RC Aircraft airfield. He loved it! We saw some great aircraft being flown and he got to "Oooh" and "Ahhh".
For those of you attending the International Flight Simulation Conference today in Blackpool, I think you're in for a treat. Carl Edlund our development manager is presenting and his presentation should (ok, will) have a lot of cool content.
One of the fun things I get to do every once in a while is act as voice talent for various titles being developed here at MGS. For example, I was the Mech pilot 'Nuke' in MechCommander 2 and the Concorde co-pilot in some flights in Flight Simulator 2000.
Well, this morning I got to do some more voice work for another project.
It's a fun and interesting diversion from my normal work, and being from the South of England, I get to put that BBC accent to use!
"MS did such a beautiful job with their simulator program, that I could literally sit there in the den after retiring from aviation after fifty years as a professional pilot and digitally relive almost any flight I ever made in real life in a photo quality reproduction of the exact aircraft I flew on any given day or night and in the exact weather the flight was flown. I could pull almost any cross-country flight out of my logs and re-fly it exactly as it was the time it was done."
"The Sim Icarus Flight Deck is a real-time flight simulator that accurately recreates the primary flight accessory controls of the Boeing 777 aircraft. The discrete hardware is connected to a programmable logic device (PLD) that detects an analog state change and converts it to a binary signal. The binary output is interpreted by a program named EPICINFO and sent to Microsoft Flight Simulator 2004 (MSFS2004) via FSUIPC. Designated analog state changes are reflected in the on-screen display of MSFS2004. Additionally, the primary flight display (PFD) and navigational display (ND) are run on client computers using the Project Magenta software package. What sets the Sim Icarus apart from other flight simulators is the fact that it is modular and customizable. The software can be coded to meet the customer's needs at a cost far below that of most simulators."
"The Starship Diaries chronicles the adventures of a Silicon Valley survivor who buys a Beechcraft Starship and travels around the world, meandering around the planet over the period of two years."
It's a surprisingly epic book for a journey that never actually happened.
Author Dallas Kachan found success in Silicon Valley. That's true. And the wealth of detail in the book about each of the 38 destinations around the world visited is true, all thoroughly researched. The technical detail about flying is quite factual, and the author maintains even the travel stories actually happened. The only part that didn't actually happen was the flight itself. Kachan used Microsoft Flight Simulator to fly each leg of the 38-flight adventure over the course of the same two years as in the book, using real-world weather and traffic."
Yesterday, Robert Scoble from the Channel 9 team came to visit the team - Robert and I walked around the halls, chatting whilst the video camera was running and talked with various developers in their offices (Victor, Gene and Adam), testers (Brent and Hal) and PM (Mike). It was a blast!
I think we got some really good video which I hope the developers out there (as well as the Flight Simulator community) will enjoy.
I also checked out iPodder for the first time after reading Robert's entry about it. Very cool - the play list integration with Window's Media Player just worked and then so did syncing those 'casts to my PocketPC. Of course now I need to get one of those FM transmitter thingies so I can listen to the 'casts in my car...
A couple of days ago we did the video shoots for the presentation the Flight Simulator team is doing on the "Myths Of Flight Simulator" or something like that. I got filmed for a few sections on graphics performance, video cards, etc... so enjoy ;-)
Assuming I can get hold of the videos I'll put them up here somewhere.
btw - say hi to Victor (Flight Simulator Dev Lead) and be kind to him ;-)
Since it moved to Windows back in 1995, Flight Simulator has had a great history of supporting newest innovations. Case in point our multiple window and multi-monitor support.
We aim to allow as flexible an experience as possible. When you're running windowed, you can create new windows with different views on the scene (cockpit, spot plane, etc...) and run this all hardware accelerated on multiple monitors and fullcreen multi-montitor.
I don't know of any other entertainment title (or non-entertainment for that matter) that allows you this flexibility. Of course, this flexibility comes with problems, most notably that the messages flying around can cause up to 7 device resets when switching from windowed to fullscreen mode. This usually ain't to bad unless you're running on ATI hardware with older drivers, which can cause lots of monitor clicks and flickering.
Also, of course, our users love to complain about idiosycrasies within the system (which there are many, and of course they should complain about the issues).
Anyhow, time to fix it. Last week I started rewriting the entire system. This should make the code easier to maintain, faster, and cause less instability during transition. We'll see how it goes...