Foreward

....................................................

The multimedia and computer-games industry has grown incredibly in recent years. When I got hold of my first computer back in 1982, 64K of RAM was considered huge (if not excessive). Consequently, games has limits on size, complexity, and graphical detail which they could obtain. Limits were also imposed by the speed of the processors used in the early machines As a result, games were fun to play, but they left a lot to be desired by way of realism.

 

This situation slowly changed, as is so often the case. Better hardware was constantly being developed, My beloved first computer became obsolete and was regulated to the attic to gather dust (and it's probably still there, now that I think about it). Slowly but surely, game technology has advanced and improved. And, over time, as hardware got better, so too did the games designed to run on it. And everyone was happy.

 

Then along comes the IBM personal computer (PC) and its clones. For the longest time, this platform was not the best one for games. Anyone who has ever used a green-screen monochrome or CGA display understands what I mean here. And as for that internal PC speaker: Ouch!

 

After an age in which the PC had all the multimedia potential of a dead tree, things started to happen. Interesting things. Cool things! IBM invented the VGA card, and suddenly game programmers were given the incredible 320 x 200 resolution, 256-color mode to play with (and the more canny programmers found the undocumented 320 x 240, 256-color Mode X). Cool animation techniques like page flipping became available, and game programming got pretty good.

 

And then came SVGA -- bigger, meaner, and faster than VGA. Loads of hardware manufacturers started building their own particular SVGA cards and adding their own custom features and their own ways of doing graphics. Of course, the cards all had backwards compatibility with the older VGA chipsets, so providing that you used modes like 320 x 200 with 256 colors, or 640 x 480 with 16 colors, you were fine. Anything higher (like 640 x 480 with 256 colors) and you had to start writing specific hardware.

 

The field of audio for multimedia applications was pretty much the same as video hardware at this point, Some wonderful sound hardware was coming out on the market, but each unit worked in its own way. To support them all, you had to write code that was specific to each. Not much fun.

 

This situation never changed, and graphics and audio hardware continued -- and still continues -- to diversify as more and more innovations and improvements are made. In the past, this made for a wealth of choices to the consumer, but was a real headache to the poor programmer who has to deal with all the variations and changes in hardware if he or she wants to use the coolest features. Of course, Windows (meaning Windows 3.1 and, later, Windows 95) used hardware-specific drivers to access hardware. But who would dream of using the Windows Graphic Device Interface to write high-performance graphics-based games?

 

Here at Microsoft, a few people started to wonder whether using the cool hardware independence that Windows programming provided for performance multimedia (games) was possible. What was needed, the Microsoft folks decided, was an SDK (Software Development Kit) to allow access to hardware, without the need for the programmer to worry about the specifics of how the hardware actually works. We needed functionality to provide for audio, input devices, 2D and 3D graphics, and networking (as applied to multiuser gaming, anyhow).

 

And so, DirectX was born -- the Windows 95 (and Windows NT) games SDK. Within DirectX you find DirectSound (for audio), DirectDraw (for 2d graphics), Direct3D (for 3D hardware acceleration), DirectInput (for joysticks, mice, and other input devices), and DirectPlay (for multiplayer networking).

 

From the beginning, the whole philosophy behind DirectX has been to provide as thin a layer as possible between games programmer (who wants to write screamingly fast code) and the hardware. Rather than get in the way and slow things down, DirectX instead provides standardized access to hardware-specific features. This access in many cases actually makes game elements run faster than they would without access to the hardware; for example, drawing sprites in hardware blitter is much faster than drawing sprites using your own code. Also, in the case of DirectDraw and those wonderful SVGA cards, we now have access to all sorts of new resolutions at all sorts of bit-depths, like 640 x 480, 512 x 384, 800 x 800, and even 1,024 x 786 -- all in 8-, 16-, 24-, or 32-bit color.

 

Writing cool games is hard. Extremely hard. DirectX doesn't really make writing game code a whole lot easier. But it does remove the need to write hardware-specific code, which is both difficult and time consuming, and it allows the programmer to concentrate on writing better games.

 

Steve Smith, Games Technology Evangelist for Microsoft Corperation

 

Go ON!!!!! 

World Banner Exchange
Support Twisted3D, click on the banner.