Doom It Yourself: Doom 3 Source Code Due

Eventually, I've become strangely fond of Doom 3

Quakecon 2011 kicked off yesterday, and included another of John Carmack’s traditional incredibly long and bewilderingly technical talks, delivered at an audience primarily there to repeatedly frag each other but prepared to sit through all this talk of doohickeys and megawotsits due to their sheer love and respect for the godfather of FPS. If they were also primarily there in the hope of Doom 4 being unveiled at last, they were disappointed. Carmack made it clear that 2011 is all about Rage – which, all of a sudden, is due for release in two months.

Soon after that, he revealed, id will release Doom 3’s source code to the world.

Which will presumably put the still not inconsiderable clout of id Tech 4 into anyone’s hands – what a gift that should be to modders, indies and small devs alike. Id’s owners Bethesda/ZeniMax have approved this, apparently just leaving a few legal hoops to jump before it can happen.

id has a happy tradition of doing this sort of thing – they made the Quake III source available to the world a few years back too.

Good work, Mr Carmack. Now, back to your megatextures with you.


  1. Squishpoke says:

    Congratulations, I’m a hundred years old.

    (This is a humorous jibe. Don’t take this in a cynical manner!)

    • starclaws says:

      Old or not. Ill still worship Carmack. Keep up the great work and keep looking to modders to support each other while attempting to achieve the greatest FPS game ever.

  2. stahlwerk says:

    Oooh, looking forward to seeing the original implementation of Carmack’s Reverse.
    The mere fact that id still release source code (in this day and age of DRM nonetheless!) of their engines deserves praise and applause.


  3. Baboonanza says:

    I enjoyed Doom 3, it had atmosephere. Though to be fair I did play it for the first time with the gaffer-tape mod. And in hindsight at least it was different from the modern COD style shooter.

    I can understand why people hated it though. Monster closets just didn’t bother me, they’re no less gamey than anything you see in other shooters IMO.

    • PoulWrist says:

      I’ve been playing it again this past week or so. Bought the Doom pack on steam during summer sale, and I must say it’s still a scary game :| for whatever reason, this kind of horror just gets to me. There’s a sense of danger all the time, to me anyway, but the actual fighting isn’t horrific. Just fun. And the way the ragdoll system works on corpses is still some of the best around. This mod I’m using does claim to have some tweaking of it, but I don’t know what has been tweaked. It looks great, anyway. Instead of that bizarro stuff-weighs-nothing that nearly every other game has.
      Also, monster closets are fun :p I dunno, I kind of thought it was a sort of tribute to old Doom that they had them in there. I much prefer them to teleporting in enemies, or having them come endlessly from some building untill you pass a certain point, or just coming in from over the walls or something till you’re done with a given encounter.

    • Amun says:

      I just want a mod featuring the pre-invasion mars complex. Strolling around the beginning area without worrying about monsters was my favorite part of the game. I’m a wimp, I know. =/

    • StingingVelvet says:

      I liked it as well. I think the majority did at the time, it’s just become an easy game to bash now-a-days.

      It was too f’in long though.

    • Ruffian says:

      agreed. I mean I like doom3, I don’t think it’s too long. loved that it was longer.

  4. Gnoupi says:

    //Minor modification
    function Gun getGun()
    //return gun;
    return gun + flashlight + tape;

    There you go, fixed that for you!

    • Rich says:

      This is madness! In what languages can you return three objects?

    • Gnoupi says:

      The + operator obviously makes the assembling itself, just like the Dr Hawkins in MDK2.

    • Shadowcat says:


    • Rich says:

      The operator + is undefined for the argument type(s),

    • Gnoupi says:

      @Rich – oh, that explains. So much.

    • stahlwerk says:

      void gun::shoot(guy& bad_guy, bullet const& b)
      bad_guy << b;
      std::cout << "nice shot!";

    • Starky says:

      Doom 3 has stopped working.

      Problem Signature:
      Problem Event Name: APPCRASH
      Application Name: Doom3.exe
      Application Version: 6.6.6
      Application Timestamp: wtf1337id
      Fault Module Name: ducttape.dll

    • Gnoupi says:

      Call hierarchy of gun::emit_light() :
      1 method: gun::shoot_bullet()

    • diebroken says:

      Extend std::Pair Class

    • Voxel_Music_Man says:

      @Rich’s first comment: Lua does! (return multiple values)

      …although I doesn’t look anything like C++ and isn’t even remotely as fast but it’s still a cool scripting language.

    • mrwonko says:

      Agreed, Voxel_Music_Man – Lua is a very cool scripting language.

    • VelvetFistIronGlove says:

      “Lua…isn’t even remotely as fast but it’s still a cool scripting language.”

      Of course, it’s still easily fast enough for most game logic. Fast enough for Grim Fandango. Fast enough for Far Cry. Fast enough for Crysis.

  5. Mithrandir0x says:

    It’s good to see more engines going open-source. I hope they can work out the shadow algorythm thingie with Creative Labs.

    Either way, it’s always good to have a fine reference to learn from.

    • yrro says:

      AIUI, the patent doesn’t effect the distribution of source code, so iD themselves wouldn’t have anything to worry about. It’s the people who want to compile the code and then run/distribute it that would have to crawl begging to Fortress Creative Labs to beg permission to use their super inventive algorithm.

      An excellent overview of this was recently published by the Software Freedom Law Center: Community Distribution Patent Policy FAQ. In particular, see the section entitled “I have heard that distributing source code is safer than distributing object code. Is that true?”.

  6. Text_Fish says:

    Well done ID, you’ll always be my favourite. X

  7. Baboonanza says:

    Doom 3 was released just 3 months before Half-Life 2, and IMO the tech was much better. While old for AAA tech it could still hold up pretty well for smaller budget titles.

    • Rich says:

      It looked good when rendering indoor, dark, metallic (or fleshy) scenes. No good at all at realistic outdoor scenes though. The outside bits of Doom 3 and Quake 4 looked rubbish.

    • The Dark One says:

      At least in its initial form, the engine has some serious limitations. It was well suited to a dark game like Doom, but the number of light sources and polygons on each NPC and monster were seriously limited.

      Source used a technically cludgier approach with lightmaps baked into the levels and a far less unified renderer. Thing is, it was much more flexible for map makers.

    • Hanban says:

      I just remember being blown away by using computer consoles in the game. “Wow, I’m on a computer, in a game, using a compute that sort of acts like it was being interacted with in a real way. This is amazing!”

      Quite liked the game too. Although, after the chainsaw I never felt threatened again. It was just “Oh snap a huge monster, BBRRRRRRRZZLLZLZRRRR” and it turned into a mist of blood.

    • PoulWrist says:

      Yea, it’s funny how that way to use computers and buttons never made it into other titles. Well, maybe apart from Quake 4 (I don’t recall! Someone loaned my copy and now I can’t find it ;(). And now today, we don’t even have buttons or doors in games (CoD), or if there are, then they’re part of major scripted events where you just sit back and watch your hands manipulate it, or some NPC “does” it for you.

    • mrwonko says:

      Prey, another Doom 3 engine game, had usable computers as well. Still haven’t played Doom 3 though…

    • Gnoupi says:

      It’s a too complicated way to interact with a gamepad. Hence it has no future for a shooter game.
      But I agree, these functional interfaces in the game were great.

    • Hanban says:

      Your comment reminded me that I actually played Doom 3 on an XBox.

      Didn’t at the time have a comptuer good enough to play the game. So I have to amend my statement:

      “Wow, I’m on my parents’ couch playing my Xbox, using a computer that sort of acts like it was being interacted with in a real way. This is amazing!”

    • shoptroll says:

      For an almost 6 year old game the models and textures don’t look much worse than what we have today.

      Then again, I still think the original Unreal doesn’t look that bad. At least not nearly as bad as a lot of the 3D on the consoles at the time.

  8. CaspianRoach says:

    Rage is all the rage.

  9. The Sombrero Kid says:

    It’s only useful as a learning tool, using the engine without the technical know how to build your own will be more expensive (in time) than using unreal or unity & using it if you are capable of building your own is a bit pointless.

    • mrwonko says:

      Well, wanting to write my own engines/games, I certainly appreciate it as a learning tool.

      Also: More possibilities for modders! Yay!

  10. Choca says:

    Those guys look like a couple in front of their house’s door, the marine-husband looking for his lost keys and the monster-wife giving him shit about it…

  11. Rii says:

    Anyone have a link to Carmack’s keynote?

  12. Westmark says:

    Isn’t the source already available?

    link to


  13. Metonymy says:

    This is the first game that I saw with bump mapping, and when I saw rivets on the ground, and rust peeling off a wall, I was a believer.

    I was still sorry to see the stylistic style of the original doom fade away, however. The (comparatively) bright colors and engine limitations really brought out the creativity of mappers. Modern games look too real, there’s no direction for an artist to take that.

    • PoulWrist says:

      Have to say that Doom 3 has some pretty awesome artdirection. All the game’s environments look astoundingly “real” in this 80’s style science fiction spacebase monstrosity kind of way. Pipes snaking all over, grates hiding weird machinery, flashing lights, pumps going on, steam pulsing out of the walls, panels, computers and monitors all over.
      It’s really evident when you play it today after having listened and read interviews on Rage and what they want to achieve, that the whole uniqueness of everything was something they strived hard for when making Doom 3. Nothing is ever like the last place you were at.

    • Thants says:

      A game can look real and still go an artistic direction. Like Mirror’s Edge.

  14. StingingVelvet says:

    Not much needs to be done to Doom 3 really, as far as making it work correctly on modern systems. That is usually the big benefit of source code to me. If this really does allow indies to use it though that is pretty awesome. That engine made some good looking games.

  15. vrekman64 says:

    Guys, I don’t know what you will think of me, but I’m really interested in “John Carmack’s traditional incredibly long and bewilderingly technical talk”.
    Where can I find this speech? Video or text.
    Doom 3 was innovation in 2004 and even the intro was scary

    • minipixel says:

      i also can’t find any video.. the only google result so far seems a private youtube video?!

  16. DavidK says:

    Anyone know which license? GPL2?

    • Kaira- says:

      I remember Carmack(?) saying it would be released under GPL2 way before this Quakecon. I might be wrong though.

    • LionsPhil says:

      That would be consistent with the license they released the Quake 3 engine under, I believe.

  17. Pemptus says:

    Oooh, could this mean new and exciting possibilities for The Dark Mod? Awesome.

    • Casimir's Blake says:

      At the very least, TDM’s devs were talking about making it stand-alone eventually. Which can only make it even more incredible than it is. Good on Carmack.

    • Shadowcat says:

      The Dark Mod is the #1 reason I’m excited about this news, but it’s an awesome thing in general. Especially as for a while there (since Id sold themselves to Zenimax), it seemed less of a given that Id would be GPLing this engine. I’m very glad to hear that it’s still happening!

      And no matter what anyone thinks about the attributes of this engine vs other engines, it is undeniably incredibly cool that Carmack and co. have made it a habit of releasing their past engines under the GPL in this fashion. That’s an amazing way to give back to the entire gaming community, and also to ensure that their games will live on for a long long long time.

  18. kregg says:

    Well maybe now the game engine can support widescreen monitors…

    • Dominic White says:

      Huh? All you had to do to enable widescreen was change a line or two in the INI file.

    • Wilson says:

      Actually, I have a question here. Loads of games seem to support widescreen through a change in the INI files. Why don’t these games just include the option in the actual game itself? Is it because they don’t want to have to test it in widescreen mode? But if that’s the case, why include it at all?

      I’m sure there’s a good reason, and I’m curious to know what it is.

    • Alextended says:

      I’d guess widescreen just wasn’t common at the time so they just didn’t bother putting it in the options. But the engine is Carmack’s so it was of course made, unlike others, really well so using custom resolutions via the ini file, including widescreen ratios, has no issues. Which is great for us. Newer games not having widescreen options is just dumb though (at least ouside some fix resolution pixel art indie game or something along those lines), since it’s so common and they could probably easily just make it list the resolutions your GPU is capable of rather than add a handful of presets and leave it at that.

  19. Megagun says:

    Doom 3 sourcecode + TRaK5 textureset = I see some potentially nice looking open-source projects in the future…

  20. Hendo says:

    Although I know it’s a heavily modified version, it seems fair to point out that Prey 2 is running off “id Tech 4”. I don’t know the ins and outs of programming BUT I guess this is a good example of how well the engine could hold up to modern standards given enough work.

    I still enjoy Doom 3 and don’t believe the graphics have aged badly. I find playing an original copy of Half Life 2 is far worse (although Valve’s continuous support for the engine and older games has negated this quite a bit, e.g. Portal 2 or the updated Episode 2 engine ported back to the original game).

    • mrwonko says:

      Has there been any Prey 2 ingame footage so far? None that I’m aware of… Oh well, looking forward to the gamescom in two weeks, may see it there! :)

    • Hendo says:

      Yeah – there’s been a whole preview walkthrough from E3 this year. Was even posted on RPS:
      link to

      Hope that helps. Doesn’t look too bad really.

  21. Alaric says:

    I better have a working copy of Doom3 running on my Android tablet by the end of the year. Or else.

  22. thelloyd90 says:

    I thought that when this game came out it never compared too the original doom. I was young and naive, I now realise that change within series of games is what enables them too evolve into better games. I welcome the news that people can create their own games using this engine as it can only mean that the games created will be using a good engine and modify the code to their desires.

  23. Premium User Badge

    It's not me it's you says:

    Carmack is god amongst men for continuing to open source the engines id works on. It can’t be easy to go through the legal rigmarole required (especially now that they’re part of Bethesda). I already own just about everything in the id pack on Steam or I’d buy it just to say thanks.