Doom3 (id tech 4) port/binding in D ?

Regan Heath regan at netmail.co.nz
Thu Nov 24 09:28:54 PST 2011


On Thu, 24 Nov 2011 13:12:10 -0000, deadalnix <deadalnix at gmail.com> wrote:

> Le 24/11/2011 13:18, Regan Heath a écrit :
>> On Wed, 23 Nov 2011 16:16:40 -0000, deadalnix <deadalnix at gmail.com>  
>> wrote:
>>> I want to suggest a project to the community. Doom3 source code has
>>> just been released, and I think we may want to do a port in D. Here
>>> are the reasons :
>>> 1/ I think D is suitable and pertinent for video games.
>>> 2/ This would make a solid code base to promote D.
>>> 3/ Id software is very popular, and porting one of their engine is
>>> free advertisement for D.
>>> 4/ The build system for doom engine is scons, and it support D too.
>>> 5/ The code base is an high quality one. (for exemple, the _t suffix
>>> is used to differenciate what we call struct and classes in D - and
>>> that has no difference in C++ except in the usage you make of it).
>>> 6/ It's an interesting project.
>>> 7/ Many people in the D community are interested in video game  
>>> projects.
>>> 8/ Doom's story take place on mars, phobos and deimos (well and on
>>> earth, but who care ?).
>>>
>>> In addition, this is a good occasion to produce some code for deimos
>>> and can enlight us on D future evolutions backed with solid fact. On
>>> my knowledge, such a big project (big in size, but also in technicity)
>>> don't exist in D yet.
>>
>> I had an idea along these lines the other day. Does Doom3 support the
>> addition of community content in the for of mods etc and, assuming we
>> had a D port of Doom3, would the mods be written in D? My thought/idea
>> was that D needed a game, where the modding api was in D, so that people
>> wanting to create mods or other content for the game would need to write
>> them in D.
>>
>> I was actually thinking about Minecraft and how in just a short space of
>> time it has become immensely popular and the amount of community added
>> content is amazing. The source for Minecraft (written primarily in Java)
>> was going to be released, not sure of the status of this today I think
>> it got sidelined as they geared up for the official release. This is a
>> project which would really benefit from being (re-)written in D (or
>> C/C++ for that matter) because it does suffer from performance issues,
>> and crashes when the JVM runs out of memory (a common problem with Java
>> or perhaps garbage collection as a whole?). If we could produce a D
>> version of Minecraft, where community content was written in D, we'd
>> automatically inherit a large user base interested in using D.
>>
>> It doesn't /have/ to be Minecraft, but what I thought was that D needs
>> is a popular game, where community content requires the use of D... it
>> seems an ideal way to entice new programmers in, and once they're in
>> they'll be hooked :)
>>
>> Regan
>>
>
> That was basically the idea.

Obviously, I think it's a great idea.  Sadly, I have no time to offer  
towards it myself :(

> However, I think Doom's is more suitable than minecraft for severals  
> reasons :
> - D has a far less effiscient garbage collector than Java. So memory  
> management will have to be rewritten in the process, leading sometime to  
> difficulties has the original source code isn't concieved in that  
> direction.

I think, were we to pursue this and produce code that required a more  
efficient garbage collector, it would cause one to be written.  The reason  
it's not been the focus thus far is because there are so many other items  
on the agenda, and what we have works well enough.  But, if we were to  
create demand for a better one, we could cause it to move up the agenda :p

Does the Doom3 code use garbage collection?  Because trying to use D  
without it, today, is difficult..

> - The JVM include a lot of code that will have to be written in D.

Perhaps, I'm not super familiar with what is and isn't handled by the Java  
JVM.  Anything that doesn't yet exist in D, probably should, and this  
would be a good way to make it happen.

> - On the other hand, D interface with C (and C++ to a certain point) so  
> we don't have to rewritte the whole engine.

I was thinking the same thing.

> - An angine like doom's support the idea that D is a performant  
> language, that can be used for performance critical code. This is an  
> advertisement for D.

As is beating the Java performance for minecraft, but to a lesser degree.   
Matching the C/C++ Doom3 would definitely be more impressive, especially  
if we can then say we reduced the LOC too :p

> If peoples think that Minecraft is a more suitable engine to port/bind,  
> I'm ready to reconsider the idea and join the effort instead of  
> splitting us in several directions.

It was just an idea, I can't contribute so you guys can pick whichever  
interests you more.

The import aspect of this idea, for me, was actually the language that  
community contributions for the game (whatever it is) would be written  
in.  If they could be written in D, then there would be another incentive  
for people to give D a go.  I noticed with games like Dragon Age, where  
mods are written in an custom scripting language developed by Bioware,  
that people in the modding community there dive right into learning how to  
use it (I suspect a lot of these people are developers in thier day jobs)  
and then start helping each other use it, if D could be that language, for  
a popular game, D would gain a number of users very quickly.

Regan

-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/


More information about the Digitalmars-d mailing list