A Little History
It all began sometime in the '60s, when the first mainframe computers came to be. Now, don't quote me on this, but one of the first computer games ever played was Core Wars on Unix machines. When the '70s rolled around, there were quite a number of text-based and crude graphic adventures running on mainframe computers and minicomputers all around the world.
The funny thing is, back then most games were networked! I mean, 90% of the game programs were MUDs (multiuser dungeons) or similar simulations, like Star Trek and war simulations. However, the masses never got a taste of computer games until the quintessential Pong came out. Designed by Nolan Bushnell, this single game really started the whole video game arcade business overnight, and Atari was born.
Then, around 1976–1978, the TRS-80, Apple, and Atari 800 all hit the market. They were the first computers that a consumer could buy. Of course, before then you could buy kits like the Altair 8000, but who wanted to put them together? In any case, these computers all had their pros and cons. The Atari 800 was by far the most powerful (I'm convinced I could write a version of Wolfenstein that would work on it), the TRS-80 was the most businesslike, and the Apple had the best marketing.
Slowly, games started to hit the market for these systems, and many teenage millionaires were made overnight. A good lunar lander or Pong-type game was all you needed to strike it rich! In those days, computer games looked like computer games, and only a handful of people knew how to make them. There were absolutely no books on the topic. Every now and then someone would publish a 50–100-page, semi-underground booklet that had a few pieces of the puzzle, and maybe there'd be a magazine article in Byte, but for the most part you were on your own.
The '80s are when things started to heat up. The first 16-bit computers were available, like the IBM PC (and compatibles), Mac, Atari ST, Amiga 500, and so on. This was the time when games started to look good. There were even some 3D games on the market such as Wing Commander and Flight Simulator, but the PC was definitely at the back of the line of game machines. By 1985, the Amiga 500 and Atari ST reigned supreme as the ultimate game-playing computers. However, the PC slowly gained popularity due to its low price and usefulness in the business sector. And the bottom line is that the computer with the largest market base, regardless of its technology or quality, will rule the world in the end.
By the early 1990s, the IBM PC-compatible was the leader. With the release of Microsoft Windows 3.0, it was all over for the Apple Macintosh. The PC was the "working person's computer." You could actually play with it, write programs for it, and open it up and connect stuff to it. I think that those are the reasons why so many hobbyists stuck to PCs rather than the sexier Mac stuff. Bottom line—you couldn't have fun with Macs!
But the PC was still lagging behind in the graphics and audio department. The PC seemed like it just didn't have enough horsepower to make a game that looked as good as something on an Amiga or a game console.
And then there was light.…
In late 1993, Id Software released DOOM as a follow-up to Wolfenstein 3D (one of the first shareware 3D games, also by Id). The PC became the game-playing and programming platform of choice for the home computer market, and it has remained that way ever since. DOOM proved that if you're clever enough, you can make a PC do anything. This is a very important point. Remember it. There is no substitute for imagination and determination. If you believe it's possible, it is!
After the DOOM craze hit, Microsoft really started to reevaluate its position on gaming and game programming. It realized that the entertainment industry is huge and only getting bigger. It also realized that it wanted to be part of that industry, so big plans were drawn up to get Microsoft into the game.
The problem was that even Windows 95 had terrible real-time video and audio capabilities. So Microsoft created a piece of software called Win-G to address the video aspect of the problem. Win-G was heralded as the ultimate game programming and graphics subsystem. It turned out to be nothing more than a couple of graphics calls to draw bitmaps, and Microsoft literally denied its existence after about a year—no joke!
However, work had already begun on a new set of graphics, sound, input, networking, and 3D systems (a la the Rendermorphics acquisition). And DirectX was born. As usual, the marketing people at Microsoft got carried away, claiming that DirectX would solve all the world's game programming problems on the PC platform and Windows games would be as fast as or faster than DOS32 games. That didn't quite happen.
The first couple of iterations of DirectX were horrible failures as actual products, but not in technological terms. Microsoft simply underestimated the complexity of video game programming. (And of video game programmers!) But by DirectX 3.0, DirectX worked better than DOS! However, most game companies at this time (1996–1997) still were working with DOS32, and they didn't make the transition to DirectX for actual product releases until version 5.0.
Today, DirectX is coming up on version 9.0 (this book covers 7.0 and 8.0), and it's a killer API. True, you have to think a little differently—using COM (the Component Object Model), programming in Win32, and not having total control over the whole computer anymore—but that's life. I don't think that Geordi can take over the whole computer system on the Enterprise either, so if resource-sharing works on a Galaxy Class starship, it's good enough for me.
With DirectX technology, you can create a virtual, DOS-like machine with a 4GB address space (or more) and linear memory, and you can program as if you're in DOS (if that's what you like). More importantly, now you can leverage every new piece of graphics and sound technology instantly. This is due to DirectX's forward-looking design and technology. Anyway, that's enough about DirectX; you'll get the full treatment soon enough. Let's get back to history.…
First, there was DOOM, which used software rasterization only. Take a look at Figure 1.1 to see a screenshot of Rex Blade, a DOOM-clone. The next generation of 3D games, like Quake I, Quake II, and Unreal, really were a quantum leap. Take a look at Figure 1.2 to see a screenshot of Unreal. This game and others like it are simply unbelievable. All of them contain software rasterizers along with hardware acceleration code to get the best of both worlds. And let me tell you, Unreal II or Quake III running on a Pentium IV 2.4GHz with GeForce IV TI acceleration is as sweet as it gets.
So where does this leave us? In a world where technology is so advanced that the sky is the limit. However, there's always the next "big thing." Even though games like Quake and Unreal can take years to make, I'm hoping that you'll come up with something just as engaging!