Doomsday

The Doomsday Engine is an open source port, presently developed by project founder Jaakko Keränen (skyjake). Former developers include Jamie Jones (Yagisan) and Daniel Swanson (DaniJ). The team is collectively known as deng team.

Doomsday is a generic core game engine supporting multiple id Tech 1 games through a plugin architecture. Alongside the core engine, three official game plugins are developed by deng team, for playing Doom, Heretic, and Hexen. The Doom plugin also supports Chex Quest and Hacx as independent IWADs.

An extensible architecture built around plugins is used for audio playback and data resource loading functionality.

Features

 * Cross-platform. Supported platforms include; Windows, Linux and MacOS.
 * 16-player client/server networking via TCP/IP, with in-game multiplayer menu and server browser for joining games (in the client). Cooperative, deathmatch and team deathmatch modes are available.
 * Independent server executable with no GUI dependencies. Shell application for administering local and remote servers.
 * Easy-to-use mouse driven UI for starting, switching between games, mods, save games and multiplayer games within the engine (i.e switch from Doom to Heretic without having to restart the engine) and configuring visual settings in real time.
 * Control panel for configuration, accessed quickly with Shift-Esc.
 * Console for modifying settings and giving commands.
 * Extensive player control binding and input manipulator (smoothing, look spring etc...) configuration.
 * In game demo recording and playback via the console (currently disabled).
 * Automatic updater; it can be set to connect to dengine.net to check and/or download new releases.

Video

 * Hardware-accelerated graphics engine and uncapped framerate.
 * FakeRadio (fake radiosity lighting).
 * Vector lighting system for 3D models, sprites and particles.
 * Dynamic lighting sub-system with halos and lens flares.
 * Object, world and camera movement smoothing.
 * Particle generator effect sub-system.
 * World-surface decoration effects.
 * Coloured lighting and dominant-light source biasing.
 * Object shadowing effects.
 * Smoothing of fake contrast.
 * Camera vignette effect.
 * Game world bloom

Audio

 * 3D positional audio (sound fx) (when used with an audio plugin that supports this feature such as dsOpenAL).
 * EAX's and A3D's environmental sound processing effects (when used with an audio plugin that supports this feature).
 * Support for a wide variety of music files (e.g. MIDI, OGG, MP3 and MOD)

Plugins

 * Dehreader - DeHackEd patch reader.
 * FMod - FMod Ex audio; plays 3D positional sound fx, music and DLS sound font support.
 * FluidSynth - (Mac OS X/Linux) MIDI music synthesizer with SF2 sound font support.
 * DSound - DirectSound3D 8 audio; plays 3D positional sound fx (with optional EAX effects).
 * OpenAL - OpenAL audio; plays 3D positional sound fx (with optional EAX effects).
 * WADMapconverter - Converter/interpreter for WAD format maps.
 * WinMM - Windows Multimedia audio; MIDI playback and interface.

Modding

 * Flexible resource system using ZIP, WAD and virtual directories.
 * Plain-text definition files DED for game data and engine resources.
 * High-resolution textures (PNG, TGA, PCX) and detail textures.
 * 3D models with skeletal animation in many formats, including FBX, MD5, MD2 and DMD formats and many others (through use of a customized version of the Assimp library.
 * Skyboxes and sky models.
 * Partial, in-progress Boom feature support, currently limited to the ANIMATED and SWITCHES lumps, the NOTDM/NOTCOOP thing flags, and a few linedef types and flags.

License
Doomsday and all official plugins are licensed under the terms of the GNU General Public License (Version 2).

History
On November 1st, 1999, Skyjake released the first version of his Hexen source port: jHexen 0.97.1. At this point jHexen is already an OpenGL hardware accelerated port with numerous visual enhancements.

On December 18, 1999, Skyjake publicly announced both Doomsday Engine and intention to create ports for Doom and Heretic.

Doomsday Engine, inspired by , was envisioned as an executable which would contain all the generic Doom engine code, with code specific to each Doom engine game being contained in plugin files.

The first releases of jHeretic and jDoom were made on March 20, 2000, and May 31, 2000, respectively.

Skyjake continued to make separate releases of all three "jPorts," which also contained early versions of Doomsday, with announced version numbers being based off of the game plugin included, until Doomsday officially left beta on March 10, 2002, with version 1.5.4. At this point individual releases of the jPorts ceased.

The first version of the Doomsday website (the now defunct DoomsdayHQ.com) opened on June 8, 2002. The three separate jPort websites were closed down at this point.

The Doomsday engine and jDoom were re-licensed to the (Version 2) on March 3, 2003. jHeretic and jHexen remained under the terms of Raven Software's non-profit End User License Agreement.

On March 15, 2003, Doomsday 1.7.8 was released. Graham Jackson forked his Boomsday project from this version. Boomsday later became Risen3D. Daniel Swanson (DaniJ) joined the Doomsday effort on August 14, 2003.

Since Doomsday 1.8.5, the Doomsday engine has expanded onto the Linux and Mac platforms.

Development continued on the 1.x series of Doomsday until 1.8.6 in January 2005, when deng team began work on the next major version of the project; Doomsday 2. Version two of Doomsday had hitherto existed under the codename Hawthorn.

After Raven Software's source code re-release, the deng team re-licensed their changes to the jHeretic and jHexen game plugins to the GNU General Public License on September 12, 2008.

In June 2009, the Doomsday website moved to dengine.net.

On February 29, 2012, version 1.9.7 was released as a major milestone on the way to the completion of Doomsday 2. As well as being the first 'non-beta' release for non-Windows platforms, support for Hacx and Chex Quest as IWADs was also added to the Doom plugin.

Doomsday 1.9.10, released on December 21, 2012, saw the retiring of the j-prefixed ports when they were replaced with logic plugins.

Doomsday 1.10, released on April 3, 2013, features the separation of server functionality into an independent executable, with no GUI dependencies. This release also saw the introduction of the Shell app, for administering both local and remote servers.

Version 1.11 introduced a new UI, that allowed users to switch between different game modes without having to close the engine. This UI would be built upon in future releases to include save games and multiplayer. In 1.12 the Control panel, long used for configuration of Doomsday's visual effects, was replaced with the Renderer Appearance sidebar which featured visual profiles allowing users to create and switch between multiple visual setups instantly. 1.14 added an alert system to the UI to inform users of engine, resource and map errors and also added bloom to the game world.

Version 1.15 added pixel density control and in engine Iwad locating options to the UI.

In July 2016, Skyjake announced a change in version numbering: that no longer would '2.0' be the first release of Doomsday 2. Instead the version numbering would be changed to reflect major milestones. Thus 2.0 became the release in which the in-engine UI would be considered capable enough to replace the Snowberry launcher. '2.1' would be focused on multiplayer, and so forth.

Version 2.0 was released on April 1, 2017, and dropped the Snowberry launcher. It also included the first version of an all-new model renderer, which supported many modern model formats and features, from the MD5 format to skeletal animation and shaders, based on a customized version of the Assimp library. The old model renderer remained in place to handle loading of MD2 and DMD models.