Source code for Doom 3

Hi all,

If you’re interested in an OpenGL game that used to be very nice looking compared to other games the source code for Doom 3 has now been made public under GPL :slight_smile:

Double post, please remove.

yes - as announced by Carmack @ this years QuakeCon
I understand he had to rewrite some code due to stupid licensing problems, but here it is
I like it - although, its not like I can read it and understand it or stuff =D

He had to add four lines and change two lines because of a patent of Creative…

Mike

I havent been understanding opengl…

but this is one of my fav game and FPS that freaked me out for first time! ;D

I’m always in awe of people that can take Carmack’s code and actually make it do something else. There is just so much code in there (even the Wolfenstein3D code was huge), how would you even begin to comprehend it all?

Doom3 was the first game that genuinely scared me. I remember what people did to the id tech 1 - 3 after it was open sourced
http://bytonic.de/html/jake2.html

would be intersting what happens to doom 3, although i don’t think i will come to java anytime soon ^^

yeah try going back to even your own code after a year or so
its hard

Especially if you’re still in that “less than 10 years Java programming experience” phase where after a year you go back to code that horrifies you :wink:

I don’t even like C++, and avoid it wherever possible, but I find Carmack’s code to be incredibly readable. The absence of idioms like virtual inheritance or template metaprogramming leads to some very straightforward code, and quite well-commented code at that. You want giant code hairballs, go read the source to libstdc++ sometime.

This isn’t to say that I don’t like the existence of clever idioms in languages (my language of choice these days is Scala, which is stuffed top to bottom with clever tricks), it’s just that I appreciate them most when they make things clearer in the end.

What better way to learn than by reading the source code of a finished product?

Making a finished product.

Hehe that’s ironic coming from you Julien ::slight_smile:

Cas :slight_smile:

try to make one by yourself and fix every errors. When errors are out, try something naughty ;D

Bahahahahaha ;D

Lol I wasn’t ironic, I’m still far from having succeeding in making a finished product but I still think trying to do it is a nice way to learn a lot of things.

You can learn programming this way, you are generally not going to learn the concepts behind what is programmed though, especially when dealing with something as complex as a 3D game. I can’t speak for other people, but I certainly wouldn’t be able to figure out how for example occlusion culling works just by looking at the code of a 3D FPS game, I need an article or book to explain the theory to me in detail (with many pictures) before I can even begin to understand code.

Trying is the most important thing! Without trying no-one ever succeeds.

Cas :slight_smile:

I would go a little bit further and say, failing is even more important.

The old “axe” about learning more from failures than successes is pretty true. My take on this stuff is that CS is applied mathematics. And the only way to truly learn either is to get off your a$$ and work problems.