During a practical talk at the 2009 GDC Canada conference in Vancouver on Tuesday, Microsoft's Chuck Walbourn discussed the upcoming and much-discussed PC operating system Windows 7, and its impact on game development.
Before delving into 7, Walbourn addressed the oft-maligned Windows Vista, of which 7 is a descendant.
"Much of the industry has done its best to ignore Windows Vista, whether that's fair or not," he said. "It was a disruptive release, and it's important to understand the difference between Windows Vista and XP, because those apply to Windows 7 as well."
"Unfortunately, Windows Vista inherited pretty much all the baggage of Longhorn," he added. "What we shipped was something that was restarted some time in early 2004, and never really delivered on [Longhorn's] original vision."
But there were some crucial additions. Prior to Vista, Walbourn explained, games used Direct3D but all other applications -- including the desktop -- used GDI, making games something of a "bolt-on" addition. With Vista, the whole OS made use of Direct3D, a significant evolution. This drove development of the new Windows Display Driver Model 1.0.
Vista also improved multicore support, multi-channel audio, widescreen support, networking, and other areas.
Service Pack 1 added Direct3D 10.1, as well as some changes to the integrated parental controls: "ESRB mainly being a body of lawyers, and not developers" resulted in a number of required changes, said Walbourn.
("Windows Vista never sold well in South Korea," Walbourn said, "and it turns out one of the reasons is that it ships with [Internet Explorer 7], and the entire banking sector only works with IE6.")
Walbourn briefly overviewed the heavily-reported cosmetic and productivity changes to Windows 7 as well as its performance enhancements to boot times, resource usage, and power demands.
Game explorer: The game explorer now features different classifications for service providers and actual games -- during development of Vista, the team found itself asking questions like "Does Steam need to go into this page? If it does, is it [ESRB-]rated?"
For developers, the explorer now features a simplfied registration API that can be done entirely with XML, whereas the previous implementation required more manual steps.
"It's still pretty simple, and we wanted to keep it simple," Walbourn acknowledged. "We don't want to drive so much into this window that people are spending more time playing with the game explorer than the game."
Direct3D 11: Some of the new and enhanced features include multithreaded rendering and resource creation (works on all D3D 10+ hardware), a compute shader (works on nearly all D3D 10+ hardware), Shader Model 5 (some of it is emulated in older shader models, but 5.0 requires 11-class hardware), and hardware tessellation (requires 11-class hardware).
DirectX 11 runtime: Since Windows XP Service Pack 1 and DirectX 9.0c, the DirectX SDK components have been tied directly into the OS. However, "game developers have gotten really used to the redistributable as something they give their game customers," Walbourn said. He recommended that those responsible for game installation look into the latest recommended techniques.
The DirectX 11 runtime will work with Windows Vista and Windows 7, and will include the DirectX 10.1 runtime plus Direct3D 11, WARP 10 Software Device, 10Level9, Direct2D, and DirectWrite.
To maintain more consistency with Direct3D feature levels, Direct3D 10 and above have specific features that hardware must support in order to use that particular level. However, Direct3D 9 did not have those same requirements, so now Microsoft is assigning hard requirements for various levels of Direct3D 9 hardware, so developers know what subsets of Direct3D 10 they can target with various legacy hardware.
High color: Most modern games use 8-bit per color channel rendering, whereas most modern GPUs can handle 10-bit+. Now with Windows 7, all drivers are being tested for "high color" support, which should eliminate color banding that comes along with lower per-channel color support.
"If you don't work on Vista and you're still hoping XP comes back, that's not going to happen. I've heard some crazy conspiratorial theories saying Windows 7 is just Windows XP with a facelift. It's not. It's the same technology as Windows Vista."
Walbourn made special note of OS version checks as a practice that is frequently handled shoddily, with installation duties going to the "newest, off-the-street employee who has to get it done in two days."
In general, Walbourn said, developers should be checking for particular features they need during installation rather than checking the general OS version; the latter almost always works fine.
Checking for a general version threshold (ensuring the user has something above Windows 95, for example) is fine, but he stressed the importance of making this an "equal to or greater" check rather than strictly "equal to," to ensure maximum compatibility and future-proofing.
User Account Control Redux
The UAC, something many developers and power users immediately turned off, is handled essentially the same in Windows 7 as it was in Windows Vista, "but the user experience should be a little nicer," Walbourn said.
He pointed out that, in reality, 88% of users keep the UAC enabled -- meaning many developers who have always left UAC turned off are not testing their software in a way that is reflective of the majority of users.
He added that developers should ensure the installer is the only component of their games that should ever require administrator rights, and games should always work completely with a standard user.
Games for Windows
Walbourn spent a few moments discussing the Games for Windows Technical and Test Requirements, which apply to Windows XP, Windows Vista, and Windows 7.
"We really tried to capture all the best practices in these documents," he said, pointing out that "pretty mch every game that is GFW-compliant is working great on Windows 7."
The only exception to that, he said, is some DRM solutions; DRM tends to break easily when the OS changes, so Microsoft has been working with DRM vendors to ensure their software works correctly with the changeover -- but he recommended developers check that aspect out themselves to be sure.
64-Bit (x64) Technology
With more than 4GB of RAM only properly supported by 64-bit architecture, retailers have been aggressively marketing 64-bit-equipped systems, Walbourn said.
When Vista launched, the number of users with 64-bit versions of the OS was in the sub-three percent range, but in the United States it has now become closer to a third of all users, across both business and home systems. Worldwide, the figure is lower, but the trend shows it is rising.
Because of this, developers must ensure their games support 64-bit systems. "As long as you do some app compat work and fix a few bugs, it should work fine," he said.
Adoption of a 64-bit operating system will also help developers during actual production. "Epic's standard dev system has something like 32GB of RAM," said Walbourn. He pointed out DICE, Starbreeze, and Valve as other studios taking advantage of high amounts of RAM in development.
In conclusion, Walbourn said, "If you have any issues with Vista, fix them now. They're not going to go away. If you're a developer, you should be using Windows Vista 64-bit or Windows 7."