Skip to content
A portable, enhanced source port of Doom, Heretic and Hexen.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
attic Moved obsolete website files to the attic Dec 13, 2018
distrib Builder|Homepage|Linux: Ubuntu build server upgraded to Bionic Aug 30, 2018
doomsday Heretic|Intermission: Don't show "Untitled" as next map Apr 17, 2019
packs
web Moved obsolete website files to the attic Dec 13, 2018
web2 Homepage: Updated link to stable Linux release Dec 13, 2018
webapi/1
weblib Homepage: Old forums URL Nov 8, 2018
.gitignore State actions using Doomsday Script Jan 20, 2019
.gitmodules Git: Added Open Asset Import Library as a Git submodule Apr 28, 2014
.travis.yml
README.md
appveyor.yml Builder|CI: Windows CI environment update Dec 6, 2018

README.md

Doomsday Engine

This is the source code for Doomsday Engine: a portable, enhanced source port of id Software's Doom I/II and Raven Software's Heretic and Hexen. The sources are under the GNU General Public license (see doomsday/gpl-3.0.txt), with the exception of the Doomsday 2 libraries that are under the GNU Lesser General Public License (see doomsday/lgpl-3.0.txt).

For compilation instructions and other details, see the documentation wiki: http://wiki.dengine.net/

Linux 64-bit Linux Build Status Windows 32-bit Windows Build Status

Libraries

libcore is the core of Doomsday 2. It is a C++ class framework containing functionality such as the file system, plugin loading, Doomsday Script, network communications, and generic data structures. Almost everything relies or will rely on this core library.

liblegacy is a collection of C language routines extracted from the old Doomsday 1 code base. Its purpose is to (eventually) act as a C wrapper for libcore. (Game plugins are mostly in C.)

libgui builds on libcore to add low-level GUI capabilities such as OpenGL graphics, fonts, images, and input devices.

libappfw contains the Doomsday UI framework: widgets, generic dialogs, abstract data models. libappfw is built on libgui and libcore.

libshell has functionality related to connecting to and controlling Doomsday servers remotely.

libdoomsday is an application-level library that contains shared functionality for the client, server, and plugins.

External Dependencies

CMake

Doomsday is compiled using CMake. Version 3.1 or later is required.

Qt

Using the latest version of Qt 5 is recommended. The minimum required version is Qt 5.5 (complete build) or Qt 5.0 (client disabled). See Supported platforms in the wiki for details about which version is being used on which platform.

Open Asset Import Library

libgui requires the Open Asset Import Library for reading 3D model and animation files. It is compiled automatically as part of the build and is expected to be present as a Git submodule in doomsday/external/assimp. Source tarballs come with the Assimp sources included.

SDL 2

SDL 2 is needed for game controller input (e.g., joysticks and gamepads). Additionally, SDL2_mixer can be used for audio output (not required).

FMOD Studio

The optional FMOD audio plugin requires the FMOD Studio Low-Level Programmer API.

Branches

The following branches are currently active in the repository.

  • master: Main code base. This is where releases are made from on a biweekly basis. Bug fixing is done in this branch, while larger development efforts occur in separate work branches.
  • stable: Latest stable release. Patch releases can be made from this branch when necessary.
  • stable-x.y: Stable release x.y.
  • legacy: Old stable code base. Currently at the 1.8.6 release.
You can’t perform that action at this time.