~13~

Start Me Up!

Image

Windows 95 launched on August 24, 1995. The launch was an expensive and grandiose affair. Microsoft paid the Rolling Stones a good deal of money (though possibly not the $8 or $14 million sums that were rumored) for use of their song “Start Me Up”, and they also released a 30-minute promotional video featuring Jennifer Aniston and Mathew Perry. Jay Leno introduced Bill Gates on stage. They had the Empire State Building lit up with the Windows logo, and they hung a 328 foot banner from the top of the CN Tower in Toronto, as well as paying to distribute 1.5 million special editions of The Times in the UK (free copies for the first time in the 307 year history of the paper). They also gave away a CD that contained the game Hover! and some songs by Edie Brickell and Weezer. (Source: Wikipedia)

According to a Washington Post article posted on launch day, IBM, developer of the rival OS2 operating system, was unimpressed. “Microsoft is delivering the same features we delivered seven years ago,” said company spokesman Tim Breuer. “We’re moving on business as usual here.”* Despite IBM’s sour grapes, the lavish Windows 95 launch was a huge success worldwide, and ushered in a new era for the PC operating system.

http://www.washingtonpost.com/wp-srv/business/longterm/microsoft/stories/1995/debut082495.htm

DirectX 1.0

At the time of the Windows 95 launch, DirectX 1.0 was still about a month from completion, which assured that it could not be included with the OS. In fact, DirectX was not included in Windows releases until Windows 98. The SDK was completed in September, however, and was used by developers in their games for that year. “We had to beg, borrow, and steal developer cycles to put the hooks for DirectX into Windows 95 so that it could ship separately,” says St. John. “That was the funny point about it. The world thought it was a feature of Windows, but in reality it was launched by the game developers themselves in their games. If game developers hadn’t used it in droves there would have been no DirectX anywhere. It quickly became (and still is) the most downloaded technology on microsoft.com.”

It was no easy path to get to launch. As Engstrom remembers it, “It wasn’t clear it was going to be allowed to ship, but it was clear that the customers were going to use it if we got it out the door. That’s the moment of product definition. And everything else was just fighting to make sure that no one killed it. I mean the OpenGL guys wanted it dead. They thought that having an SGI API would be smarter than having a Microsoft API. No one thought it needed to be bitmap, even though all the games used bitmaps. Nobody thought you should care about sound. It was a most interesting paradox at Microsoft, to have something that the developers and customers love, and the internal politics is just a nightmare.”

Buggy

“It was all held together with chewing gum.”

-Rick Rashid

The first version of DirectX was not without its flaws. It was a solution still in need of refinement, but it didn’t cause any Lion King-scale disasters either. According to Rick Rashid, who was the head of Microsoft Research at the time, DirectX was not the only thing that was buggy. “Everything was buggy back then. Graphics cards were incredibly buggy back then. It was hard to get two of them from the same manufacturers that behaved exactly the same way. We forget that these days… even now hardware’s still buggy, but we forget how much on the edge computing was in those days… The graphics cards barely worked. The software was built on top of things that barely worked. The Intel chips barely worked. I mean everything… It was all held together with chewing gum. And it worked most of the time. Miraculously.”

In our fascinating conversation, Rashid elaborated on the role of the operating system in mitigating hardware instabilities. “A lot of the job of the operating system in those days, and even still today, was to mask over some of the underlying unreliabilities. One of the features that had to go into Windows was the ability to effectively reset the bus so that we could reset the graphics card on the fly (see “The OS Illusion” at the end of this chapter for more on this subject from Rick Rashid).

Meltdown

Meltdowns were a response to the Disney Lion King Disaster. Every year we started to organize developer and IHV events to ensure that new Windows applications worked on new PC hardware for XMAS hoping to prevent another fiasco.

Basically the IHV’s would set up meeting rooms and scheduled meetings with the game developers to test the new games on their new software and hardware. It was great for everybody because it gave the IHV’s a great forum to promote their hardware to developers and the developers loved to get free hardware.

-Alex St. John

The Meltdown event was in part a response to the Lion King disaster, but it was also an important way for Microsoft to bring hardware developers together to test and discuss the new DirectX technologies. Meltdown was organized by hardware evangelist Ty Graham and software evangelist Jason White at the request of Eric Engstrom.

At the time, 3Dfx had the momentum in graphics hardware for the PC, but they had their own technologies that didn’t necessarily conform to Microsoft’s methodology with DirectX. Graham says, “We were definitely feeling like the underdogs in this space. Certainly in ‘95 and DirectX 1, we were scrambling madly.” Together, Graham and White created the Meltdown events, which occurred prior to each major DirectX release, in August or September. According to Graham, it was a chance for all the hardware developers to do compatibility testing, “and then we started taking the entire DirectX team. It really turned into my platonic ideal of what a Microsoft developer event would be. We brought all our smart guys and they brought all their smart guys. People had a lot of fun, and there were great conversations and a lot of bugs got smashed, and we found out where the architecture was totally fucked up.” In the beginning, there were about 100 attendees, but at its peak in 1997, Graham estimates that more than a thousand people came. “It became almost all that I did. I just became the Meltdown guy for a year.”

How Did Meltdown Get Its Name?

According to Graham, Meltdown’s name was inspired by St. John’s anti-Microsoft campaign and his use of the radiation symbol. “We have this atomic theme,” said Graham, “so it became Meltdown because that sounded appropriate in some way.” Graham tells a story that illustrates the power of the Meltdown events and how the will of the developers actually changed Microsoft’s strategy.

At Meltdown 98, he says, Deborah Black decided that Microsoft was not going to support DirectX in the upcoming version of Windows, but only in Windows NT. Game evangelist Kevin Bacchus was given the task of announcing the decision to a thousand or so industry folks from both hardware and software. Graham says, “We knew that they were just going to lose their shit when they heard this, and he worked so hard on how to say that in a positive way. I’ve never seen a guy given such a turd to present as Kevin announcing that, and of course everyone lost their shit, and it was like we had insurrection on our hands.”

On the second day of the conference, the top guy in Windows NT, Jim Allchin, addressed the conference, in theory to take the heat and smooth things over. It didn’t work out exactly that way. “Ultimately, when he saw the vehemence that we were dealing with, he retracted the position. It didn’t make Deb Black many friends… I think that was her being decisive. She really didn’t get the space. She seemed sort of clueless on this one.” Allchin ultimately became the head of both Windows and Windows NT.

Hiring Jason Robar

“It was through my being a Dungeon Master that Craig and Alex thought I would be a good addition to the evangelism effort, based on the wild role I created for Alex to play as the secret villain of the entire campaign,” says Robar. “Alex thought that was a pretty good understanding of some of the DRG evangelism concepts —along with my military background and passion for games and the game industry.

“One of the first things that Alex brought me in to do was to deal with more of the developers outside of the handful that he was able to deal with while dealing with all the internal issues. He had already arranged to do the port for Doom and had brought Zack Simpson from Origin to talk about importing Wing Commander, but outside of that, we still needed to get to the broader swath of developers. So if Alex was say 80% focused on fighting the internal battles and 20% focused on working with external developers, I would have that inverted, working 80% of the time with external developers and 20% coordinating with what was going on internally. So I was able to go to Sony’s development team in Liverpool who were making a launch title for PlayStation called Wipeout, and I was able to work with them a get them to create a DirectX version for Windows. So what was seen as an exclusive and groundbreaking graphical title was suddenly shown to be just as possible on the PC with DirectX.”

Cradle to Bank

Talking about DRG’s mission, he states that the goal was to help developers get measurable success through using Microsoft technology. He says there’s a saying, “cradle to grave,” and that for DRG, he thought to change it to “cradle to bank,” because obviously the goal was to help developers with technology, but also to create successful products. “By that I meant that it’s not very good if you convince developers to adopt Windows NT in 1992, and no one is adopting Windows NT in the workplace, so they make an NT version of their application, but then they can’t sell it to anyone. What happens is, those people don’t die—cradle to grave—they don’t actually die. They lose their jobs. The company goes out of business.… So my concrete example was that I thought, not only did I have to convince people to adopt Microsoft technologies as a win, I help them to win in the marketplace so that everybody else looks at those applications and says, ‘Boy, that’s how I’m going to get rich, too.’ If they look at those applications and say, ‘Oh, those poor fools. They listened to Microsoft and went out of business,’ and then you show up, they’re not going to listen to you. So I said that not only should we do something that highlights that we’re winning—that we have these guys adopting our technologies—but we’ve need to do something that helps them sell more copies of their games than ever before.”

A Simple Idea

One day Jason Robar had an idea. On the surface, it was a small idea. He thought, why don’t we create a disk with some games on it? Games that used DirectX, of course. As a DirectX evangelist he decided to go forward with what he called the “sampler CD” concept, so he approached game developers and encouraged them to use DirectX and then create demos that could be featured on the disk, promising that Microsoft would distribute a gazillion of them.

Robar is humble when he talks about the disk, its overall impact and his role in its creation, but not so James Plamondon. “The game sampler CD became a product that Jason created out of whole cloth. And it was tremendously important because none of the technical innovations in DirectX would have meant shit if the consumer demand for the games using DirectX hadn’t emerged. We did a great job of evangelizing the APIs and getting developers to support them, but we did an absolutely abysmal job of marketing the logo and general outreach to consumers to get them buy the products that implemented those latest APIs.”

In fact, the Windows 95 Game Sampler CD ultimately became a huge consumer success for Microsoft, but it took the talents and imagination of several people to bring it to fruition.

Monolith—The Megamedia Artists

Ex-Marine Jace Hall was working for children’s game publisher Edmark at the time. He and his friends had been writing some custom code for Windows 3.1 on the side, but compared with DOS programming, Windows was a nightmare. “Windows 3.1 just had so many layers,” says Hall, “you couldn’t really do anything fast inside of it in that UI.” However, they soon became aware of Chris Hecker’s API, WinG, and started using it to create some demo games and put them on CD ROMs. While working on these side projects, Hall encountered Jason Robar on Usenet, and they started talking. According to Hall, Robar told him, “I’m working for this guy named Alex St. John. We’re trying to do this thing to make graphics faster in Windows because everybody knows that if you don’t get the games over to Windows, no one’s going to buy Windows 95.”

Robar told him that their “little project” was unauthorized, but would allow him and his fellow developers to come over to Microsoft and do some secret contract work. That was good enough for Hall. “Long story short, I agreed, and I quit my job and some of the guys quit their jobs, and we literally went over to Building 6 as independent contractors under our overall moniker, Monolith, and started to get into this thing called DirectX. It was all just code, and we had to learn how it worked and why it worked because they wanted us to write example programs.” While the DirectX team was working to complete the APIs, Hall and his Monolith team were busy becoming experts on DirectX and serving as an unauthorized private development and services department for St. John and company. For instance, the Monolith team came up with the nuclear symbol for the Manhattan Project, along with creating game demos and example code.

Image

Screen from the Windows 95 Game Sampler.

St. John often came to them and told them what he needed, but not how to do it, and so the Monolith team started thinking like the creative designers and gamers they were. “That’s when we started to design the nuclear symbol flying around, the idea that it’s in space and that you are in a space station. We built a totally 3D interactive user interface for the game sampler, all using DirectX.”

So begins the Windows 95 Game Sampler CD in full 3D animation, the culmination of Robar’s evangelism and the Monolith team’s creative efforts. It was a clever and creative way to display the power of DirectX through game demos. As players explored the space station, they would encounter secret rooms and hidden stashes of radiation symbols. (Hall states that nobody has found all the secret rooms they hid on the station.) Players could also fire the radiation symbols, although doing so had no effect other than to show the symbols flying outward in the first-person view. There were signs on the walls with sayings such as “DOS is Dead,” and information about the technology that powered the demo. One of the secret rooms contained a wall of black and white portraits of the main developers of the CD, from right to left, Brian Goble, Bryan Bouwman, Brian Waite, Jason Hall, Toby Gladwell, Garrett Price, and Paul Renault.

The DirectX Sampler Experience

“The time has come… to evolve,” say the words on the screen.

FADE TO BLACK

Animated words appear: “WINDOWS 95 GAMES * NO LIMIT”

A radiation symbol animates onto the screen. It begins to spin, faster and faster, then explodes like a fist punching the screen. Back to black.

A dramatic (especially for the time) 3D model of a man appears and the camera revolves around him. He stands atop what looks like a mountain of lava, gesturing out into emptiness. A ship appears, chased by another ship firing green laser pulses. The two ships head toward a space station, and as they approach the pursuing ship is shot by the station and explodes in a ball of flame. The first ship lands inside the station, and as it sinks down on an elevator platform, the doors of the platform close after it to display the Windows 95 logo.

And now you are in a room inside the station. What will you do? A scrolling message along the bottom reads: “WELCOME TO THE MANHATTAN SPACE STATION! BROUGHT TO YOU BY MICROSOFT… AND THE WINDOWS 95 GAME SDK TEAM! DEVELOPED BY MONOLITH… MONOLITH… THE MEGAMEDIA ARTISTS!”

Along the bottom of the screen was a function bar that included the Windows logo and the keys to operating the demo using the Esc key and function keys F1 through F6. Options were Exit, Help, Demo, WWW, 2D Menu, Map, and Teleport. To the right of the function list was a display that showed the current frames per second and the resolution of the screen.

The real meat of this sampler disk was found in the Entertainment sections, which featured animated screens along the walls. These screens represented 31 demos—some playable and some non-interactive—from companies such as Activision, id, Maxis, MicroProse, LucasArts, Virgin Interactive, Time Warner, 7th Level, and several others. Robar had done his job well. Notable games were The Dig and Rebel Assault II from LucasArts, MechWarrior 2 from Activision, Magic the Gathering and Sid Meier’s CivNet, and Monolith’s own Meltdown… and of course, DOOM 95 from id.

During the development process, St. John would stop by and offer ideas, according to Hall, seemingly enjoying his first experience in game, or gamelike, development. Hall remembers St. John’s visits and his design work. “He’d come in and we’d have conversations about the design and argue, because he was new to it. So there were a lot of design conversations.” Hall adds, “Most of the time it was them (St. John and Robar) showing up and saying, ‘Hey. We convinced this publisher. Activision is going to put Pitfall. Help them get it into the sampler disk. Help them debug any DirectX problems.’ And then they’d wander off somewhere.”

Celebrating the Launch

There was no great event when DirectX was officially completed in September, but that didn’t stop the DirectX team from celebrating. At this point in time, St. John had managed to piss off a lot of people, but there was one group that he hadn’t offended… yet. “Yes, I even pissed off Microsoft’s janitorial staff. We celebrated the launch of DirectX with a food fight in the conference room that just destroyed… thirty thousand dollars’ worth of damage to the conference room, throwing Chinese food at each other. That was when Fred Humble got the hot mustard in his face, poor guy.”

A food fight was not up to St. John’s celebration standards, however, and although it had to do for the moment, the best was yet to come…

Taking Fun Seriously II

Along with the completion of the DirectX SDK, the team reissued a somewhat revised version of the Taking Fun Seriously white paper they had released 10 months previously, with a new subtitle: “A strategic guide to dominating electronic entertainment.”

In Taking Fun Seriously II, they elaborate on old themes and introduce new ones, some of them visionary and predictive of the future, and others… nonstarters. In their introduction, they state:

“This document is a comprehensive strategy from top to bottom for making the PC the ultimate consumer entertainment device, and creating on-line multiplayer entertainment experiences that will compete with everything but sex, and we want to address the WHOLE problem.”

They go on to compare the computers of 1995 with Model Ts. They make the point that computers only worked reliably about 85-90% of the time, unlike automobiles and a lot of other common appliances. They then assert that the future of electronic entertainment is to be found in connectivity and interactivity, and they present a vision “to build a real-time on-line gaming service world wide over existing phone lines that would provide <~100ms latencies to anyone with a modem.”

A big part of their pitch was that Microsoft should build a huge infrastructure to support the coming age of online and massive multiplayer gaming. The new additions to the document examine additional subjects, such as existing consoles and their companies, the various competing technologies, the myth of “multimedia,” and several subjects regarding what is required to create good, engaging and fun consumer products. They also coined the phrase “real-timely” to describe applications that work within certain parameters of responsiveness to user input and smooth production of sound and graphics.

At one point, they start using political and economic terms to describe what they envision. “‘Directness,’ as the GameSDK has come to define it, is more than just a set of API’s and drivers exclusively for games. It’s an architectural strategy for reconciling the needs of ‘real-timely’ applications with the existing ‘communist’ resource management for traditional business applications. Directness is a Libertarian approach to API design in which large memory and CPU sucking general purpose API’s are pushed aside in favor of trim low-level API’s that map closely to the hardware, impose little overhead, and do not conceal their functionality from the application.”

They suggest free distribution of “DirectX 95” and talk about distributing the game sampler disk to OEMs as well as selling it for $10 at point of sale. On the other hand, their proposal for “DirectX 96” was to sell it to hardware vendors for $50 and incorporate it into Windows the next year.

In looking at the three console manufacturers, they identify only one company that could be influenced to become a Windows platform—Sega. They also propose the DirectX Global Arcade & Information Network (GAIN), which would attempt to enter the arcade business by replacing one-of-a-kind custom boards with Windows NT workstations with “on-line gaming, leveraged content development which is totally scaleable [sic] to Windows 95 based home PCs, and new content that is delivered in ‘episodes’ so the games are always fresh.”

Among the ideas behind GAIN were online gaming, but also the idea of “internet pay phones” that would basically be dedicated Microsoft Network (MSN) terminals for net surfing, email and so forth. They might also become karaoke kiosks (claiming that karaoke technology was already part of the Game SDK.) GAIN was a project that James Plamondon evangelized, but, he admits, without success, “…because I forgot the cardinal rule of platform evangelism: the code has to work. The code I needed for GAIN wasn’t in NT, and I didn’t have Alex’s skills at in-house evangelism. I couldn;t get the stuff I needed into NT, so GAIN collapsed. My fault (sigh).

The OS Illusion

Technical Section

These days, it seems that operating systems are fairly stable. Most of us don’t see the dreaded blue screen of death as often as we once did. I know it used to be a relatively common occurrence on my systems in the past. But today, not so much. Microsoft Research’s Rick Rashid figuratively provided me a glimpse into the world of operating systems that I found fascinating and worth sharing.

I pointed out that operating systems seem pretty stable these days and he replied, “If you don’t do operating systems for a living, that’s how you’re supposed to look at it. I think for somebody who’s built operating systems, built drivers, dealt with all these things, you see the memory errors that occur because of cosmic rays coming. Most computers, you have the illusion that they work. It’s a well-crafted illusion, and you should be happy that you have that illusion. If you work on the other side of the fence, you don’t have that illusion. You know all things go wrong and you have to build redundancy and build mechanisms for dealing with it.

“Our ability to build these complex systems has improved dramatically. Now there’s software that actually can prove that large parts of the code have certain properties. Again, that’s an innovation of this century, not the last century. In the old days, the whole process was much more seat-of-the-pants, you know? We didn’t understand… we didn’t have the right tools, we didn’t have the right analysis software.

“I think that’s a hard thing to say… There are always people who understand the details of systems. There are always going to be people like that. There is a vast majority of computer scientists that don’t really know as much about the hardware as they would have 20 years ago, because it’s just not taught. You don’t need to. If you think of computing as software, that’s one perception. If you think of it as, what is the fundamental microarchitecture of the machine doing? That’s a very different perspective. If you think about what are the chips actually doing? What’s the physics underneath it? That’s a very different story. So at every level of detail, you have a different perspective.

Nuts and Bolts

“I’ll give you a really simple story from when I was a graduate student at the University of Rochester. I built the operating system for the Data General systems that we used, and I can remember one of the younger graduate students coming up to me at one point, saying that his program wasn’t working. And I looked carefully through his program, and it looked pretty good to me. So I said, ‘Use the debugger. Let’s debug it.’ I could see that there was a point in his program where the result was coming back that didn’t make sense.

“So I said, ‘Maybe it’s a problem in the operating system. Let’s go into the operating system debugger.’ So we went into the operating system debugger and I showed him how his program was calling into the operating system and he was getting back a result that was showing a bad value. So I said, ‘Ok. Well, I don’t see anything wrong with what the operating system is doing, but it’s giving you the wrong value back. So let’s just step through the microcode.’

“So we stepped through the microcode. ‘OK. I see what’s going on. It’s taking a fault at this particular location, but it’s returning a bad value.’ So we went into the machine room, put the processor on an extension board, hooked up a logic analyzer. I said, ‘Oh. What’s happening is this driver chip is bad. Its logic is causing data to be corrupted.’ So I took snips out. I took out the chip, got another driver chip. Soldered it in. Put the board in, and the program ran. Ok. So we had dropped four levels of abstraction below where he was comfortable. And I think that’s sort of true with a lot of people. You don’t necessarily know all the things that we are relying on, and when something goes wrong, your assumption is that you’ve done something wrong, or that the operating system has done something… It may just be something way down in the middle. The number of faults that cause things like blue screens that are related to hardware is actually quite high.

“I think it’s one of the things that, again, there are just many different levels of abstraction in systems, and the same thing is true for graphics and graphics cards. There’s the level that’s understood by the programmers here, and then there’s what’s really happening at the DirectX level, and then there’s what’s really happening in the card, and then there’s what’s really happening on the bus. It’s all different.”

Graphics cards were always getting stuck. They were always getting into some weird state, and if you remember versions of Windows from back then, the screen would sometimes just go blank, and then it would come back? What we were doing was that we recognized that we weren’t getting any data back, and then we had to reset the bus and reset the card, and cross our fingers and hope it would all come back again.”

*Plamondon notes that, while this statement was entirely true, “IBM tried to use PS/2 to exclude all other hardware vendors, and OS/2 to exclude most other software vendors. Hence, no one was willing to support it, whereas Microsoft spent a fortune on helping every ISV, IHV, and clone vendor PROFIT from supporting Windows. IBM (like Apple) was greedy in the short run, and failed. Microsoft was greedy in the LONG run, and succeeded. Moral: Short-run greed is bad, but long-run greed is good, because it COMPELS you to welcome and support the success of others.”