Halo 3 & NXE
The “New Xbox Experience” was released today and one of the new features allows you to “install” your games to the HDD. While you still have to keep the original disc in the tray, installing to the HDD can make some games perform a little better while also putting a little less wear-and-tear on your DVD drive. However, this isn’t to say that ALL games will see optimizations from being installed. In fact, in the case of Halo 3, the game will actually see increased loading times. Several websites have reported the results of tests to gauge how some games perform after being installed to the HDD for Halo 3 and their tests indicate that in some cases, the load times are significantly longer. Our own internal investigations have yielded similar results.
To help explain why this is the case I tapped our uber engineer and Chief Caching Officer, Mat Noguchi, to answer a few questions.
What is the overall performance difference a player can expect to see when running Halo 3 straight from the disc versus installing it to their HDD? Some websites have reported that the game runs “worse” after the install.
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.
Why is this the case? Many other games have reportedly seen improved load times and performance after being installed to the HDD.
The technical reasons were outlined above, but for a higher level answer, we shipped Halo 3 before Microsoft finalized this particular feature. As a result, we were not able to take advantage of it (or any other potential optimizations we discovered after shipping Halo 3). Perhaps we also coded too close to the metal.
Is it possible for Bungie to update Halo 3 to better utilize the HDD install features of NXE?
While anything is possible, it would be a significant undertaking to try and retroactively patch/update Halo 3 to be optimized to take advantage of the HDD install features of NXE. The risks of doing that and the resources required has to be carefully considered against what could really be a rather insignificant change to the player experience. For now our team is focused on making great games for the future like Halo 3 : Recon and other unannounced projects but we will continue to monitor this situation.
So in conclusion, please be aware that installing Halo 3 to your HDD will actually result in longer load times and thus a less optimal experience than if you run the game from the disc drive. This happens due to the way Halo 3 already uses a HDD to cache data and once you do an install, you are copying between two different areas of the same drive as you are loading a map.
If you just plan to play campaign or offline content, you may feel that the tradeoff is worth it in order to have a slightly quieter Xbox 360 and reduced impact to your disc drive. However, if you play Halo 3 online, please be aware that increased map loading times can have a negative impact to everyone’s experience. In some cases, it could take considerably longer to load multiplayer maps, meaning that everyone you are matched with is also stuck waiting for your maps to load. If people start to lose patience, you then have scenarios of players leaving parties and aborting matching because they don’t want to wait. This adds to the problem, creating a cycle where more and more people have a harder time getting into the games they want to play. To avoid this negative situation, we are advising that Halo 3 players do not install the game to their HDD.