Hacker News new | past | comments | ask | show | jobs | submit login
Doom 3 BFG Edition source code released (github.com/id-software)
172 points by waffle_ss on Nov 26, 2012 | hide | past | favorite | 31 comments



One of my favorite things about these id source releases is getting to read Fabien Sanglard's excellent code review that inevitably follows. Here's the review of the idTech4 Doom 3 code released last November.

http://fabiensanglard.net/doom3/index.php


I think it's really interesting that the implementation of Carmack's Reverse is intentionally left out of the source code release. Is this a lingering effect of the patent bullshit Creative Labs pulled back in the day with the original Doom 3?


According to Carmack, it really wasn't that difficult to program around it, which I'm sure made the decision easier.

https://twitter.com/ID_AA_Carmack/status/136614459887202305

https://twitter.com/ID_AA_Carmack/status/137189212519792640



You might find my previous comment about this topic interesting:

https://news.ycombinator.com/item?id=4088162

Here is the code section that you might find interesting in tr_backend_draw.cpp. The comments start at line 1439:

https://github.com/id-Software/DOOM-3-BFG/blob/master/neo/re...


  static int fuck = 0;
  ...
  I_PrintfE("fuck %d \r", fuck++);
You can feel the pain :-)


Seems that code existed in Doom before this... although the I_PrintfE appears to be new? Part of the "Rage" framework perhaps? Can anyone comment on this?

prboom /prboom-2.5.0/src/v_video.c http://searchco.de/codesearch/view/22440692#975 and line 987

doomlegacy /legacy/trunk/engine/automap/am_map.cpp http://searchco.de/codesearch/view/11303592#1023 and line 1031

chocolate-doom /chocolate-doom-1.6.0/src/am_map.c http://searchco.de/codesearch/view/18457152#1038

The relevant searches http://searchco.de/?q=fuck%2B%2B and http://searchco.de/?q=static+int+fuck


Too bad all the commit history got squashed into one single commit. `git blame` can make it entertaining to see the history of where these types of lines come from :-)


What file is that from?



How is the engine for BFG different from the older Doom3 version?


http://en.wikipedia.org/wiki/Doom_3#Doom_3:_BFG_Edition

The BFG Edition features enhanced graphics, better sound with more horror effects, a checkpoint save system, and support for 3D displays and HMDs.

Also on the Doom wiki:

http://doom.wikia.com/wiki/Doom_3_BFG_Edition


The community fork of Doom Wiki tends to be a little bit better up-to-date on the whole:

http://doomwiki.org/wiki/Doom_3:_BFG_Edition


Not that we don't have enough of them already, but this release comes with a new port of the Doom1/2 engine as well[0]. I don't know either codebase enough to say what's different, but it's now C++ vs. the original's C[1], and appears to be some Xbox and PS3-specific code as well (not that it's useful to mere mortals)

[0] https://github.com/id-Software/DOOM-3-BFG/tree/master/doomcl...

[1] https://github.com/id-Software/DOOM


I wonder what's comming up next as the new game industry standard programming language after C++?

People like, John Carmack have 'personally' invested a lot in C++ (with DX and GL)


But with all the stuff ripped out of DOOM and DOOM2 then my original 3.5" floppies might be worth something one day.

If they still work...


Don't see how this re-release would have much effect on their value, given that the original games themselves have been "preserved" by many countless times over across the Internet, likely since Doom's launch. Not to say the disks are any less of a collector's item.


I was thinking that as the "new" versions make their way into the market the original versions might be harder to come by. But I agree, it's more about the physical disks with labeling than the content. I wish I still had the boxes.


I believe some tech from id Tech 5 was back-ported into it. Wikipedia says it also has support for 3D [head-mounted] displays.


Yep. John Carmack stated that the BFG edition is actually Doom 3 in the Rage "framework". E.g. Rage's network layer and (probably?) all the behind the scenes stuff like input and file management, boilerplate for different GPUs etc.


People named the obvious things, but from doomwiki[0] I noted those:

    > * Flashlight-projected character shadows are disabled.
    > * More light sources in the levels.
The latter may make the game a bit prettier, but the first one was one of the few things that made Doom III stand apart, and might be a letdown.

http://doomwiki.org/wiki/Doom_3:_BFG_Edition#Differences_wit...


As far as I can tell, not much except the addition of stereoscopic 3D and various optimisations.


It appears to contain support for the Oculus Rift VR headset. http://www.oculusvr.com/

John added Rift support to Doom3 BFG and it was the primary demo when the Rift was displayed at E3 and subsequent (kickstarter) tours.


Where is this code that implements the Oculus support?


What's this?

https://github.com/id-Software/DOOM-3-BFG/tree/master/neo/sw...

A whole SWF-parser/player/renderer? Like Scaleform? Seems to have no ActionScript implementation.

Does anybody know more about this? How complete is it and what features of flash does it play?

It's remarkable that ID software created such a clean nice game engine and holds all the IP without integrating other components: The whole physics engine is also in there and had even been open sourced very early as part of the Doom 3 sdk.


So I'm a cheapskate and don't want to bother with the BFG edition. Can I compile this and use the data off the original Doom3 / Resurrection of Evil CDs I have lying in a box somewhere?


Right now: doubt it, but couldn't hurt to try if you've already got the proper environment to compile it anyway. Give it a few weeks and I'm sure someone will "port" it (if nothing else, likely for Doom3 mod compatibility).


By the look of it, no, but I'll have to check the source more later.

You could try watching the price of the BFG edition in the upcoming Steam Winter sale.


Is there a chance someone will port this to a Mac buildable? Or are there too many Win/VS dependencies to make this feasible?


http://fabiensanglard.net/doom3/index.php

This gentlemen got the Doom 3 release to compile for OS X. I'm sure the process is similar.


`brew install doom3`




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: