Today, October 22, 2010, the sale of Windows XP comes to an end. There will still be support available for Windows XP Service Pack 3 through April 2014, and it will be sticking around for a time in some business, government, and emerging market settings, but by in large the days of Windows XP are fading. The date has been moved a few times, but today marks the beginning of the final end for what has been a very long-lasting Windows release. I thought I'd take the opportunity to reflect on the product with respect to PC gaming and game developers.
When Windows XP released in August 2001, it was a pretty easy move for many game developers already running Windows 2000 for the superior stability and performance as a development platform. It was also the first time the "NT" generation of technology finally reached the consumer space in a big way. Windows 98 was a decent consumer OS, but at its heart it was still basically DOS (albeit a 32 bit-extended DOS). A rogue driver or a game bug could easily crash your system, and sometimes even corrupt your whole system. Windows XP brought a lot of technological benefits to the platform, although that transition was not without some pain. Windows 98 and Windows ME continued to run on older systems, and there were still publishers targeting that platform as recently as a few years ago--mostly for children's titles typically run on hand-me-down computers. Windows XP delivered a lot of great technology for gamers and game developers: DirectX 8.1 in Windows XP then DirectX 9.0c built into Windows XP Service Pack 2, improved memory manager, system-wide Unicode support built-in, more performance from the file system and scheduler, better support for 'large' disks (NTFS, improved FAT32), etc.
For all the great improvements Windows XP brought over Windows 98, a decade later it has been very much showing it's age even with all the little tweaks done through Windows Update and the Service Packs. While the Windows Firewall, Data Execution Prevention (DEP), and the Security Manager were major new features that came out of the ‘security push’ of 2003-2004, the experience of using Windows XP with Limited User Accounts in locked-down environment or security-conscious users trying to run without always-on administrator rights was not a great experience. The introduction of x64 (64-bit) technology resulted in a number of improvements over the 32-bit memory model, including a less fixed kernel-mode memory map (i.e. dynamic kernel pools), and robust memory support beyond the 3 - 3.75 GB limitations of Windows XP--while there is a product called “Windows XP x64 Edition” it was never actually Windows XP… it was Windows Server 2003 Service Pack 1 dressed up to look more or less like Windows XP. The multi-core revolution has brought major changes to the running environment and scheduler for a consumer operating system. Windows XP was designed to run on a single-core Intel Pentium III / IV or an AMD Athlon XP. “Multi-processor” at the time meant a second chip sitting on the motherboard, usually a server machine. Video cards have changed dramatically, and Windows XP is barely aware of GPU except perhaps as a limited utility raster blit-engine or some weird exclusive bolt-on mode that Direct3D created for specific applications. Unless the machine you are running is still a desktop machine from circa 2001, Windows XP is probably not a great fit for a modern PC…
Yesterday marked the one year anniversary of the release of Windows 7. For all the complaints about Windows Vista, the technology launched in that product and the slow but eventual engagement by hardware vendors, PC builders, driver writers, and application developers with the impact of those changes prepared the way for Windows 7’s success. Some of the seeds of change were rooted back in the days of Windows XP—you can see the recommendations about getting ready for User Account Control as far as back as Meltdown 2001.
A lot has happened in the past 9+ years here in Redmond, and while Windows XP has served gamers and game developers well, I’m glad to see it head into a graceful retirement at last…
Update: Recent Ars Technica article on the topic...
DirectX: The latest version of DirectX supported by Windows XP is "DirectX 9.0c". It is included as part of Service Pack 2 and Service Pack 3. No newer version of DirectX is supported on Windows XP.
Visual Studio: Support for targeting Windows XP is provided by VS 2012 Update 1 and VS 2013, but the Windows 8.x SDK does not support building applications that run on Windows XP. These include a Windows SDK 7.1A for Windows XP applications when using the Platform Toolset "v110_xp" or "v120_xp".
Testing: If you still need to do some testing on Windows XP, consider using a VM rather than a physical Windows XP machine. On Windows 7, you can make use of "Windows XP Mode". On Windows 8 Pro or Enterprise, if you have an old Windows XP disk and valid product key laying about, you can setup a VM using Hyper-V.
Update: As of April 8, 2014, Windows XP is now end-of-life.