eXistence / fhDOOM

Modernized DOOM3/idTech4 engine: ported to modern OpenGL (core profile), enhanced visual effects, improved performance, improved editor, more to come
GNU General Public License v3.0
180 stars 24 forks source link
3d-engine 3d-graphics doom doom3 idtech4 opengl

fhDOOM

About

fhDOOM is one of my little side projects. I am working on this because its fun and a great learning experience. Its interesting to explore the code and to test out how such an old game can be improved by new features and more modern techniques. I have no plans to make a real game or something like that with it. Using Unity, Cry Engine or Unreal Engine might be a better choice for that anyways.

Goals

Similar Projects

There exist other forks of the DOOM3 engine and even id software released a modernized version of DOOM3 and its engine as "DOOM 3 - BFG Edition".

Changes

see also changes.md for complete history of all changes.

Screenshots

Shadow Mapping

alt text alt text

alt text alt text

alt text alt text

alt text alt text

Soft Particles

alt text alt text

Parallax Occlusion Mapping

alt text alt text

Enhanced Light Editor (Qt based)

alt text

All Screenshots were taken with HD textures installed (Wulfen, Monoxead, xio).

Installation

FAQ

Q1. Are Mods supported?

Yes! Mod support is pretty much the same as in vanilla Doom3 1.3.1 (only difference: game dll is named 'fhGame-x86' instead of 'gamex86').

Q2. Is fhDOOM compatible with mods for vanilla Doom3 1.3.1?

It depends. Pure content mods containing only textures, scripts, maps and such things should work just fine (only exception: custom ARB2 shaders won't work). Mods that come with a compiled game dll (gamex86.dll on windows, gamex86.so on linux) won't work. Those game dlls must be recompiled for fhDOOM.

Q3. Can i use SikkMod with fhDOOM?

No, because SikkMod is based on ARB2 shaders (see Q2).

Q4. Can i use HD texture mods (Wulfen, Monoxead, etc.) with fhDOOM?

Yes (see Q2).

Q5. How do i (re)compile a mods game dll for fhDOOM?

Unfortunately that's currently not that easy. You have basically two options:

  1. If you don't care about existing installations of officially released fhDOOM binaries, you could just clone the latest fhDOOM version from github. You apply your changes to the game code and distribute the whole thing (executable and game dlls).
  2. You clone the fhDOOM version from github that matches the latest official binary release. You apply your changes to the game code and distribute only the game dll to the user (the user must have fhDOOM installed). Pretty much like vanilla Doom3 1.3.1.

Both options are far from being good, but since i am working for the most part on the engine itself and not on the game code, i never felt the need to improve this. If you want to make a mod and need to compile your own game dll, let me know. If there is enough interest in better support for this, i will set up and release some kind of SDK to easily compile only the game code.

Q6. Does multiplayer work?

I suppose it does... but i don't know for sure. Feel free to test it out and share your findings :)

cvars

fhDOOM added and changed a couple of cvars. This list of cvars might be interesting:

Notes

Building fhDOOM

Build Status

Dependencies:

Setup: