Fallacies of Doom - Lessons learned from porting Doom 3 to Java

By Mahmoud Abdelghany

Elevator Pitch

While Java has grown enormously over the years, the fundamentals have stagnated.

The motivation for this talk and underlying project, was the following question: why is Java, with it’s 20 years of age, and (at least)6 billion running JVM’s not a major player in the video-game development universe?


So everybody knows the Doom games, right? Every new installment brought brand new ideas, and groundbreaking graphics. But more importantly, it brought the source code of the prior installment to the eye of the public.

Naturally people have played and hacked the code to oblivion, as much as they played the games themselves. And I have the honor to be one of those people.

I (naively) endeavored to port the Doom 3 C++ code to our fantabulous Java. In doing so, I hoped to learn, among other things, more about 3D graphics. …what I didn’t expect though, was for djoom3(cool name huh!) to teach me more about Java!?

Aside from the basic game development intro, this talk focuses on the following: - Some areas where Java should learn from it’s nemesis, C++ - Other areas where the student(Java) becomes the master(C++) - And some promises that were made, but never kept


All I require is some kind of projector or big monitor, which I assume will be provided.

This is an opinionated talk, but the content is all technically sound. I guess what would make me the best person to speak about all of this, is the amount of time I spent on the djoom3 project, which is the main theme of the presentation.