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

deadalnix deadalnix at gmail.com
Thu Nov 24 05:12:10 PST 2011


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. 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.
- The JVM include a lot of code that will have to be written in D.
- On the other hand, D interface with C (and C++ to a certain point) so 
we don't have to rewritte the whole engine.
- 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.

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.


More information about the Digitalmars-d mailing list