Random Thoughts

Tech, words and musings from an Englishman in Seattle

Cat and mouse on Xbox Live

I just finished a very fun session on Xbox Live.

I was playing some single player PGR and then hopped on Live expecting to get roasted as usual when I happened upon a session full of cool people. Everyone was friendly, joking around and there was no “annoying” talk. Plenty of trash talk, but no unpleasant stuff.

Unusual…

One guy suggested “Cat and Mouse”. I'd never played this before and neither had many of the others, so it took a while to set the first game up. It basically involves pairing up via the colour of your cars. One person in an A class (like a Ferrari) and the other in an E class Jaguar.

The first team to get the Jag across the finish line wins, so the Jag attempts avoid trouble while his teammate in the high performance car attempts to basically run everyone else of the road and block for the Jag.

Huge amounts of fun!

Many thanks to CSpec0, who was my teammate and almost helped me to a win.

Mind you, it was tdragger that joined in on the fun and denied me that win…

FlightSim's “RenderToTexture” option

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…

So now you know.

RSS Bandit rocks!

Dare Obasanjo has just released the new version of his aggregator, RSS Bandit, and to put it bluntly, it completely rocks.

For the past eight months, I've been using my own home grown aggregator Katana. I wrote Katana as an experiment in C#/.Net programming and because nothing else out there did everything I wanted an aggregator to do.

Now, RSS Bandit has come forward in leaps and bounds. My favourite features?

  • The “River of News”/Newspaper view when clicking on a feed rather than the an article.
  • Great feed discovery.
  • Tabbed browsing.
  • Performance. This release is way faster than previous releases.
  • Support for folders. This is a key one that many other aggregators miss.
  • Newsgroup integration.
  • Style. Somewhere along the line, RSS Bandit got sexy…

If there's one thing it's missing, it's the ability for comments to appear in the article window, inline with the article itself. I really like this feature in Katana. I'd also like some form of visual notification (article/feed in italics for example), that there are new comments available.

Other than that, I think I'm hooked. The “River Of News” view has accelerated my blog consumption.

I don't have enough time to keep working on Katana (though I'll still be using it for Podcast downloads), so, regretfully, I'm freezing it.

A Brit Abroad - November 26, 2005

Welcome to another edition of A Brit Abroad! In this solo edition I chat about Thanksgiving, cameras, the Xbox 360 and my upcoming conversion to Windows Media Center.

Today's music is courtesy of the Podsafe Music Network. “Coma Girl” by Joe Strummer And The Mescaleros and “Fire Escapes” by Supercreep.

At just over 35 minutes and weighing in at 24.2MB, It's A Brit Abroad!

Show Notes

00:00 Name and date check.

00:05 Intro sweeper and music.

00:16 Introduction to the show.

01:15 Planning for the show.

01:31 Podcast Paul's Swaziland Aids Appeal.

04:40 Thanksgiving.

08:33 Buying a digital SLR.

11:42 Music: “Coma Girl” by Joe Strummer And The Mescaleros.

17:00 Xbox 360.

17:30 Windows Media Connect.

18:14 Photo Story.

19:00 Jeff Minter.

21:50 Windows Media Center.

26:02 Cablecard for MCE.

27:54 Music: “Fire Escapes” by Supercreep.

34:30 Conclusion. Comments welcome, both text and mp3 - steve@steve-lacey.com.

35:06 End.

Enjoy!

Feeding BritCaster.com

Finding time to podcast

I've had a bunch of email comments from listeners saying in effect “get off your arse and produce another podcast!”

Hehe. I like my listeners.

Honestly though, I've had the show planned out since Wednesday, the music selected and it all setup in Cubase. The trick is finding the time when the house is quiet. That normally happens either in the evening after 9pm or nap time during the middle of the day, but this week events have conspired (Xbox 360, Thanksgiving, tiredness, Julian not wanting to sleep, etc…) to keep me away from the microphone.

Tonight though, it will happen. I will make it happen.

Honest guv'nor…

Thanksgiving

I like Thanksgiving, it's my favourite holiday even though I'm not an American.

Back in October 1997 when I arrived in the USA, I didn't really know anybody, and when Thanksgiving rolled around at the end of November and everyone was leaving on their cross-country trips to visit family, I was at a bit of a loss (actually, I had a ton of work to do and the prospect of being able to get it done without any distractions was quite appealing…)

But then, Jason White, an evangelist on the DirectX team invited me to his place on Capitol Hill in Seattle. It turns out he'd collected up all his British friends and others who had nowhere to go. I had a blast.

The next year, an American friend, Sarah, invited me to spend Thanksgiving with her family.

The following year, and every year since, I have been invited to friends Dawn and Darwin's house. They too had been collecting the waifs and strays.

Back in 1999 this was very much a food, beer and football event - and a lot of fun. Over the years, lots have spouses and kids have been added to the event and it have really morphed from a bunch of friends to a real friends and family day. These guys really are my family over here.

On Thursday, the day was actually spent at CJ and Karen's house as Dawn was recovering from the birth, not a few days earlier, of their second child, Gregory. Welcome little dude!

Of course, these days it's all about the kids. They've taken over.

Some of the kids

Now I'm dangerous

I've finally grokked marquees, masks and layers in Photoshop CS2…

CJ in studio

Opening the Xbox 360's box

Unpacking the Xbox 360 felt very reminicent of unpacking an Apple product. Everything in the box was neatly wrapped and fit perfectly in the box. Everything was wrapped in an appropriately coloured piece of plastic wrap.

Hell, even the batteries for the wireless controller were wrapped in matching green plastic.

Whatever we're paying the industrial designers for the Xbox 360, it's not enough.

I have to say though that the box that it all came in was damn heavy, mostly due to the power brick. The only fault of the packaging is that it didn't have a handle - the box is awkward to carry at that weight.

But once setup, connected to the net and attached to the 50" plasma and set to 720p, it is gorgeous. The media connect stuff just works - I was viewing pictures and listening to audio streaming from my PC in no time at all.

Oh, and the games are pretty good too :-)

Xbox 360 advertising

OK, I admit it, it's taken a while for me to latch onto the potential behind Peter Moore's advertising campaign.

I'm now a convert (Shawn, you win). This absolutely, freaking, rocks.

The Jump Rope and Water Balloon adverts left me feeling: “err, OK, but what did you actually tell me about the product?” But that's not the point.

I guess I'm too “type-A gamer”; too “get to the point”; too “anti-Madison Avenue”. But I see the light.

He's taking on Sony at their own game.

And he's winning.

The Stutters

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.

Perhaps more so.

Gun control?

As this is my 500th post, I thought I'd make a splash with some thoughts that have been rattling around my brain for a while - it's time to lay them out and invite comment…

Guns, weapons, call them what you will ([“This is your weapon, not your gun. It's for shooting, not for fun”]), are a necessary part of the world. They are a tool; a means to an end.

And they actually can be a lot of fun.

Contrary to popular belief, the UK is not gun free. Growing up, I was the captain of my school's rifle team (303 prone), had a number of friends whose fathers owned rifles (one of which was a hobbyist gunsmith) and spent many happy afternoons at an outdoor range - sometimes shooting, sometimes operating push-up targets standing in the trench, pushing up mechanical targets as the shooters walked down-range, popping them up as the shooters dropped prone on command - I'll never forget the occasion when the guy who has bearing down on my target flipped his Sten to fully automatic and cut the target in half…

I enjoyed it. It was a controlled, safety-conscious environment.

And damn, was I a good shot.

When I moved out to the States, I met a number of people who owned guns. I went out shooting with them and had a blast shooting at reactive targets.

It's a great sport.

I also have no problem with hunting, or any other responsible firearms related activities. But what the hell is it with the whole concealed weapons, own as many guns as you while like storing them in your closet, thing?

In the UK, yes, the really bad guys will have weapons. But in the general case it ain't gonna happen. In the US, you're always worried that someone might be “carrying”.

It all seems to boil down to the second amendment. The right to bear arms.

A well regulated Militia, being necessary to the security of a free State, the right of the people to keep and bear Arms, shall not be infringed.

What do you believe was the intent there?

Maybe I'm wrong, but that amendment was written to enable the citizens of this country to protect itself against a dictatorial government. To protect itself against the very thing it was leaving behind.

Now, I'm probably the first person to say this government needs to be dismissed, but I don't believe an armed citizenry is going to make it happen. Nor should it.

Surely, the reason we have the Supreme and Federal court systems is to interpret the Constitution and amendments in the spirit in which they were intended. Blind, to the letter interpretation gives proliferation and protection into hands for reasons unforeseen and unintended by the founding fathers.

Heck, I'll save the problems of blind interpretation by religious zealots for another post…

There seems to be so much confusion, reinterpretation and changes in the law that it seems obvious to me that we have no idea what they meant, and that to say “it's my second amendment right”, means that you get to do what you want with your weapons and carry them where you will, because “I can't afford the Porsche to make my dick look bigger, therefore this gun will have to do.”

Can someone please tell me why you need to carry that Glock into my child's daycare?

Maybe I'm wrong, but then I'm just a Brit who can't vote and gets taxed for the priviledge…

Asbestos suit on.

Mars

It's always cool to see the planets in the sky at night, and with tonight's full moon and the brilliantly clear sky we can see Mars, dramatically shining just to the lower left of the Moon.

Now if I only had a camera that could capture it

The Movies

Lionhead's new game, “The Movies” hit the shelves last week.

Imagine you could make any movie you wanted to. Imagine you could pluck someone from obscurity and make him or her the hottest star in Tinseltown. Imagine that you had control of an entire movie studio, competing with others to create a string of box office smashes. Imagine being able to use your judgement alone, deciding whether success lies with epic action pictures or lots of low budget, hammy 'B' movies.

As well as being a cool looking god-game, you actually get to generate real movies, and many of these movies generated by players have begun to appear on Lionhead's site.

Some of these are great; some of them are very, very wrong

Photoshop tip

I just installed Photoshop CS2 and have been playing around with it. I must say, this looks like a must-have upgrade so far.

Some interesting stuff found that I've found:

  • Massive support for the general stuff you do with digital photos. Lens correction, perspective stuff, a whole load of new RAW thingies.
  • HDR as a first class citizen.

You could probably do all this before, but it appears to be a damn sight more accessible. Maybe that's just because I'm a wannabe art dude who's still incapable of figuring out masks…

Anyhow. Tip time.

When doing the digital photo thing, especially when scanning and processing a bunch of old photos, I find myself rotating and cropping images a lot. The tricky thing is the arbitrary rotation - it's very much trial and error.

Well, if you go to the measure tool (right click the dropper - it's the third item), draw a line that you want to be horizontal and then do an arbitrary rotation, you'll see the angle automatically filled in! Just apply and you're done. No more trial and error.

But then you probably already knew that.

Memeflow bug fix for IE

In my last update to Memeflow on October 30th, I broke the ability to add a new block of links when using Internet Explorer.

Either everyone is using Firefox, or no one has created a new block! I hope that hasn't turned people away from the service, but no one has reported the bug either…

Ho hum. Fixed now.

btw, Memflow is now standing at 214 registered users…

More on the Digital SLR decision

A few days ago I posted a call for help regarding my upcoming purchase decision of a digital SLR.

It started out as a choice between the Canon EOS 20D and the Olympus E-500, and has now morphed into a decision between the Canon and the new Nikon D200.

Wow. Canon versus Nikon feels like Apple versus Microsoft!

Most people in the comments (by the way, thank you, thank you, thank you) favour the Canon, but in the grand scheme of things I think it comes down to personal preference and your history with either vendor. If you've got a lot of time and history (especially lenses) invested in a particular vendor, then you're much more likely to stick with them.

After reading the comments and cruising websites, it feels very much like a religious war, similar to the Microsoft versus anyone else debate.

Eye opening.

Anyhow, make of that what you will, but I think I'm going to be non-conformist and go with the Nikon D200. I went to the local camera store that I've done a lot of business with (I even bought one of the first digital cameras there back in 1996 - a Casio something-or-other that had a 320x240 resolution - no mega pixel there and no flash - it was useless) and had a long discussion with a Canon owning sales guy who was incredibly passionate about the topic.

He laid out all the facts and led me to the conclusion that the Nikon is better for me.

Respect. Cameras West in Bellevue. Highly recommended.

And that makes eleven…

With the addition of Mike Zyskowski (aka Z), community PM, and Norah Hogoboom, test lead in all things linguistic, the number of bloggers on the Flight Simulator team now totals eleven.

I wonder if that's a record team percentage at Microsoft?

Another reason I love my TabletPC

This might seem obvious to most, but the pen itself and the ability to ink over an image is incredibly useful.

Yesterday, I received a form in a PDF document that I needed to print, fill out, scan and email it back to the person that sent it to me.

With the tablet I just printed it to a tiff, opened up the tiff and filled it out by just writing on the image using the pen and then just emailed back the resulting document.

So simple and no hassle.

Faxes (remember those?) are just as easy as our corporate email system is tied into a fax system: the fax arrives and gets emailed to me. I then ink all over it and fax it back via email.

Magic.

Meeting Ewan Spence

I don't know how I spaced on mentioning this, but I met up with fellow Brit Ewan Spence on Saturday night (though he'd rather be termed Scottish, thank you very much…)

Ewan was recently nominated for a BAFTA for his Edinburgh Fringe Festival Podcasts and also runs the very successful TPN Rock podcast.

He's out here for the Portable Media Expo amongst other things. He dropped me a line as he was in Seattle for the weekend, so we met up for a beer.

Interestingly, he managed to snap a not too unflattering photograph of me.

Digital SLR help needed

I'm looking at getting a Digital SLR, and am currently thinking about either the Canon EOS 20D, or the Olympus E-500. Here's a link to a side-by-side look at them over on Digital Photography Review.

My question is what do you guy's think? Is any reader an expert in this area?

The Omlypus is about half the price of the Canon and the features look comparable to me, but the Canon has a lot of favourable reviews and is now over a year old - is something better coming along? I hate buying expensive consumer electronics only to have it be out of date the day after I buy it…

Help!

Flight Simulator Wordsmith

Please welcome Brian Hunt to the Flight Simulator blogging fold. Brian works on the user experience aspect of the project - from words though the UI and much more.

You might also want to ask him about his interest in archeology… Hopefully he'll post a bit about that.

Topics of conversation

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.

The rumour mill

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.

Recommended reading.

The Blurries

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. 

More Flight Simulator blogging goodness

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!

Blowing Stuff Up

Joe Huffman, who I remember as nice guy and a great developer working on DirectX back in the day, runs Boomershoot on his property in rural Idaho. I remember that when Joe was working with us, he would commute weekly between Redmond and Idaho.

Anyhow, I'd recently found Joe's blog and saw that King 5's Evening Magazine had covered the event. You can find the video via the link in Joe's latest blog entry.

Looks like it was, ahem, a blast…

© 2001 to present, Steve Lacey.