

Build Doom3 on MacOSX with XCode4 - brodd
http://fabiensanglard.net/doom3_macosx/index.php

======
albertzeyer
Why not just get these changes upstream?

Also, instead of forking it on GitHub, he just reuploaded the whole thing
again (<https://github.com/fabiensanglard/Doom3-for-MacOSX->) so that others
cannot easily merge these changes. And neither in his repo nor in his post,
there is a reference to the original repo
(<https://github.com/TTimo/doom3.gpl>).

Also, on the original repo, there were already a few fixes for Xcode4 and
there is also a pull request with further fixes
(<https://github.com/TTimo/doom3.gpl/pull/13>). I haven't checked it myself
but it might actually work already.

Btw., further development is probably going on here: <http://www.iodoom3.org/>
(<http://news.ycombinator.com/item?id=3277150>)
(<https://github.com/TimeDoctor/iodoom3>)

~~~
lloeki
> _Also, instead of forking it on GitHub, he just reuploaded the whole thing
> again_

He responded in his comments:

> _If not, the fork will remain buried as a Pull Request with no visibility at
> all._

Which is loads of bullshit. By design git is decentralized so _upstream_ is a
mere convention, where usually the closest to _upstream_ is either the
original author's repository or the most active repository.

~~~
zbowling
I was actually writing a blog post on this issue as we speak. GitHub's
approach is broken to how they handle forks. It's a long post but I updated it
to mention your comment here.

<http://zbowling.github.com/blog/2011/11/25/github/>

~~~
lloeki
A fork is a mere 'git clone'. The brilliance and simplicity of SHA1s makes
linking repos as trivial as a _git remote add_. I venture it would be quite
costly to actively look at every commit of a new repo to match it with every
other commit in every other github repo (unless they start maintaining a
global index of all SHA1s->repos). So for now Github merely records that one
cloned a repo, and I seriously won't blame them for that.

If the guy did things properly, although inconvenient we could just do that to
merge back, but apparently what he did was rewrite or recreate history in some
way, so that SHA1s changed so it's not even possible to _add remote_ [0]. I
guess that even with no common ancestor SHA1s one could still use _rebase
--onto_ to replay some part of his history.

Either way I can't tell because the repo is 404 now and I did not have a
chance to browse it, let alone _clone_ it.

[0] <http://news.ycombinator.com/item?id=3277181>

PS: I like some of your ideas, like hiding forks that can be fast-forwarded
(i.e they have no changes i.e their HEADs are members of the parent repo), and
detecting that one has pushed a repo that is obviously a clone of another,
although I'd rather have it be manual (like a message on the github's console
saying "we detected that this repo could be a clone of that repo, do you want
to mark it as a fork?")

------
endlessvoid94
As someone who isn't familiar with game development, could someone explain
what exactly is and isn't free? What happens if I try to run the game without
the Doom3 media?

How might one go about making their own media for the game? Does it even make
sense to do so? How tightly coupled is the released source code to the media?

~~~
wladimir
_could someone explain what exactly is and isn't free?_

The source to the game executable (rendering, script interpreter, physics,
pathfinding) is free and released under GPL. The assets, however, such as
scripts, textures, shaders are still under the original commercial license.

It is certainly possible to make your own media for the game; it will be a lot
of work, but arguably less work than writing your own game engine AND making
the assets. It makes sense because the Doom3 engine is very flexible and you
can do a lot with it, some of which has already been done in the form of mods
(as the SDK has been available for a long time).

~~~
endlessvoid94
Thanks.

So if I wanted, theoretically, to modify the mechanics of the game, how would
I do that with "assets"? For example, if I wanted to add "magic" or something
(like mana from diablo 2), and perhaps change the way "score" is calculated,
is that part of an asset as well?

Do engines provide a DSL for making games? I guess that's my question. It
seems like media assets only allow you to reskin Doom instead of making a new
kind of game.

~~~
lt
In iD games, there's a clean division between game-specific logic (which is
usually in a separate DLL, haven't looked too closely at Doom3 yet), and
framework/engine code.

On Quake 2, you could replace the DLL to switch between the regular game and
capture the flag. An expansion with new mecanics could, theoretically, be done
with only DLL code and new assets. You'd need to change the engine code only
to add new kind of effects that it didn't support yet.

So yes, if you don't change any code, you'll only reskin Doom by creating new
assets (it's usually called Total Conversion). If you want to add new game
mechanics, you have to write some code.

------
AndreyKarpov
PVS-Studio: analyzing Doom 3 code: <http://www.viva64.com/en/b/0120/>

------
lloeki
Does the Doom3 source code includes RoE? There's no Mac port of RoE so now it
could be possible to port it.

~~~
prg318
The idtech4 source code release does not include any game data whatsoever
(only the game engine source code), so the short answer to your question is
"no".

~~~
barrettcolin
The slightly longer and more correct answer is the source release contains the
game engine source and the Doom 3 and RoE game DLL source. The Doom 3/RoE game
data is still required.

------
peterb
"brew install doom3" would be sweet.

~~~
aw3c2
No idea what brew is but be aware that the game media is not free.

~~~
nathos
<http://mxcl.github.com/homebrew/>

------
kxs
Sorry to hijack, but has anyone been able to do similar for wolfenstein: enemy
territory (on OS X Lion)?

------
lanstein
My main issue is that I don't see why he's using a Das Keyboard with the
letters on the keys. Doesn't that defeat the point?

~~~
dfc
They sell one with letters on the keys. I think its called the professional
model. I always thought the point of das keyboards was the tactile button
presses...

~~~
lanstein
I suppose. I always assumed the point was to be obnoxious - I know that's why
my brother bought one.

------
AlanWahaha
cool job！

