Free* Doom 3 Source Code Available

By John Walker on November 23rd, 2011 at 8:46 am.

You too could craft this face.

Do you know, it was probably to me that John Carmack first revealed he was intending to release the Doom 3 source code. I’m pretty sure. During an interview for PC Gamer in late 2008, I asked him if he’d be continuing his practice of making previous code available once the next big engine was out, and he explained that with Bethesda now owning id he didn’t know if it would be more difficult, but he was “almost certain we will wind up releasing the entire Doom 3 code base once Rage ships.”

So, with Rage safely released, it’s finally happened, and published under the GPL. Not before an emergency recoding of the shadow tech, after BethSoft lawyers got the squits over a possible patent issue.

As it happens, Carmack was pretty prescient in 2008. When asking him about the possibilities of Doom 3 code, he predicted,

“There’s a lot more worry about what if somebody said, ‘You infringed on our patent, and here’s proof. You owe us a whole ton of money.'”

But he was determined. He explained to me back then that releasing source code was his “pet thing since the very beginning”.

“For a long time it was very much the rest of the company shrugging, throwing up their hands, saying, ‘Well, John wants to do this, so I guess we’ll do this.’ But I was really happy several years ago when Kevin Cloud, one of my old partners, finally came up and said, ‘You know, that probably was all a good idea.’

“Everyone had the doom scenarios of, ‘Oh, that’s helping our competitors, they’ll take things, it’ll make it easier for them to compete with us in the future.’ And I really don’t think there was any of that. The people who are our competition, they’re smart enough to do things on their own. So I do think it wound up being a purely positive thing.”

This is of course the company that at one point released a third of all their games for free as shareware. Something it still makes me very sad to see them not doing these days. But it’s great that Carmack remains passionate enough to be working hard to make sure source code gets out there. Three years ago he gave me some reasons why,

“There are so many cases of people who learned programming like that, or worked on doctoral theses based on that, or used that to get into the industry, or just created wonderful things. I am very happy that several other companies have done similar things with their source code.”

Oddly, Carmack hasn’t yet announced the source code’s release on his own Twitter channel yet. Oops, yes he has. But GameFront has, via VG247, and you can get it for yourself here.

*As in speech, and as in beer

, , , .

51 Comments »

Sponsored links by Taboola
  1. Raiyan 1.0 says:

    By the way, Carmack had to rewrite bits of the source code to avoid all the legal dispute.

    “Lawyers are still skittish about the patent issue around ‘Carmack’s reverse’, so I am going to write some new code for the doom3 release,” he tweeted.

    Guess how much he had to rewrite?

    “This demonstrates the idiocy of the patent,” he wrote in a follow-up tweet. “The workaround added four lines of code and changed two.”

    Oh Carmack…

    • The Dark One says:

      After all, game engine coding isn’t rocket science…

    • Premium User Badge

      The Sombrero Kid says:

      Yeah it’s a philosophical question whether or not code should be subject to copywrite law or patent law, hence right now it’s subjected to both.

    • theleif says:

      The absurdness of being able to patent something that is basically a language…

    • Premium User Badge

      phuzz says:

      What about the absurdity of the same man rewriting the code who wrote the originally patented code?

    • Premium User Badge

      Sagan says:

      Well that doesn’t mention how much time he had to spend on those lines of code. I imagine not a lot because it’s Carmack, but number of lines does not equate amount of work. Graphics algorithms tend to be especially notorious about this. Often the paper is extremely complicated with math that explains way more than you’d ever need, and then all the complicated math simplifies to a tiny shader that seems way too obvious.

      And then when you’re done and someone looks over your code they’re like “really? you spend one week on writing 50 lines of code?” Except you spent half of that week on doing the research, 10% of the time on doing the implementation, and 40% on ironing out all the edge cases and making it actually look good.

    • vodka and cookies says:

      The games industry would be dead if the same forces that love patenting business software took hold, thankfully most in the games business know that it would spell their doom (no pun intended) if it began to happen.

      I think was those assholes at Creative Labs who originally patented this shadowing technique, patents will never go away in the USA because the USA government is easily bought off by corporations and the likes of Apple, IBM and Microsoft with huge software patent portfolios will do anything to keep them in place as they are used as a weapon to keep competitors out.

    • Snakejuice says:

      Software patents is in the same evil league as book burning, censorship, lobbyism and maybe even genocide.

    • Premium User Badge

      frymaster says:

      @phuzz: that’s the problem, he didn’t originally write it.

      It became known as Carmack’s reverse, but it was patented by creative labs several years earlier, back when they were still in the graphics industry. Their own licensing terms with id amounted to “make sure EAX is in doom3″, but that doesn’t cover anyone else who uses the source code.

    • Rhin says:

      @frymaster: The problem is that he independently thought of a brilliant – yet – simple idea ( if an object is inside X number of prisms, there will be both X faces behind it and X faces in front of it, and you can calculate the former in one pass over the scene instead of 2 ) but Creative already bought the idea on the “thought market” so to speak, so Carmack wasn’t allowed to think that idea anymore (at least, his game wasn’t allowed to use that idea).

      Various sources indicate that the original presentation on the z-fail idea was given by Sim Deitrich, an NVIDIA developer at a Creative conference, so Creative wasn’t even the original thought-producer.

    • stupid_mcgee says:

      Actually, if you talk to most big tech firms like MS and a lot of others, they really don’t like software patents. They participate because, hey, sink or swim, right? If they don’t buy up patents, then patent holders will nickel and dime them like crazy. Of course, as bad as things already are, thankfully the software patent craze has mostly resided in the cell/smart phone category for now.

      The real problem is that the Supreme Court goofed in 1998 and said that some dipshit bank could patent their software they used to track mutual funds. Thus begins yet another way the SupCo has royally screwed over the entire country because they’re incompetent fucks that really don’t understand the (obviously) complex issues at hand and potential ramifications. (revisions for private parties to seized other private property using federal Imminent Domain stature is another good one)

      The Patent Office used to be very reluctant to issue patents for software. For decades, it considered software to be like language. Software programs were more like books or articles. You could copyright them, but you couldn’t patent them. They weren’t inventions like the cotton gin.

      But the federal courts stepped in and they started chipping away at this interpretation. There was a big decision in 1994 and another one in 1998, which rejected the Patent Office’s view.

      […]

      But when we looked at the patent, it seemed to claim a lot more than that. The patent says, this invention makes it possible to connect to an online service provider to do a bunch of stuff– software purchases, online rentals, data backups, information storage. The patent makes it seem like this one guy, Chris Crawford, invented a lot of what we do on the internet every day.

      We weren’t sure what to make of this, so we turned to an expert.

      David Martin: 5,303 patents that were issued while his was being prosecuted, which covered the same material. 5,303.

      Alex Blumberg: And so that means that at the same time that Chris Crawford’s patent was getting issued–

      David Martin: Only 5,303 other people were pursuing the same thing.

      Alex Blumberg: And when you say the same thing–

      David Martin: I mean the same thing.

      […]

      In polls, as many as 80% of software engineers say the patent system actually hinders innovation.

      This American Life: When Patents Attack

  2. dee says:

    John Carmack is something of a cool guy.

    • Gnoupi says:

      He lost all his “cool guy” aspect to me a few months ago: http://www.rockpapershotgun.com/2011/10/09/rage-patch

    • Kdansky says:

      He’s still a cool guy, even he is developing for the wrong platform.

    • Premium User Badge

      Sagan says:

      @Gnoupi: Why? Because he gives reasons for why the consoles were more important for them when developing Rage? You bet that every developer thinks like that nowadays. It makes perfect sense to spend most effort on the platform where most people will buy the game.

      As for the other things mentioned in that article:
      – He does state that it’s AMD’s fault for not having the drivers ready. If they work together with AMD to make the game run better on AMD cards, and then AMD doesn’t have the same driver that id was working with released when the game comes out, there really is nothing that id can do. (except they could have delayed the launch (angry fans!) or not worked with AMD at all (angry fans!))
      – And that the textures would be low resolution when you walk up to them really closely was known before launch. It was a limitation of the megatexture approach that they knew about and accepted. If everything is uniquely textured then the textures can’t have the same resolution so they won’t look good from really close.
      – The one thing from that article where I can see that they did genuinely mess up was the lack of a graphics options menu. But hey, you can make that mistake and still be considered a cool guy.

    • apa says:

      I think Carmack is a pretty cool guy. Eh codes gmaes and doesnt afraid of anything.

    • Milky1985 says:

      “He does state that it’s AMD’s fault for not having the drivers ready. If they work together with AMD to make the game run better on AMD cards, and then AMD doesn’t have the same driver that id was working with released when the game comes out, there really is nothing that id can do. (except they could have delayed the launch (angry fans!) or not worked with AMD at all (angry fans!))”

      Yeah I mean god forbid they actually test something with the current WHQL certified drivers to see what happens and put a warning on the box.

      (Theres also the minor fact it had major issues on nvidia cards as well, agani becuase no-one bothered to see what happened with previous WHQL drivers, but that is of course AMD’s fault… oh wait)

    • stupid_mcgee says:

      Y’know, at least Carmack had the balls to say, flat-out, where his priorities lie. I can’t help but think of the dozens and dozens of times I’ve seen “PC is our lead design platform” or “the PC version tailored for the platform and won’t just be a port” in various PC-centric mags, then had it be a horrible buggy mess on a wide array of machines and very much NOT meant with PC in mind. And this has happened several times just within the past year.

      A lot of people will say anything to get you lapping at their heels. At least Carmack just says what’s on his mind, whether it’ll piss you off or not. Hell, that’s Texas for ya.

    • Premium User Badge

      Sagan says:

      @Milky1985: Rock, Paper Shotgun doesn’t have the full quote in that article. Click on the link to Kotaku in that post and you will find this quote: “We were quite happy with the performance improvements that we had made on AMD hardware in the months before launch; we had made significant internal changes to cater to what AMD engineers said would allow the highest performance with their driver and hardware architectures, and we went back and forth with custom extensions and driver versions.”

      The reason why it doesn’t work with older drivers is because they worked together with AMD who said “use these custom extensions please because it will make the game run better. It will break support with older drivers but we promise that we will have the new drivers out by the time the game launches.”

      So: This is entirely AMD’s fault. It is a lot of work on id’s part to implement support for these custom extensions. Most developers would never do that. id put in the extra work to make sure that the game runs it’s best on AMD’s hardware. And then AMD drops the ball and doesn’t have drivers ready. The only thing id could have done is delayed the PC version (angry fans!) or they could not have put in the extra work to run it’s best on AMD hardware, and they could have just made it work with the old drivers at a performance hit. Which would have probably been the better decision in hindsight, but that is not a trade-off that you can foresee. “hey more work put towards supporting specific hardware will actually lead to you having more problems with that hardware.” Not very obvious and entirely understandable how id would have made that “mistake.” (which really is just AMD messing up)

    • DrGonzo says:

      So why doesn’t it work for me on the latest drivers? I still can’t play the game. It now looks and runs fine, but crashes after about 20 minutes.

  3. sabrage says:

    Any Doom 3 mods worth playing? I beat in ages untold but I got dreadfully bored about an hour into Resurrection. Specifically looking for atmospheric, visually striking single-player experiences.

    • Saxarba says:

      Not a mod, but a Total Conversion: The Dark Mod, basically Thief in the Doom 3 engine.

      Hehe, you beat me. :)

    • Premium User Badge

      phlebas says:

      Weren’t some of Brendon Chung’s games mods for Doom 3?

    • dee says:

      Another vote for the Dark Mod. I used to play Thievery all the time with my friends, still do. Can’t wave the Dark Mod bacon under their stealth noses enough to get them to bite, though.

      Er, I can’t get them into the Dark Mod. That didn’t really need a metaphor.’
      Edit: simile, whatever.

    • sneetch says:

      “Not a mod, but a Total Conversion: The Dark Mod, basically Thief in the Doom 3 engine.”

      I’ve had Doom 3 for ages and how am I only finding out about this now? Someone dropped the ball. I’m not blaming anyone (although it was probably RPS’s fault, somehow, most likely, almost definitely in fact) I’m just saying balls were dropped. Obviously, it’s not my fault, I mean I’m hardly responsible for tying my own shoelaces, in fact I’m legally prevented from taking responsibility for things.

      Damn, now I have to wait hours before I can get home and download this.

      Thanks for letting me know rei and Saxarba.

      (I notice that the first review on their site was from RPS, I’m still working on the fine details of how it’s their fault I didn’t know, it’s requiring some mental gymnastics).

    • MSJ says:

      Is Crucifix of Shit still available? Yes, that its name and PC Gamer UK featured it once.

    • sabrage says:

      Yeah, The Dark Mod was the only one that I was really aware of (though I didn’t know its exact name.) I’m glad to see it’s still being developed and improved, I’ll be checking it out in the near future.

  4. Hoaxfish says:

    I never got the feeling that the Doom 3 engine saw particularly good uptake for other games compared to previous ID engines… overshadowed by Source and Unreal, unless I just wasn’t paying attention/wrong chronology?

    Still nice to see people in big gaming companies actually remember that not everything is business, or even the game-product itself.

    • Wildeheart says:

      Seconded,

      As far as I’m aware it garnered not a single other game developed with that engine outside of other Id products. Unreal 3 basically ate their lunch and rightly so since it wasn’t just prettier and easier to develop for but actually had a decent in house game released to promote. Doom 3 was just awful in every possible way besides the graphics which for an arena game of the time were very good, just a shame they decided to hide half of it in pitch black since no self respecting space marine runs around with a flashlight as his primary weapon!

    • Guvornator says:

      Brink is ID Tech 4. Wait, really? Well that’s what it says here…Also Doom 3 was, approached correctly, pretty darn brilliant. It just wasn’t like Doom. Prey and the forthcoming Prey 2 are also running on the engine (so presumably are a bit hacked off that the engine they paid for is now free). Otherwise you’re right. It was just ID related IPs (other developers such as Raven made the games, but they were all ID franchises such as Quake and Wolfenstein). I mainly remember this for ID pissing off Raven by giving away a major mid-game plot twist in Quake 4, including screenshots and detailed analysis of said spoiler….

      If I remember correctly, it was pretty shite for outdoor scenes, so unless you wanted a game that was like Doom, you were better off choosing UE which from the first version could do sweeping vistas superbly. The only non-Valve Source game I can recall off the top of my head is Vampire: The Masquarade which, technically, was a horrid mess.

    • dee says:

      @Guvornator For Prey 2, they’d still have to pay the license fee, it wouldn’t have made a difference.

    • cafe says:

      What are you guy’s talking about?
      First of all the Doom 3 Engine was released way before Unreal 3! U3 was like the next step not a competition!
      Secondly, the doom 3 engine rocked! There were actually games that looked quite good with it like prey and well doom 3. I always thought it was one of the most atmospheric engines ever created, it had this dark touch to it. For me Unreal 3 has a space touch to it which is why vegetation always looks like plastic in it. I’m still looking forward to every game that is developed with doom 3 since its my favourite engine!

    • BobsLawnService says:

      The Doom 3 engine was the greatest corridor shooter engine ever developed. Sadly corridor shooters went out of vogue about three days before Doom 3 was released.

    • stupid_mcgee says:

      Doom3, Prey (1&2), Brink, Quake 4, Quake Wars, and Wolfenstein (2009) are the only games that I know of that have used idTech4.

  5. Moni says:

    The guys who worked on the rather brilliant ioQuake3 fork are gearing up to do ioDoom3.

    http://www.iodoom3.org/

  6. Premium User Badge

    AndrewC says:

    Umm, what does this mean? It doesn’t mean Doom 3 is free to play, does it? Explain, o techy people!

    • Moni says:

      The CODE is open source, that means you can look at it, admire it, change it, and sell it.

      The game assets (models, maps, textures, etc.) are not open source, you would still have to buy the game to get those. Only id/Activision/whoever, has the rights to sell or distribute the assets.

    • stupid_mcgee says:

      Sort of. You cannot sell it, though. It’s not truly open “open source” but a GNU public license. Essentially, you can download and use the idTech4 engine for free, you can legally modify it to your heart’s content, but you cannot sell whatever product you made with it unless you get a license from the developer. You can, however, distribute your work for free, which is the bigger thing for indie devs who want to get noticed.

      http://en.wikipedia.org/wiki/GNU_General_Public_License

    • frenchy2k1 says:

      You can sell it if you want too, the GPL only tells that whenever you distribute your version of it, you need to include the source code (or at least give an easy way for the recipient to access it).

      Provided you are giving the source code and cannot restrict how the recipient uses it either (part of the GPL. GPL code needs to always be GPL), selling is rather difficult…

    • oldfart says:

      Basically, you can use the engine source code to almost anything, including build and sell a new game, or just to learn (my case). But the game art assets (models, maps, sounds, textures, etc) are NOT free to play or use in other games.

    • othello says:

      You can definitely sell a game made with the source code under the GPL. You would just have to release your modifications to the code along with the binaries.

  7. bill says:

    I think this is a great move, that they don’t get enough credit for.

    But… I wonder if they wouldn’t be better doing something like Unreal/Unity and allowing free licensed usage of their current engine, but getting people to pay for commercial use.

    It wouldn’t be all open source, but it might actually be better for developers and ID.

    • Rhin says:

      I assume they charge for use of their current engine but release the previous one as an educational resource for hobbyists and students (as Carmack has pointed out before, anyone who would benefit from id’s 7-year-old engine isn’t really their competitor)

    • stupid_mcgee says:

      I can’t speak for idTech5, as I obviously haven’t seen how they’re licensing the new engine, but id has stated that they do plan to market idTech5 similar to how UE3 is marketed. As it is, you have to build your own apps and even level editor for idTech4. id does not hold hands on this matter, and if you license their older tech, you, essentially, get a pretty blank slate. It also isn’t very well documented. It was typically intended for internal use and licensing to partners who already had an understanding of the tech and its previous iterations.

      With idTech5 (and, again, it remains to be seen how true this is), they are intending for there to be documentation and editors for developers to use to hot-track their title and to make it much more user friendly. They also plan to market idTech5 to as many people as possible. Previous idTech engines were able to be licensed, but the engines were not mass-marketed like UE3 and CryEngine3 are doing today.

      The nice thing about Unity is that it already has a UI and a lot of tools already built into it. If you were to do the same with idTech4, you’d have to write most of the tools yourself. Very much not for the entry-level game-maker.

      As for making idTech5 available similar to CryEngine3, I think that would be great. It really depends, though, on how well documented it is and how good/robust the provided tools are, as well. AFAIK, idTech5 isn’t even available for licensing until 2012.

      -edit- Nevermind. Todd Hollenshead said at 2010 QuakeCon that idTech5 may be licensed internally amongst ZeniMax developers, but that it will not be available for external licensing.

  8. Stuart Walton says:

    I really hope the Dark Mod guys use this to fix all the annoying things they have to work around when modding Doom 3. I look forward to things like being able to run any map without having to copy it into the right directory (although you can do this in-game, it’s an extra step) and AI that doesn’t hog the CPU.

    • Derpentine says:

      Yup, there are many areas that we are looking to improve in regards to performance and resource use – however for the immediate we are focusing on kicking 1.07 out the door! The ingame downloader will also fetch and place everything correctly, saves quite a bit of time and effort.

      As always, help and patches from the community are welcome – get hacking! :)

  9. TODD says:

    Oh good, the Modern Warfare franchise can finally upgrade its engine.

  10. HeavyStorm says:

    I’m sorry that isn’t NEARLY enough comments on this thread. Carmack is my hero. And completely justified.

  11. outoffeelinsobad says:

    Agreed with above. I love interviews with Carmack. Even though I usually understand about half of what he says, everything he says is really interesting. I could listen to him speak for days.