Tuesday, April 21, 2009

What's in a profile?

I haven't had a lot of game-related news lately. Unfortunately, I have a son in the hospital, and the time where I would normally be at home playing games, I'm instead in the hospital room keeping watch over him until he gets better. However, I did get an opportunity to conduct a bit of game-related research, so I figured I might as well share.

He was recently moved into a room that happens to be equipped with an Xbox 360 (this is truly one of the finer children's hospitals), so to make his stay more comfortable, when I packed my bag for my overnight stay, I included some of his favorite 360 games and my memory card, to which I moved his gamer profile. It's a little thing, but I thought being able to sign in with his own gamertag might give him a little taste of home that he might appreciate.

The 360 is, unsurprisingly, not connected to the internet, nor does it have a hard drive attached. (The chrome DVD tray suggests that it has been purposefully removed.) I happened to get here a little late, just as he was falling asleep, which meant I could play around a bit with the 360 myself.

I booted it up, and the first thing I noticed was that it had the old blade interface. I didn't realize how much I missed it. It was so quick, so straightforward, and so familiar, even after all this time. I felt like I was looking at the "pure" dashboard again, not some clumsy façade designed to hide the "real" system from me. It was like going from Vista to XP.

The next thing I did was sign in. On the list of profiles I have on my memory card, a couple have as their gamer picture, a shot of their Xii. I was a little surprised to see this Xii picture on the "sign in" list in a non-Xii-enabled dashboard, but what is a gamer picture but a little bitmap? There's no real difference between that and any other bitmap you might download from Xbox Live for your gamer picture, and that is stored in your profile.

I knew, too, that achievement progress must be stored in the profile somewhere. Once, when I was after a certain achievement ("Knockout King" from Big Bumpin'), I was getting desperate to know how close I was getting. (My issue, as I would discover later, was that the achievement text was incorrectly written, and so when I thought I was doing the right thing to get closer to the goal, I really wasn't.) So I used a tool that let me access the 360 hard drive from a PC and dumped my profile data file to my PC's hard drive. I did this on two consecutive nights and attempted to find the bits that changed, to see where my progress might be stored and attempt to decipher how close I was getting. I never did find that out, but I did notice that the text of the achievement was in my profile. (Several times, in fact; probably a function of whatever database format they use for storage.)

It therefore came as little surprise to see that I could pull up "Achievements" and see the achievements I had earned. Although it might come as a bit of a shock to see that you can pull up every achievement, earned or not, for every game you've ever played. Included in that is the achievements' pictures. (The drawing speed was just in the range of perceptibility; I noticed games that used the same picture for multiple achievements, those achievements' pictures would "pop" on the screen at the same time instead of being drawn individually, which would suggest that achievements that share a picture might only have to store that picture once.)

It's probably worth noting that arcade trials that I had deleted from my profile in the NXE, did not show up here. Although this ability to "hide" 0-point arcade games from your gaming history is a new feature to the NXE, apparently it was implemented in such a way that hides it from the old dashboard as well. Maybe someday I'll do another data dump and see if the data's still there, just hidden; but from what I can tell, I would guess it's really not.

Without testing, I already know, too, that games can use the profile for some storage, besides just achievement details. Whether they are limited as to how much data they can store in the profile, and to how much, I don't know. But, for instance, I know that one of those Burger King games lets you create a custom racing outfit, and when you do, no game data file is saved. (The other that lets you customize a racer does use a separate data file. Whether the racer is stored in that data file, and why one uses a file and one uses the profile, I couldn't begin to guess.) I also know, when I go visit my friend Solstice01 and take my profile on my memory card, my Halo Spartan is wearing the same armor permutation he wears at home.

I would guess that my Xii is also in that profile somewhere, with the clothes he's wearing, his hairstyle, his glasses, and his wedding ring. The old dashboard of course couldn't show that to me, so that's just a guess, but there's no reason to think otherwise.

So that's pretty much what I've found. I thought it was kind of interesting. It does make me wonder just how large a profile file can get, with data from every game ever played stored in there. And with developers free to use that all-important file for storage, it makes me a little nervous as to how prone it might be to corruption. There doesn't seem to be any way to trim it, either, since game history is something that only grows and cannot be changed (0-score XBLA games notwithstanding).

But I'm sure there's nothing to worry about. Microsoft has plenty of experience coming from the Windows Registry in maintaining an all-important, monolithic database file, keeping it free from corruption and error, that I'm sure nothing could possibly go wrong…

Yeah, we're in trouble.

No comments: