OpenGL vs D3D (the dirty laundry)
Here’s another couple great email threads from the “countdown to termination” archives. This was one of my last attempts to get Deborah Black, who had inherited DirectX from us, to put a stop to Microsoft’s internal political battles spilling into the public and developer community. Deborah had also been given the wonderful job of productizing Talisman so she was largely and unwittingly at the center of all multimedia debacles taking place at Microsoft in that era. My expressed frustration levels with her accelerated as the weeks progressed and her entertaining Hecker’s blackmail threats amplified the phony public controversy. I was mostly sorry that id Software founder, John Carmack, who I had nothing but respect for, had gotten mixed up in all of this because his perspective was probably the only honest one involved. His “technical” arguments for OpenGL were perfectly legitimate, what he didn’t understand was that the fight wasn’t really about OpenGL vs Direct3D it was about which group at Microsoft would be in charge of deciding what 3D API John got that was ultimately not going to be OpenGL, it was going to be Talisman… but I wasn’t in a position to say it publicly. Prior to the internal Microsoft battle, John had publicly endorsed D3D and provided feedback to us on its design. His complaint that the API was too low level and encumbered with COM nonsense was legitimate. I found my self in the strange position of trying to prevent Carmack from being used as a pawn in Microsoft’s little internal skirmish without “getting into it” with Carmack myself.
It wasn’t until after I left Microsoft that I ever got the opportunity to discuss the issue openly with John directly. We turned that dialog into a Boot Interview (linked below) which was especially fun because Brian Hook, my former evangelist nemesis from 3DFX. had joined Id at this point. Brian was funny in this interview because he “implies” that I’m a “whore” for promoting D3D for Microsoft having himself lost the 3DGlide battle and suddenly discovered OpenGL religion AFTER joining id. Very cute… This article is a really fascinating snapshot of the mindset of game developers from that era. They didn’t know that SGI had already sold their soul to Microsoft, which I did, as you can see from some of the leading questions I asked. They also didn’t know about Microsoft’s plan to give them a huge Talisman injection via OpenGL OR Direct3D back then. They knew I was on the side of serving their interests even if we differed over OpenGL vs. Direct3D so the relationship was always friendly even when we were exchanging barbs over the API’s. As a Microsoft employee I also couldn’t make the point to them that having the Microsoft OpenGL team WIN the argument over standards would only result in them getting ZERO support for games from Microsoft because the OpenGL team just wanted DirectX to go away, they had no interest in being distracted by consumer gaming nonsense… Direct3D would never have been born if they had been willing to support games in the first place.
I also felt immensely guilty about the whole thing because I had done exactly what game developers hated most about big companies like Microsoft. I had convinced them to believe and support us and as a result given such power to the issue of gaming at Microsoft that it had exploded into a giant political debacle that I couldn’t control or protect them from. They were right to resent and mistrust big platform companies and a few well intentioned individuals had given them faith that was quickly abused.
From: Alex St. John
Sent: Friday, April 25, 1997 12:23 PM
To: Deborah Black
Subject: Disturbed in DRG
I’m a little troubled about some of the machinations I see going on in working out our “new improved” 3D strategy. As I’m sure you know, I am by no means an unbiased observer. I make no bones about what I think we should be doing in 3D, and my affiliations with the DirectX guys are well known. Resolved that this data coming from myself may be regarded as questionable. I believe I’ve gathered enough evidence to clearly substantiate the claims I’m going to make to you. I think it’s likely you even know about some of them.
I’m going to make the following points in this email, and outline a means for you to verify what I’ve said;
- A very large portion of the D3D vs. OGL battle going on in the press and on the internet is intentionally generated internally by folks on your team.
- Members of your OGL team are leaking internal MS information to SGI and external Ex-Microsoft employees like Chris Hecker, and Mike Abrash to help fuel the controversy.
Here’s the story in short form in case you don’t already know it. Forgive me for massively compressing and simplifying it, you’ll get the gist. Remember the names so you can recognize them when the crop up in discussions and on the net.
At the time that I first became game evangelist over here almost 3 years ago, Chris Hecker was working in ACT on WinG. It was our first experiment in game API’s. He was hired into Microsoft by Mike Abrash. I’ll spare you the rationale for how things came about, but the short of it is that Chris and I didn’t see eye to eye. Chris wanted very badly to be Mr. Game technology guru at MS, and enjoyed the notoriety he got internally for making WinG. The trouble was that he could never seem to finish it and while I was out evangelizing it, it wasn’t getting done. I also learned that there were a lot of things game developers needed that WinG didn’t do, and Chris who had no experience with games of any sort resolutely denied that WinG by itself was not sufficient to capture the market. It is that the fights over this issue with Chris that caused the DirectX team to be formed in Paul Observes organization to more fully address the other game issues. WinG didn’t ship until Eric Engstrom and Craig Eisler came along and sat on Chris until he delivered it. Chris most certainly didn’t like be sat on, and didn’t like a game development effort going on that went beyond his efforts with WinG that he wasn’t centrally involved in. We essentially burned him out of that role. He went to work for IMD for a while, then left the company to make games himself taking 2 other MS people with him. His company has since desolved and the other MS employees have returned because, of course, Chris couldn’t finish anything.
Mike was one of Chris’s chief supporters when I was grappling with him over 2D graphics for games. Mike having no experience with video games, or real-time 3D would often get caught in a debate with Chris and I about what features games needed support for. Central to these debates was id. (Creators of DOOM, as I’m sure you’re aware) These fights were what first caused Mike to be interested in the id folks. I would claim he and Hecker were clueless and if they’d just speak to a real game developer for a change they might learn something. (I suspect that one of the central reasons Mike went to work for id was that he was so repeatedly bludgeoned with feedback from John Carmack in these debates, that he ultimately decided to have the last word on interpreting Johns words for Microsoft… but that wasn’t until much later.)
With Hecker gone, we proceeded to build DirectX. The first API’s had nothing to do with 3D. I realized early on that we needed a 3D story for games as it became clear that the first generation of 3D accelerators for the PC were approaching the market. Mike was working on 3DDDI for HW. I was a strong proponent of putting OGL into NT, and lobbied Geore Russous and Mike to get it ported to Win95 ASAP. I held design previews for Mike for 3DDDI, and did the first evangelism to promote it to the game community as the standard way to get to consumer priced 3D HW. The problem was that a 3DDDI implementation, SDK and DDK was never forthcoming, and what was available was only going to be on NT for the foreseeable future. This was when Eric decided he needed to get a 3D API and driver model for games onto Win95 as soon as possible and proposed buying RenderMorphics. Mike vehemently opposed this acquisition at first claiming “OGL was all game developers would need” etc.. etc.. Paul Maritz told Paul Osborne that he would only permit the acquisition of RenderMorphics if Mike agreed to it. PaulO told Mike he could own the group if he approved, Mike had a remarkable change of heart and Rendermorphics was acquired.
Eric was extremely frustrated by this because the main reason he wanted to buy Rendermorphics was because Mike could never seem to finish 3DDDI, and the NT team showed no movement toward getting a solution going on Win95. The focus was on high end SGI applications. Eric and Mike drove each other absolutely nuts fighting over this, until Mike finally got fed up and left the company, to join… id! Why? At this time I was using id as a battering ram to show that 3D needed to be very different for games, and that the NT guys just didn’t get it. Mike of course took it upon himself to talk to id directly because of course he didn’t want to just take the word of the lunatic evangelist in DRG. Apparently he decided that there was something to learn from id afterall.
Now Otto was left holding the 3DDDI bag. He didn’t really like Mikes work on 3DDDI, and saw Mikes departure as his opportunity to really “Fix things up”, even though he and Mike had a good working relationship. The only problem was D3D. Eric involved him early on, hoping to get his support in making D3D successful rather than getting into another stinking match with the OGL guys. Otto who had been wanting to create his own 3D driver model all along, decided against working on D3D in favor of creating a redundant 3D driver model for OGL that he could own himself. Execute buffers were an idea originally borrowed from Otto during the brief time he was helping with D3D.
That’s the short form of ancient history, what followed was constant competition between the OGL and D3D teams with several personal vendettas in play. Since then Otto has been directly interacting with John Carmack and Mike Abrash at id. At the same time that I was working with id to get their support for D3D so I could use them as a beacon for the rest of the game industry, Otto paid them a sereptious visit to encourage them to use OGL instead. The result was three months after a huge press release from id and 3DFX announcing ids total support and devotion to D3D as the way to get consumer HW acceleration on the 3DFX, John Carmack published his infamous anti-D3D diatribe and told 3DFX that if they wanted a 3DFX version of Quake they would have to write an OGL mini driver for it. (I asked 3DFX about it) They said John had just sent them a OGL version of Quake and told them that if they wanted his support they would have to stick an OGL driver under it. It was during that three month period that I believe Otto made his trip down there.
Since then Otto arranged to do an OGL for games presentation at the CGDC, and leaked information about our internal conflict over all of this to Mike, and Chris Hecker. Hecker posted much of it publicly on the internet. Chris has posted several pieces of email like this on the net;
> firstname.lastname@example.org (Glenn Corpes) writes:
> >I agree, competition is essential for software of any kind as anyone who
> >has ever used a machine with only one C compiler will testify, they tend
> >to compile at a crawl and run similarly, while on the PC we had Microsoft
> >and Watcom battling for the lead until now we have two compilers that both
> >optimise so well that you rarely need assembler. Competition will cause
> >some serious driver optimization, I know for a fact that at least one IHV
> >has openGL and D3D driver writers who see their job as a ‘race’ 🙂
> I totally agree that the two APIs fairly competing would be the best
> thing overall for the industry, however it doesn’t appear that will be
> allowed to happen inside Microsoft, which is a shame and basically an
> insult to 3D game programmers. Already, I’ve heard rumors that the MS
> OpenGL team will no longer be allowed to innovate on the API, meaning
> they can’t propose extensions nor implement them. Also, the fate of
> the DirectDraw bindings (which I believe are finished code-wise) seems
> to be up in the air for purely political reasons.
Where is he getting this information? From your people. There are presently ZERO, and I mean NO OGL or COSMOGL games in development anywhere in the game industry that aren’t funded directly by SGI. No other game companies are requesting OGL solutions or ever have, there is no developer pressure for OGL anywhere else that isn’t being generated by SGI, your own team, and Ex-Microsoft people. I’ve collected up these email threads, and I’m about to get confirmation that Otto did in fact visit id during the time period described and denied it.
What I’m attempting to show you here is that most of the public controversy and stife going on out there is generated by your team airing our dirty laundry publicly with the fairly malicious intent of screwing up D3D’s position in the gaming community, and trying to create some demand for OGL instead. I’m not saying these guys are solely responsible for the problems, clearly nobody smells like roses here, but I think you should be aware of the complete picture before you make any decisions about how you consolidate our 3D efforts. Mike and Otto are most certainly not providing you with unbiased or informed input. The solution Mike described to me yesterday sounded a lot more like the ancient Egyptian practice of erasing the cartouches of the previous pharaoh and outlawing the mentioning of his name, than a rationale approach to unifying our 3D strategy.
Here’s a little experiment I invite you to run on your own. Ask Mike these questions directly;
- Did Otto visit you at id?
- Did Otto directly interact with Carmack?
I think you’ll find his answer revealing, especially if it’s “no”.
Hock and Steve are pretty active participants in this little game as well, but their trail isn’t as easy to trace as Otto, and Mike’s.
Here are the points I’d like you to take away from all of this;
- There is no OGL vs D3D debate that we aren’t creating
- You’ve got some folks over there carrying out their own OGL evangelism and developer marketing program in direct conflict with ours.
- You’re pretty screwed when it comes to finding an “unbiased” and “uncorrupt” source of input
Clearly my credibility is questionable here, but for what it’s worth, here’s what I think you should do.
- Stop the leaks to SGI and to people outside the company immediately. The cabitzing to SGI, id, and Hecker is some of the most damaging stuff going on.
- Tell everyone to stop behaving like children, lock us in a room together and tell us to come out with a consensus or we’re all fired.
That’s the bulk of the data I think you need to have. Again I’m all set to substantiate if need be, but I’m hoping that simply telling you about it will be enough to help you set things straight. I’m going to follow this with a piece of email summarizing what I think the “right thing to do” is technically and strategically.
This from an email exchange with Bill Gates on OpenGL vs Direct3D and Talisman. Paul Maritz had already done the NT deal with SGI that put an end to their “leadership” over OpenGL, it just wasn’t public.
Farhrenheit was basically a deal with SGI to merge Talisman with OpenGL creating a proprietary Franken-API controlled by Microsoft. SGI couldn’t exactly publicly admit that they were going down hard and needed a Windows NT license to have any chance of survival. It was hardly a deal any “healthy” competitor of Microsoft’s would have done. Of course Farhrenheit never saw the light of day having died with Talisman
From: Bill Gates
Sent: Tuesday, May 13, 1997 5:35 PM
To: Jay Torborg
Cc: Deborah Black; Moshe Dunie; Jim Allchin (Exchange); Paul Maritz; Jim Veres; Nathan Myhrvold; Aaron Contorer; Mike Abrash; Carl Stork (Exchange); Ed Fries; Robert (Robbie) Bach; Alex St. John; John Ludwig; Tod Nielsen; Craig Mundie; Moshe Lichtman; Jim Kajiya; Alvy Ray Smith
Subject: DirectX and Talisman Update
I read most of the notebook that Jim put together for me entitled “DirectX and Talisman Update”. I encourage anyone of the cc line who is interesting in this topic to get a copy of the notebook.
I found section 8 from Inquest talking about who would use Talisman and why particularly helpful.
I understand Talisman better today than before. I still believe it is a very important technology.
However there is more uncertainty about Talisman’s role than ever before because of Intel and the diverse competitive set of companies doing PC graphics solutions. Intel and Microsoft both feel its important to advance PC graphics. Intel wants to use up CPU MIPS and get credit for its contribution publicly. Microsoft wants to get an advantage for Windows. Microsoft has a very strong position in graphics. We have invested a lot and if we can give developers a reliable set of drivers that let them use advanced hardware including whatever Intel gets behind they will follow our lead. I hope Intel appreciates the strength of our position – they can win the chip battle without us but not the software API battle even if they throw some money around.
It now seems there is a high probability that SGI will introduce an Intel based workstation and make that their volume offering. This is very important for Microsoft because they will endorse NT and Softimage will be a hardware platform that is well suited for high end digital video. We would be glad to let SGI have any extensions we make in our graphics API back on their workstations but we don’t want to give them away to Nintendo. SGI could be an ally of ours or an enemy in graphics APIs. Intel is talking to them about OpenGL extensions.
- Under what terms have people licensed the technology? I am sure they are interested in getting patent coverage from us. Do we get any royalties or a restriction to Windows when they do a license? Are their Talisman products just an offshoot for people like ATI, S3, Trident and Matrox? If a license is an easy thing for them to do then it doesn’t really imply much for Talisman. Do rendition and 3Dfx have a high market share? We may have to work with the OEMs to get them to pick the right graphics hardware. Do we expect any arcade people to go with Talisman based hardware or does Intel/Lockheed Martin have that locked up?
- When we talk about getting developers to do Talisman applications how are they supposed to deal with the partial implementations – is the software model for them identical?
- How much work it is for tools like Softimage or the work the DWI did to generate data tables interpreted by code that take FULL advantage of Talisman? Is the key to get people to hand craft things or do the high level tools have to play a role? The evangelism proposal in the book says nothing about the importance of a breakthrough in working with tools people. However most of the award winning games recently have used very high level tools particularly Softimage.
- What kind of work is going on with Java in this area? I saw they endorsed a particular audio approach. The Java platform is the greatest threat to us so I want to make sure they don’t benefit from any of our work and that we stay way ahead of them. We will NOT be doing OPEN JAVA animation or graphics work despite what the cross platform promoters want us to do.
- Whatever happened to audio? I am unclear on what our strategy is in this area and whether these Talisman implementations include any of that. I haven’t heard anything about working with tools people. As I mention above Java seems to have a clear direction for audio whereas we seem to still be viewed as inferior to Apple and Progressive.
- If someone wants to really take advantage of Talisman is there a higher level software layer from us they are likely to use? It seems like some people will not use a higher level layer. People like Seamus like to do their own work because the high level stuff has been bad. Since people won’t use our layer then its hard to have IP protection for anything other than the hardware techniques themselves I think.
- When will there be a running full speed Talisman system to amaze people? I really doubt we will get more than a few games done before then.
- We have put a lot of resources into Talisman. Its unclear to me how much resource we should have on an ongoing basis. Unlike previous years this is not discussed in the write up.
The critical action items seem to be:
- Make sure we are making the right choice by starting with the OGL code. We need to listen carefully to what Alex and the game developers are saying to make sure we can succeed with this approach. Its very disappointing to me to have to start with the OGL code since its based on a standard we do not control but I do understand why this is the recommended choice and that we can move it in that direction. We will not let the cross-platform advocates commoditize our graphics APIs. We must have unique patented graphics APIs even though SUN will have equivalents and ours will not be cross platform.
- We still need creativity about how we make sure video drivers are much higher quality using OEM and PSS. I think there is a structural problem here that we never seem to get on top of.
- We need to get a commitment from EBU to do Talisman games – however they need a commitment from a Talisman hardware vendor or CPU vendor to do bundling and promotion.
- We need to decide who besides EBU we should get to do early Talisman games. Again we have to work with Fujitsu, Trident and perhaps Matrox, S3 and ATI on this.
- We need to decide how much of a budget we have for 3rd party Talisman games and for DirectX promotion. Something like $2M to $3M is being requested I think.
- Figure out our relationship to Intel in graphics. (also SGI)