advertisement

Bungie Explains Halo 3 NXE Install Slowdown

by Blake Ellison, Nov 19, 2008 4:15pm PST

The New Xbox Experience's ability to load games from the hard drive is intended to help games load more quickly or even make them look better, but Bungie's Halo 3 is an exception--it actually loads more slowly than without installing the game.

To explain the phenomenon, Bungie tapped engineer and "Chief Caching Officer" Mat Noguchi to give both a technical explanation and the "short answer." The short answer is in essence that the game has always used the Xbox 360's hard drive to shorten load times:

The Xbox 360 HDD has a section for games to use called the utility partition. Games can use this section for whatever they want to; Halo 3 uses the utility partition to cache maps as they will load faster off the HDD ... Think of it as an on demand install of Halo 3 to some scratch space on the HDD.

Asked whether Halo 3 would receive an update to take advantage of the new system feature, Noguchi all but shot down the idea. "It would be a significant undertaking" to do it, wrote the engineer, adding that it would be too great a risk for too little a reward especially in light of the studio's work on Halo 3: Recon.

Noguchi's highly technical account is reproduced in full below:

The Xbox 360 HDD has a section for games to use called the utility partition. Games can use this section for whatever they want to; Halo 3 uses the utility partition to cache maps as they will load faster off the HDD than off the DVD. As a side note, the utility partition can be deleted when other games are played. This is why maps can take longer to load when you play another game in between various Halo 3 sessions. (As was the case with Halo 1 and Halo 2.)

So when Halo 3 runs, if a HDD is present, we copy maps from the DVD to the utility partition (on the HDD). Think of it as an on demand install of Halo 3 to some scratch space on the HDD. Halo 3 doesn't actually know where it's running from, so it always assumes it's running from a DVD. This is an unfortunate consequence of new features (namely, install to HDD) being added to the Xbox 360 after Halo 3 shipped. And as a result, it means that even if Halo 3 is already installed to the HDD, it will still copy maps to the utility partition.

So then the real question is why is copying from HDD to HDD slower than copying from DVD to HDD? In the first case, you are reading from one I/O device (HDD) and writing to the same I/O device (HDD). In the second case, you are reading from one I/O device (DVD) and writing to a different I/O device (HDD). In the first case, because we are reading and writing to the same device, the total copy time is the amount of time it takes to read the map plus the time it takes to write the map. Ultimately this is because for the HDD, you read and write through the same mechanism, i.e., the hard drive read/write head, and those reads and writes cannot occur simultaneously through a single mechanism. (If they could, it would be awesome, and I wouldn't have to document any of this. Unfortunately, it's not easy to do for other reasons.) For the second case, because we are reading and writing from different devices, the total copy time is the larger of the total time to read the map and the total time to write the map. This is because we can read from one device (DVD) at the same time we are writing to another device (HDD). There is some overhead because you can't start writing data until you read it, but it is dwarfed by the time to copy a map. (About 128k vs. 500 MB or a ratio of 4000:1.)

There are other factors that contribute to load times, such as preloading data from the map you are about to start so that you don't have to sit through a non-interactive loading screen; the only difference in load times occurs when we copy a map that has not been cached to the utility partition or has been evicted from the utility partition because some other maps were run. Once a map has been cached, the time to load it will be identical to running Halo 3 off the DVD with a HDD.





Comments

7 Threads | 25 Comments

  • TLDR: it will never happen and despite what you all think, it gets slower when installed because Bungie is awesome, not because they suck.

    ok here comes the science...

    Their statement explains why it's slower, I think everyone gets that - you can't access both the DVD and the HD at the same time if the DVD is really just a HD emulation file. Now everyone is like, can't you just detect it and disable it? And there are two reasons why that's a bad idea.

    First: not many people know this but Halo 3 is actually a WORSE GAME when you play it without a hard drive. For example, there is less spoken dialogue in the campaign. (Bungie made a developer presentation about this a while back and it was really interesting the kind of compromises they had to make to keep the game running smoothly when some customers had an awesome hard drive and some just had the janky DVD.) So just disabling the hard drive cache would make the game worse for everybody. Not an option.

    Secondly: to find out if it is installed or not, they have to rebuild the game using the newest 360 developer kit. That means a new compiler, new libraries, new settings, different API functions, new everything. A new dev kit release is basically like a new service pack for Windows. They are usually better but they always break something that you never expect. So now they would have to upgrade like five service packs at once since Halo 3 is pretty old, and you better believe shit would break. This would require developer time to debug it, and a bunch of tester time to test it, and that takes away from whatever new project they would rather work on.

    So it is extremely unlikely to happen just because we want it to. One possibility, however, is that some programmer a Bungie just spends some weekends on the problem and figures out an awesome hack to make it work, and then gets five minutes of fame as the hero of the office before being bitched at for wasting time by his boss.

    PS: If every studio had awesome engineers, and an infinite amount of time to work before shipping, every game would get slower when installed to the HD. The installation is a crutch for game engines that didn't have enough time to polish their data streaming tech before they had to ship.