The XDK: The Modularity Of A PC On A Console
The development platform
The XDK's role is to provide developers with all the tools they need to make the most of the console. The core of the Xbox's operating system is a version derived from Windows 2000 from which numerous functions were removed that are useless on the console. Important feature of the Xbox's programming: all of the applications (games and others) run in real time (kernel mode) contrary to Windows 2000 on PC, which, as you know, has all applications and services running in protected mode. In sum, if a game crashes, the entire console crashes, and you must completely reboot the system. However, real time offers better performance than protected mode.
The system is divided into three parts:
- The Xbox's ROM
- The dashboard
- The different programming libraries.
The ROM on the mother board offers all the functionalities you find on the latest generation OS: HAL, hard drive recognition, DVD, a FAT 32 UDFS file system, an encoding system to protect against copies, a memory and application management system.
The dashboard, the Xbox's office is the first application installed on the hard drive and allows you to operate the console's basic functions: CD and DVD player, video configuration utility, network, interfacing, and backup management.
Another important feature of the Xbox: its modular architecture regarding function libraries (Titles Libraries), which allow you to both increase the machine's capacity by using new libraries originating from third parties (whether they are development tools or shaders for the graphics portion, for instance) and to simplify tasks for the developer, who now only has to go choose the functions, in that catalogue, that he/she finds appropriate. For that matter, Microsoft was not mistaken in proposing that numerous players in the PC world port their tools to Xbox (http://dev.Xbox.com/tools/default.htm ) thereby offering an unrivaled wealth of tools and solutions for a console.
These services allow you to access all of the Xbox's functions: video, 3D, audio, network, input peripherals with the tools in each field that the developer can use at his or her leisure.
Particularly regarding the 3D tools, the SDK from NVIDIA and the one from DirectX 8.0 offer an excellent glimpse of the machine's capacities for those who are interested in it. You can find all of the functionalities managed by the NV2A with code samples that can be directly incorporate into the games. Let's imagine an animated skeleton with vertex shaders. You will find in the XDK numerous examples of predefined shaders that facilitate rapid development. The XDK has like a multitude of bricks, and each person can use this or that brick as he pleases to build his wall.
To sum up: contrary to the PS2, the Xbox's XDK is Microsoft's veritable war machine. Not only does it actually use an extremely expansive architecture, moreover it is an open architecture and the possibility of adding this or that developer library from the PC world (following an agreement with Microsoft obviously) becomes a major trump card over the PS2. Upon launching the PS2, its SDK was in its infancy, and it would appear that all of the libraries are still not available.