OT: Doom3 & OpenGL & Xbox

I’ve read recently in gamesdomain that carmack confirmed that doom 3 will be ported to Xbox. That means either two things:

  1. Carmack will write down a D3D renderer for the nv25 code path of doom3
  2. Carmack will use the nv25 Opengl code path as is (with some logical changes since xbox has a differnet memmory architecture with PCs). But in that case it would mean that xbox would run an opengl game.

I thought that MS forces everyone that makes games for Xbox to use D3D.(technicaly I think there is no reason why not to use GL, I guess nvidia can easily provide the driver) So this time, is MS going to make an exception? Does anyone have any more info about it? If OGL games start to show up in Xbox that would be a really good think for OgL itself.Also if you visit slashdot you will find many links for a new hi-res trailer of D3.
(In that trailer,in the beggining it shows carmack coding something and you can see clearly some “typedef struct” stuff in the monitor - remember the C/C++&Q2 post a couple of days back? Hehe, just mentioned it lets don’t start again)

And sorry in advance if someone considers this post off-topic

George Passalis

Words from John Carmack though a bit old :

IGN Xbox: What do you think are the chances of Microsoft actually supporting OpenGL on the Xbox, and why?

John Camack : Last I heard, Nvidia was going to be providing OpenGL for it.

IGN Xbox: I have to ask – can we expect Quake or Doom-ness on the Xbox?

JC: If MS provides an OpenGL, we would probably consider doing a simultaneous development as we will with mac and linux. If not, we will probably still port after we are finished, assuming all the Xbox plans actually come to fruition.

So I think that OpenGL is available to Xbox programmers

[This message has been edited by Zeross (edited 05-15-2003).]

Well, you can certainly spin this thread to be on-topic, but how do you do so without making it a D3D v. OGL flame war?

Personally, I would think that he would just do a D3D version. There are two big related reasons why Carmack uses OpenGL, neither of which are necessarily applicable to the X-box

  1. Ease of prototyping. The console port is not going to require nearly as much tweaking as the various PC versions did with its multiple rendering paths.

  2. Exposure to hardware. Vendor specific extensions provide unique fast paths to different types of hardware. The version of D3D for the X-box already does this.

I wouldn’t go and expect MS to start embracing OpenGL anywhere. OpenGL has a pretty unassailable position on every other platform, though, so maybe that means it will stick around in Windows, too. There’s alot of OpenGL legacy lurking about that MS would be foolish to ignore, but they could potentially direct the future market as they please. They might be successful in the professional market as they are for games.

-Won

I highly doubt MS would want to support an Xbox OpenGL, I would imagine they are more concerned with moving the technology forward, rather than having to simultaniously develop the technology for two drivers. My understanding of it is the D3D for the Xbox has some extensions that make it very similair to RegisterCombiner+TextureShader OpenGL. So it probably wouldnt be too hard to make a very thin OpenGL layer for XD3d.

Zeross – Yeah, I heard the same thing, but that claim has since been more or less refuted by NVIDIA. I think I read it on this board, in fact.

-Won

Also im sure if you looked hard enough you could find at least 1 other game using OpenGL on the Xbox.

  1. Carmack will use the nv25 Opengl code path as is (with some logical changes since xbox has a differnet memmory architecture with PCs). But in that case it would mean that xbox would run an opengl game. <-- how is its architecture any different than the PC? Except that the memory is unified and faster?

Hi,

I work everyday on a XBOX kit so I can tell you that there is no OpenGL support (hey it’s microsoft’s console). But the special DirectX version has some new functions to completly use the nv2A. Funny as those functions look like nvidia extensions… Also I am agree with Won, why John Carmack should want to use OpenGL on XBOX despite of an easy port from the PC version? BTW I’m not sure that JC will always use OpenGL … he choose this API because it was the best (I can’t find the interview sorry).

Cheers,
Arath

Let’s speculate for a second on what conversation might have happened between Microsoft and id despite Arath’s lack of OpenGL.

Carmack: “If you give me an OpenGL library on XBox we’ll show Doom III in time for E3.”

Microsoft: “Here you go.”

I don’t know for sure but I expect OpenGL is available on XBox at least to some developers.

Well my guess is that Microsoft will have to do some work on the OpenGL ICD in any case for Longhorn. If the GUI is now going to be hardware accelerated, it will have to sit comfortably with OpenGL acceleration, otherwise a whole heap of applications won’t work.

I expect to see an update OpenGL ICD eventually.

  1. JelloFish wrote: "how is its architecture any different than the PC? Except that the memory is unified and faster? "

I just said that because in PC you have to design your application keeping in mind which data will be static (so you can send them once to the card) and which are are not. I guess in Xbox this doesn’t make any difference so I would expect some changes on the code for this reason. Its just a thought!

  1. My personal opinion is that MS provided the OGL driver to Carmack, but probably made a deal that when doom3 will come out for Xbox, it won’t mention anything about ogl anywhere :slight_smile:
    Or maybe they exchanged OGL support for Xbox, with a D3D code path for the PC version. Who knows!!!

Robbo – Actually, I have a feeling that Longhorn and DX10 are going to be coincident releases, and that DX10 is going to be MS’s bid to push OGL into the margins. Would MS bother with any more ICD development? They pulled out of the ARB, remember? They’ll probably only do the minimum to achieve backwards compatability. That’s one simple way MS could use their leverage against OpenGL.

Also, I’m going to hazard the guess that the NV25 code path wouldn’t be very hard to port to D3D, and could probably be accomplished by some non-Carmack person(s). The rendering engine is clearly modular already, so I would infer that the interface consists of basically passing in vertex buffers and shaders, which D3D can handle about as cleanly as OGL.

Like other posts in this thread this is basically speculation, but that doesn’t mean you shouldn’t justify it.

-Won

I want to know why you guys cannot immagine that John Carmack knows Direct3D. He is genuis.

Originally posted by wis mak:
I want to know why you guys cannot immagine that John Carmack knows Direct3D. He is genuis.

I can tell you why. If he is a genius, how a non-genius like me can understand or know everything he knows. Of course, if he is not a genius, your conjecture is false.

Quake3 was converted to every format under the sun (like ps2, dreamcast, xbox) by Bullfrog. I expect the same will be done for Doom3. It really has little to do with ID software, more to do with their publishers.
The idea that MS would introduce a new graphics API into their devkit for one game is, at the very least, laughable.

[This message has been edited by knackered (edited 05-15-2003).]

Nobody said he doesn’t know D3D. The incremental knowledge to understand a different set of entry points would be easy for most of us, especially since D3D has become more of a copy of OpenGL than anything else.

knackered I agree, but the idea that they would have some version of OpenGL bindings since it’s an NVIDIA graphics implementation that already has OpenGL drivers written that was available on request and under NDA is not so laughable.

Either way it doesn’t much matter, we know it’s technically feasible to port it to D3D and we know Carmack said id would port if he had to. I’d guess a port would be pretty quick & simple the way Carmack puts all his graphics calls in a separate dll with his own entry points wraping it.

Firstly, Carmack knows (or has some knowledge of) D3D, it’s not like it’s hard work keeping up with both API’s if even a moron like me can do it . And on the XBox there’s a lot of stuff that looks like nVidia GL extensions in a D3D style wrapper, so nothing too taxing to get your head around.

Secondly, with such a high profile game as Doom3 I’d be very surprised if Microsoft didn’t appoint a couple of their own programmers to do (or help with) the port for id. It’s worth a hell of a lot of money and kudos to MS to get Doom3 on their console, so they’re going to go out of their way to make sure it happens.

Or so I reckon

besides: does anyone remember the times where quake(later GLquake) came out ?
there was no HW-openGL support at all(at cosumer level).
so carmack did his own OpenGL implementation. it was the so called “miniGL” for 3dfx-cards only(as a wrapper for glide…)

so now, he could just simply thake this old piece of OpenGL-code and rewrite it for D3D.
in this way there where no need to rewirte any piece of Doom3-source. he just need to hire some smart guy for extending/porting this wrapper, and voila! the Xbox-port is done!
(i am assuming that the sound/io-part in Doom3 is allready wirtten in D3D anyway…)

This is all minor detail - which API he uses to send the triangles to the card with whichever shader enabled is minor detail. Like a weeks worth of work, if that. It’s the research he’s done into fast shadows and geometry reduction using normal maps, the algorithms etc. that has taken up the dev time of doom3, not selecting what OpenGL calls to make. If you look at his .plan’s, you’ll see he’s able to drop in new render paths for new extensions and even API’s (such as GL2) in a negligable amount of time.