10 ms·
Carmack: Doom 3's engine ready for open-sourcing, awaiting 'OK' from legal
- albertzeyer 15y agoSo, what platform are we gonna port this to? :)
- wgx 15y agoJavaScript please!
- dmix 15y agoPlatform... not language.
- wgx 15y agoPlatform: the modern web browser.
- kingkilr 15y agoEmscripten... oh wow if emscripten could handle this that could be an amazing tech demo for browsers.
- derleth 15y agoThen it can join MESS and MAME: http://ascii.textfiles.com/archives/3375 http://ascii.textfiles.com/archives/3375
- nextparadigms 15y agoWebGL?
- Cushman 15y agoAccidentally downvoted you -- fat iPad fingers, sorry! I'm not opposed to the idea, though it'd probably be a port to OpenGL ES (iPhone?) before WebGL.
- jhamburger 15y agonullified
- djcapelis 15y agoWebGL is pretty much OpenGL ES as far as I know...
- Cushman 15y agoYeah, that's what I'm saying. OpenGL ES + C (iPhone, Android, WP7?) is a likely earlier step than OpenGL ES + JavaScript (WebGL). Do you disagree?
- daeken 15y agoOpenGL ES + C won't fly on WP7. There's no OpenGL ES support (XNA is the exposed 3d API) and you can't write C as you're limited to the managed-only subset of .NET.
- albertzeyer 15y agoYou could use LLVM to compile to .Net. But not sure how easy it is to wrap the OpenGL calls.
- maaku 15y agoNot even worth thinking about... DX and OGL are mutually unintelligible :(
- daeken 15y agoActually, that's not true. WebGL on Windows is implemented using D3D (ANGLE converts OGL ES calls to D3D9) in most cases, and WINE has done D3D on top of OGL for years. They're very different, but translating between the two really isn't as big a deal as you'd think. (Just keep in mind that XNA isn't D3D -- it may backend to it, but it's a very different API.)
- tome 15y agoThis is amazing. How come ID can consistently release top quality engines as open source and other games companies cannot?
- _delirium 15y agoMost companies probably can, they just don't care enough to do so, seeing it as money spent on a last-gen engine that results in no new revenue streams. I think id does it mostly because Carmack personally pushes for it. However it arguably makes some sense for them, relative to other game companies, because they've been particularly identified with the "genius hacks to make stuff work" aura, and every source release produces a new wave of discoveries/press about crazy things id did in the guts of one of their engines, which solidifies that reputation. Plus it's probably good for Carmack getting historical credit to put the techniques out in the open once they're no longer most-recent-gen.
- asymmetric 15y ago> every source release produces a new wave of discoveries/press about crazy things id did in the guts of one of their engines wow, that sounds interesting! any links?
- getsat 15y agohttp://betterexplained.com/articles/understanding-quakes-fast-inverse-square-root/ http://betterexplained.com/articles/understanding-quakes-fas...
- reverend_gonzo 15y agoHere's an example: Carmack's Square Root implementation, which runs four times faster than the assembly language instruction. http://www.beyond3d.com/content/articles/8/ http://www.beyond3d.com/content/articles/8/ http://www.codemaestro.com/reviews/9 http://www.codemaestro.com/reviews/9
- daeken 15y ago
- johnyzee 15y agoI love how Carmack and Id since its inception has not only defined the cutting edge of game technology, but also repeatedly utterly disrupted industry business models (pioneering shareware distribution, the 'free demo' model, engine licensing), all the while making an absolute killing doing so. Most inspirational hackers out there, imho.
- sammysamsam 15y agoHe didn't pioneer shareware distribution or the free demo model. This is a good write-up on the history of shareware: http://www.loonygames.com/content/1.24/feat/ http://www.loonygames.com/content/1.24/feat/ (Has this been posted to HN before? Good stuff in there.)
- deleted 15y ago[deleted]
- jebblue 15y agoWhen I think of shareware I think of id Software, Apogee, McAfee and PKZip. It might not be official but to me that is as close to pioneering as it gets.
- Fliko 15y agoCan you elaborate on why you think of Apogee? When I think of Apogee I think "Gee, I wish my Apogee product worked on Windows"
- georgemcbay 15y agoDifferent Apogee. Presumably you are thinking of Apogee Electronics, he is talking about Apogee Games, which more or less* became 3D Realms (of Duke Nukem infamy), and who back in the day published a lot of the classic shareware games from other developers as well, including id's early stuff like Commander Keen and Wolf 3D. * "more or less" because the business structure is more complicated than that and there was still an Apogee Software alongside 3D Realms, but for all practical purposes, what was Apogee Games became 3D Realms and then died due to the Duke Nukem Forever project.
- pferde 15y agoCan't wait to see the awesome things fans will do with the engine - assuming it even gets through ID's legal dept.
- exDM69 15y agoMeanwhile you can go take a look at all the nice things that have been done with the Quake engines. Nexuiz, Alien Arena and many other open source games are based on the Quake engine. It's fairly certain that id's legals will approve the release as they have done with all their previous game engines. The only problem might be if D3 uses some 3rd party libraries.
- bri3d 15y agoI believe one of the major issues will be Doom 3's use of the "zfail" algorithm, which Creative claim a patent on. Generally, Creative license this patent to game developers in exchange for the game supporting OpenAL (a net win for Creative as it means their sound cards can make the game run faster and more people will buy them), but I'm not sure what the terms on a source release would be. Take a look at [1] for more info. [1]: http://www.doomworld.com/vb/doomworld-news/45868-doom-3-code-may-contain-patented-algorithm/ http://www.doomworld.com/vb/doomworld-news/45868-doom-3-code...
- maleadt 15y agoCarmack has said somewhere (I can't retrieve the source right now) that an alternative, slower method will be used in the GPL'd codebase, effectively working around Creative's patent claims.
- exDM69 15y agoOh this is just silly. Thankfully the patented algorithm is ridiculously simple, so someone can write an open source patch to use the better stencil algorithm. No doubt whatever derivatives will spring from the D3 source will use the single pass method. While being at it, it shouldn't be too hard to use geometry shaders for the shadow volume extraction in the D3 engine. Hmm, maybe I should do it :)
- xedarius 15y agoI for one am looking forward to reading through the unified lighting model code.
- exDM69 15y agoI wanna see how they did their shadow volumes. As far as I know, they did it without geometry shaders, which would mean that they had to do the shadow volume extrusion on the CPU. Or maybe there's some cleverness involved.
- joakleaf 15y agoThey probably used the CPU -- I remember reading somewhere that Carmack also wanted to implement a beam-tree (3D BSP) for faster culling of shadow surfaces, but I am not sure. I did some experiments with Shadows myself 10 years ago, on that era of CPUs and GPUs and the bottleneck for me was drawing the volumes in the stencil buffer.
- skatenerd 15y agoI'm pretty excited to play The Dark Mod for free (http://www.thedarkmod.com/ http://www.thedarkmod.com/)
- exDM69 15y ago(If you don't know, the Dark Mod is a Doom3 total conversion inspired by the Thief series, one of my all-time favorite games). Me too! I just heard about the dark mod a while back and tried to get it working. I didn't want to go buy Doom3, because I don't like the game and I couldn't be sure whether or not TDM would work. So I tried with a pirated version and it didn't, so I'm stuck waiting for the open source release of D3 engine (and the subsequent "porting" of TDM). (For some reason, PC games for me have a terrible track record of not working. I often try a pirated version of the game and if it works and I like it, I might buy it. If the pirated version doesn't work, I won't bother because experience tells me the legal one isn't probably better and I hate begging for refunds from Steam support).
- pmh 15y agoIt's unlikely that you'll be able to play TDM without a copy of Doom 3 for the foreseeable future. TDM reuses a number of Doom 3 assets and those are not included with the open source release of the engine.
- nanexcool 15y agoYou can buy Doom 3 on Steam for 20 bucks. Or if you wait a few weeks there's usually Holiday Sales on Steam, you'll probably be able to buy it for 5 or 10 bucks. http://store.steampowered.com/app/9050/ http://store.steampowered.com/app/9050/
- albertzeyer 15y agoI think this is also the first C++ version of their engine, isn't it? And by that the first C++ code released by Id. I wonder how much C++ there is involved in the code.
- justinvh 15y agoJust look at the Doom 3 SDK. It is C++ -- they use their own sort-of inheritance / type-check implementation as well.
- i_c_b 15y agoI worked on Quake4 as a programmer for a bit over a year, though little of my work ended up in the final game. The Doom3 engine is mostly C++. If I recall correctly, the renderer still looked more like a blend of C with some C++ slowly drifting in (which makes sense, given how good of a C programmer Carmack is), but the rest of the game code is very heavily C++, for some definition of C++, along with a scripting layer. Having worked extensively with the Quake 2 engine previously, I really didn't like the Doom 3 engine, myself. It was radically less... pragmatic. Earlier id engines, to me, were masterpieces of concision. They weren't amazing feats of black box abstraction by any measure, and they implicitly assumed you needed a lot of domain knowledge to understand what they were doing, but they did exactly what they needed to do with a minimum of fuss. Features were included because they were used, generally with the smallest and simplest code and tool footprint possible. Not so with Doom 3. Huge amount of code appears to have been written because someone prolific thought it would be lots of fun to write it, many features end up going unused or are in the way, and ultimately (because it's more typically software engineered in style), every feature requires about 30 times as much code to be written properly and has several extra unused layers of abstractions crufting things up. The game code (in C++) in particular bears an unfortunate resemblance to Windows MFC-style C++, with a giant 12 layer deep inheritance graph with everything inheriting from a few enormous base objects. All of that to my eyes, anyway. But then, I really cut my teeth on Quake 1 and 2, and found that their concision and brevity really helped them stay out of the way when adding new, innovative features. The funny thing about the code for Doom 3 is that, looking through it all, you'd get the impression that Doom 3 was a radically more complicated game that what you ultimately experience when you play the game. The best way I could put it is this: Quake 1 and 2 and 3 were well made games that ended up being enormously fruitful for white box reuse. You couldn't do much with them without understanding fair bits of their internals, but they didn't actively resist being understood. Doom3 was built to be used in a more black box fashion (like the Unreal Engine), with all that entails from an architecture perspective. I'm sure others might disagree with me from a code ideology perspective, but it is hard to ignore how fruitful the Quake engines were for licensing, and how much Doom 3 sank like a stone. The code bases make really fascinating studies in contrast about the consequences of different software engineering values, at the very least. TL; DR: Quake 1 - 3 remind me of linux code, Doom 3 reminds me of MFC.
- jebblue 15y agoThis is great news! That engine is I think the same one that powers the most excellent ETQW and the not so bad Quake 4. Those run on Linux and that is awesome.
- dantecesa 15y agowoah hello HN!
- jmcnevin 15y agoI guess this will get _someone_ using id tech 4... doesn't look like it ever got much love from a licensing standpoint. http://en.wikipedia.org/wiki/Id_Tech_4#Games_using_id_Tech_4 http://en.wikipedia.org/wiki/Id_Tech_4#Games_using_id_Tech_4
- bsiemon 15y agoIs it odd that it is a picture of a tweet instead of a clickable thing?
- dangoldin 15y agoIf anyone's interested in reading a book about the history of id Software, Carmack, and Romero I recommend Masters of Doom (http://www.amazon.com/Masters-Doom-Created-Transformed-Culture/dp/0812972155/ http://www.amazon.com/Masters-Doom-Created-Transformed-Cultu...). I finished it last week and it was a great read.