DelphiDoom

From DoomWiki.org

Revision as of 06:00, 4 September 2020 by Gez (talk | contribs) (General features)


DelphiDoom
Developer(s) Jim Valavanis
Latest release 2.0.7.733 (2022-04-14, 23 months ago)
Target Platform Windows
License GNU General Public License v2+

DelphiDoom is a port of the Linux Doom code to the Delphi programming language by Jim Valavanis. It features an advanced software renderer and also supports Chex Quest, Heretic, Hexen, and Strife. DelphiDoom is licensed under the terms of the GNU General Public License.

General features

  • Limit-removing engine.
  • Advanced software renderer.
  • OpenGL renderer.
  • Widescreen support.
  • Frame interpolation exceeding the built-in 35Hz ticrate (both software and OpenGL renderers).
  • Console for setting environment variables and executing commands.
  • Automap rotation and overlay.
  • Textured automap.
  • Custom actor definition via ACTORDEF lumps.
  • Custom MP3 and MIDI music support.
  • Voxel support.
  • DeHackEd and BEX support.
  • A straightforward launcher.
  • Sloped floors and ceilings.
  • Three-dimensional middle floors (currently only one per sector).
  • Advanced PascalScript to customize levels and actors.
  • Support for HI_START & HI_END namespace inside PWADs.

Rendering engine

Software

DelphiDoom has the following major features in its software renderer:

  • External hi-res textures.
  • Advanced 32-bit color mode (default).
  • Texture filtering (optional).
  • Voxels (clipped like sprites). (Video demonstration)
  • Post-processing effect to eliminate perspective distortion (similar to the keystone effect) with mouselook. (Video demonstration)
  • Supports up to 256 logical CPUs in multithreading mode.
  • Optimized column rendering.

Perspective correction

Perspective correction attempts to eliminate the zaxisshift distortion. This feature was first added in version 0.8.308 (September 3, 2007). The module was redesigned in version 1.1.4.574. See also the original post at the Doomworld thread.

True color

DelphiDoom's software renderer has full true color support, including external true color textures, custom colormaps for fake flat effect (Doom branch only), sprite and wall transparency and dynamic lights. It also uses various techniques to emulate all the palette swapping effects of the original engine.

Screenshots of the software renderer using the DHTP texture pack:

Performance

To take advantage of all the software renderer's advanced features, a modern PC with at least 4 logical CPUs is highly recommended.

OpenGL

DelphiDoom also features an OpenGL support, with the following features:

  • MD2 (Quake2) models.
  • Voxels (handled as an optimized polygon mesh).
  • External hi-res textures.
  • Dynamic lightmaps.
  • Simple shadows.

A video demonstrating these OpenGL renderer features can be watched here.

Rendering add-ons

External textures

External textures are supported in both software and OpenGL renderers. They can be used to replace:

  • Walls
  • Flats
  • UI Screens

Software renderer resizes textures with dimensions bigger than 1024x1024 for walls, 512x512 for flats, and the display width and height for UI Screens. OpenGL renderer resizes textures with dimensions bigger than the largest texture the video card can handle.

Supported image formats include:

  • TGA
  • JPG
  • BMP
  • PNG
  • PCX

External textures must be placed inside a PK3/ZIP or PAK (Quake) file and loaded with the -pakfile command line parameter. They can also be loaded at runtime using the combination of 'addpakfile' and 'clearcache' console commands.

Voxels

Following version 1.1.4.580, DelphiDoom supports voxel rendering. They are available in both software and OpenGL renderers. The engine does not use them only as a sprite replacement technique. Instead it supports more that one voxel objects to each mobj state. DelphiDoom's voxel pack is included in the Doom voxel project. Valid Voxel types are the KVX and slab6 VOX file format (256 colors), and DDVOX and DDMESH file formats (true color). The latter can be created with the DDVOXEL tool. DDVOX has a simple text file format and DDMESH has binary format including pre-calculated data to speed-up the OpenGL renderer.

MD2 models

MD2 (Quake) models are supported in OpenGL mode only.

Compatibility

  • Good compatibility with the original game demos (Doom branch only). Some demos may get out of sync.
  • Demo playback compatibility and load/save game compatibility with former releases.
  • Nearly all Boom features (Doom branch only).
  • Also supports the very first official shareware version of Doom (0.99), Heretic wide area beta, shareware Heretic, shareware Hexen and Strife teasers (1.0 & 1.1).

Branches

  • DelphiDoom (primary branch)
  • DelphiHeretic
  • DelphiHexen
  • DelphiStrife

Further developments

  • A sister project aimed for the more mainstream Free Pascal Compiler and Lazarus is also developed by Valavanis, under the moniker FPCDoom.
  • DelphiDoom is utilized as the basis for a engine remake of the DOS game Radix: Beyond the Void, a title featuring a renderer engine similar to Doom's. This engine is called RAD, developed with the intention to bring Radix to modern operating systems, in addition to providing the ability to create custom levels using existing Doom level editors (currently, a Doom Builder plug-in exists to supplement level creation).

External links

Source code genealogy
Based on Name Base for
Based on
Linux Doom
DelphiDoom Active
FPCDoom
RAD