EDGE

EDGE (Enhanced Doom Gaming Engine) is a collaborative Open Source project based upon the Doom source code. EDGE is derived from an earlier project called DOSDoom, and started development in 1999 immediately after DOSDoom 0.65 was released. EDGE is sometimes referred to as 3DGE, or hyper3DGE due to the long-standing development of the 3DGE fork, which was initially released on April 11, 2011; it was originally created to power the Hypertension TC, and absorbed back into EDGE seven years later. The first official EDGE version was released on June 20, 2000. The latest stable version is 2.0.4, released on December 13, 2016. The team releases *DRDT semi-regular development builds via DRD Team.

EDGE includes ports to many popular operating systems, including x86/x64 Windows, Linux, BeOS, Raspberry PI, Sega Dreamcast, and Mac OSX. The project is hardware-accelerated only, and also implements support for PowerVR2 CLX2 (through KallistiOS) for the Dreamcast platform. Previous versions of EDGE incorporated both software-rendered and hardware-accelerated versions, though the former was dropped with the release of version 1.29.

The most attractive feature of EDGE is its DDF system, which originated from DOSDoom. DDF describes all game behavior inside text files external to the executable file. As a result, it is popular among modders who use the extensibility to add many new weapons and features with many fewer of the limits present in other source ports. With DDF, for example, it is possible to create monsters which can possess multiple missile and melee attacks, or create custom pain and death states for monsters when hit by specific weapons or projectiles. Combined together with RTS and the more modular, modern language COAL, EDGE can rival what other popular ports are capable of through their respective scripting language implementations.

Dream3DGE was a Sega Dreamcast-only port of EDGE 1.29, and has high compatibility with pre-1.31 mods, as it cannot currently run anything created with EDGE 1.31 or above. It must be built with KallistOS. It contains most, if not all, functionality from the parent port. This branch (and EDGE 1.29, on which it was based) was abandoned officially and rewritten and integrated back into 3DGE with version 2.0. The Dreamcast code utilizes KallistiGL instead of OpenGL for important rendering functions concerning the SH-4 CPU.

Early History
DOSDoom began development in 1997, initially by Chi Hoang and coined the term source-port. Andy Baker (darkknight) was a frequent collaborator, and soon amassed a team of developers known as the. The entirety of the DOSDoom team began developing pioneering systems that other ports did not have at the time, including DDF and RTS scripting languages - the first such human-readable systems for DOOM. It is worth noting that the scripting systems were wholly different from DeHacked at the time because they did not need to modify the executable directly, and were split into several different files that could control much more at a granular level than DeHacked ever could. The consisted of Hoang, Baker, Erik Sandberg, Kester Maddock, Martin Howe, John Cole and David Leatherdale.

Into 1998, the community was ripe with the emergence of other source-ports, including ZDoom, Doom Legacy, Boom, as well as the first OpenGL accelerated engine, glDoom. glDoom especially made an impact on the team into 1999 as OpenGL was seen as a major advancement at the time - this would be highly influential later in development. DOSDoom continued to be a major powerhouse for modders well into development of EDGE.

In mid 1998, TeamTNT discussed with the about merging their project, OGRE, directly into DOSDoom. The collaboration was announced in late 1998 and generated much interest as TeamTNT previously developed another ground-breaking port named BOOM; discussions were even joined by the inclusion of John Carmack. However, difficulties ensued for all parties and the project was abandoned. OGRE was quite possibly the progenitor of EDGE as several of the ideas both teams wanted to do was further realized with the development of EDGE. The failed merger didn't affect DOSDoom's ultimate standing and the port continued to be popular; though, possibly as a result of the planned/failed merger of DOSDoom and OGRE, Hoang left the DOSDoom Team and the DOOM community after v0.63 was released, followed by other DOSDoom members.

History
In early 1999, several more source-ports were released, all offering their own features. 3D floors were pioneered with DOSDoom which generated much interest, but the DOSDoom Team began rifting as some members left the community altogether, or joined different projects. Andrew Baker and his team devised that a re-haul of DOSDoom was inevitable; the primary motivation being that the port was no longer limited to the DOS operating system. It was also around this time that Andrew Apted had joined the team; it was decided that the DOSDoom name would change to better reflect its status as the most advanced 3D source-port of its time. * was seen as a possible name before the team ultimately settled on EDGE; the port was in development before DOSDoom saw its final public release.

DOSDoom v0.653 was released in April 10, 1999, which would be its final version. The surviving members of the DOSDoom Team [Baker, Erik Sandberg, and David Leatherdale], with Andrew Apted, immediately formed the EDGE team from the existing code-base.

EDGE was officially released on June 20, 2000 after more than a year and a half being in secret development; it was seen as a milestone as the DDF and RTS systems were more fully realized, as well as becoming an early adopter of OpenGL rendering. At the time, EDGE was the most advanced port as several other emergent technologies were realized in tandem, including glBSP, the first true 3D node-builder for DOOM.

The development of Marc A. Pullen's QDoom was seen as a major motivating factor for the EDGE team in its early years; its release was very popular and helped elevate EDGE's status as a true modder-centric engine. Cory Whittle was also a frequent developer of EDGE modifications that also kept the port healthy.

EDGE development continued into the next decade; while the early years were notable for EDGE being the supreme choice for modders and OpenGL enthusiasts, the team began to experience strain in the mid 2000's. As most members of the DOSDoom team had left by 2004, development was primarily being shouldered by Andrew Baker and Andrew Apted. Later, with the major rewrites of the engine between 1.27 and 1.29, development was shifted primarily between the last two active developers; because of the burden of a largely two-man team, the engine was perceived as being somewhat unstable. With the release of 1.31, EDGE's standing improved and modders began returning to the engine, though ZDoom was tearing much of the share away. Since the engine had once again experienced large rendering and game-play rewrites between 1.29 and 1.31, the remainder of development was primarily headed by Andrew Apted.

Sometime in 2010, Andrew Baker had fully retired from the team, and Andrew Apted was growing more interested in other projects. He was beginning to make plans to fix up any outstanding issues with EDGE and make the final release. Perhaps as a result of ZDoom's popularity, Andrew Apted could not keep up with all of the feature requests, as he had invested much work and time into the 1.3x branch of EDGE. He began hinting at his desire to shift to other projects, notably Eureka and OBLIGE, which were later released to much acclaim.

Into 2011, the community was well aware of his plans to retire from development with the release of 1.35. At the time, a major TC named Hypertension was perhaps the biggest project to be developed on the engine recently. The team of that TC [Isotope SoftWorks] foresaw the closing, and development of a fork named 3DGE began to continue development as the modding team still required features that were only possible if they did it themselves.

The EDGE 1.x team consisted of Andrew Apted and Andy Baker (darkknight) as the primary developers, and Marc A. Pullen (Fanatic) and Luke Brennan (Lobo) as distributors/promoters. Darren Salt was also a frequent developer and contributed a lot of code and bugfixes.

Later History and Current Status
On April 9, 2011, Andrew Apted announced his retirement from EDGE development, leaving EDGE without a maintainer for over seven years. The last version of EDGE 1.x (1.35), was released on the same day. Two days later, the first version of 3DGE was released as a hot-fix to 1.35, having merged from an abandoned earlier rewrite of EDGE itself.

EDGE development (under the name 3DGE) therefore continued from 2011 well into 2018, introducing major long-requested features which were seen as somewhat standard for other modder-centric ports, including UDMF, archive support, GLSL shaders, and much improved and expanded features for the DDF, RTS, and COAL systems; lots of hard work was put into the port since the last version was released in 2016.

EDGE's persistent popularity and perseverance earned the respect and occasional development contributions from several other major developers in the community, including GZDoom programmers dpJudas, Rachael Alexanderson (Eruanna) and Graf Zahl. Andrew Apted would occasionally assist the team by providing assistance as needed.

On September 18th, 2018, Cora Annis made an announcement of the next major version of EDGE, which would have been the first full version released by the new team since 2016. With Andrew Apted's support and blessing, the separated 3DGE fork (which was long thought as confusing due to naming and version issues) was officially absorbed back into EDGE. The impending release of 2.1.0 (stable) will mark the first version of EDGE officially released since 2011. EDGE is therefore split into two categories as far as releases are concerned - the 1.x branches, and the 2.x branches.

Features

 * OpenGL 1.1/3.1 Renderer Paths, with Mipmapping, Smoothing, Dynamic Lighting, mirrors, portals, and GLSL shader support; Bump-Mapping/GLSL is only supported in the 3.1 rendering path.
 * 64-bit support
 * SDL2 integration
 * UDMF support
 * PAK/PK3/PK7/
 * Rendering interpolation and Vsync support
 * JPEG, PNG, TGA, BMP, PSD, GIF, HDR, PIC, PNM high-res textures; including support for TX_START/TX_END and HI_START/HI_END texture namespaces, and grAb offset support for PNG images.
 * OPL synth playback (using nukeyT's OPLlib)
 * Basic shadows restored from EDGE 1.27
 * Integration of ZDBSP and improvements to glBSP, including building nodes from archives; overall better 3D rendering of both existing Doom levels and newer levels.
 * Several major and minor bugs squashed from the EDGE 1.x releases
 * Heretic/Chex Quest IWAD support
 * and model support
 * Two-player splitscreen co-op or deathmatch (local only)
 * RoQ video support for cinematics
 * Runs on the Sega Dreamcast console.
 * Normal, specular and bright-map support on models
 * DDF/RTS/COAL enhancements and bug-fixes
 * Polyobjects (more types will be supported in the future)
 * : New scripting language which utilizes cameras for complete camera control.
 * Support for up to 64 defined weapons at once through DDF
 * 16 Ammo types: BULLETS, SHELLS, ROCKETS, CELLS, and AMMO5 to AMMO16. (EDGE 1.29 only. AMMO1 to AMMO4 can be used as aliases for the 4 main ammo types.)
 * Extrafloors feature allows modders to create submersible liquids, room-over-room, or catwalks, as well as vertically moving platforms not embedded into the floor.
 * Four armor types: GREEN (33% reduction), BLUE (50% reduction), YELLOW (75% reduction) and RED (90% reduction).
 * Automap can be made to be stationary instead of rotating with the player's facing angle, through COAL. Automap can also be applied as a secondary layer over the normal viewing screen opposed to replacing it, allowing the player to fight enemies and keep track of their position at one time.
 * Weapons can have secondary attacks. Weapons can also be made to be manually reloaded, or have idle stats as well. Integration through COAL and RTS means Weapons and animations can be granularity customized.
 * Support for MUS, MIDI, IT/MOD, and Ogg Vorbis music formats.
 * DDF files allow the editing of many features (such monsters, attacks, and levels).
 * Sprites can be viewed from 16 angles.
 * RTS scripting format includes an option known as "Start_Map ALL" that allows global scripts to be created that affect all maps in the game without copying the script under each individual map.
 * COAL virtual machine scripting language allow a more powerful alternative to functions normally found in DDF/RTS, as well as controlling the entirety of the HUD module.
 * Sliding doors, which are done separately without using PolyObjects.

In-Progress

 * OpenAL for audio subsystem (being restored from EDGE 1.28, replacing SDL2), which will allow for various 3D environmental effects
 * RoQ Render-to-Texture (for models, world textures, and menus/backgrounds)
 * New DDF types: Terrains.ddf, Sprites.ddf, Inventory.ddf and Shaders.ddf
 * Cross-platform IWAD selector
 * Dynamic GLSL shader compilation
 * Normal, specular, and brightmap support on world textures
 * True inventory support
 * Dynamic planar shadow system for dynamic lights
 * AssImp 3D model back-end support for more model formats
 * Quake 3: Arena-style shader-based sky system
 * Better Boom compatibility
 * Decals on all surfaces (using planned Decals.ddf)
 * Wolfenstein_3D support (WLF_*)
 * Rise of the Triad support (ROTT_*)
 * Blake Stone support (BLK_*)
 * Strife support

Heretic support is being finalized, and is in beta as of version 2.1.0 test 3, using a similarly named definition file called HDF (Heretic Definition File). The HDF definitions were written initially by CeeJay, before the 3DGE Team took over to write proper IWAD support.

Popular add-ons
EDGE also brings its own unique set of popular add-ons to the Doom community. Although some dislike EDGE for its perceived instability, the following mods have in one way or another made their mark on the community.

A few notable mods in active development are Duke it Out in DOOM and Doom Forever, both by Chris Mullen (CeeJay), and a sequel to the Marc A. Pullen (Fanatic) mod QDOOM. SLaVE and Hypertension: Harmony of Darkness are two commercial products using this engine, both being developed by Isotope Softworks and published by Goat Store Publishing.

''Note that, as with any port enjoying such a long lifespan, backward compatibility for older mods can be hit and miss. Certain mods might run only with the application version they were designed for; the move to EDGE 2.x in particular is known to have broken support for a number of mods. Keep this in mind, and report any problems encountered if any of the below legacy mods are not running correctly.''


 * Don's Challenge — Created by Cory Whittle, Don's Challenge is a 3-episode modification based around the supernatural adventures of Don P. Tello, a veteran cop who is summoned into Hell by Mortis, the incarnation of Death, to challenge thousands of hellspawned creatures that his soul might be deemed worthy by her as a vessel. At the end of Episode 1, Don transforms Mortis into a cat. However, her brother Fate summons Mortis to Hell and takes Don with her. In the third episode, Don and Mortis return to Earth, only to find it overrun by Demons and Don's own family dead; Don and Mortis attempt to take vengeance for the deaths. This mod became popular due to the use of new monsters, weapons, and levels. One weapon (cigarettes) could even be used to heal the player. Another weapon (Booze) could be used to increase armor value, but took away a small portion of health as well. As of now, only one episode is fully released, but Episode 2 is reportedly on the way.
 * Immoral Conduct - Created by Cory Whittle, Immoral Conduct is a weapons modification for both EDGE and ZDoom (although the ZDoom version does not have as many features as its EDGE counterpart). The EDGE version contains the following: Knife, .45 Pistols, Stock 12g Pump Shotgun, Customized Pump Shotgun (fires 'slasher rounds'), 12g Hand Cannon, 9mm Uzi SMG, Fragment Hand Grenades, 40mm Grenade/Tear Gas Gun, Assault Rifle with M203, Infantry Rifle with Bayonet, Minigun, 12g Sawed-off Shotgun, Beretta 9mm Pistol, Chrome Magnum Revolver, Sentry Turret Kit (summons helper turrets to attack enemies), Gas-Powered Chainsaw, Remote/Proximity Satchel Charges, and Marking/Visibility Flares. New items included a 50% medikit and Nightvision Goggles. New helper monsters included the Marine Corporal and Marine Private. Monsters have also been modified (for example, the baron of Hell's blood is green), and shells are ejected from weapons. It is a partial conversion, sometimes mistaken for a total conversion, and in Whittle's words, "With my stuff, you have all the millions of user-made Doom and Doom II levels at your disposal to be enhanced with new weapons and items."


 * Covert Ops — an EDGE version of Twilight Warrior. It has many features, such as new weapons and interesting scripts.


 * QDoom (Quake Doom) — Created by Marc "Fanatic" Pullen, QDoom is a total conversion of Quake to Doom.


 * EBDoom (Earthbound Doom) - Created by Baron of Sigma, this modification has generated mixed opinions. It is not a complete game, and many consider it more of a "monster modification" since roughly 100+ different species of monsters exist, most of them imported and emulated from Heretic, Hexen, Duke Nukem 3D, Shadow Warrior, and Blood, and 'evolved' versions of existing game monsters, such as Chainsaw Zombies, Gold Liches, and Elder Mancubi. The game also appears to use a near-perfect emulation of the Sigil from Strife as an Easter egg weapon. In addition, the player has hit points instead of a health percentage, and can take much more damage than the common version of Doomguy. There are also several 'helper' characters based on the heroes of many of the Doom-engine games, including Doomguy, Corvus, and the player classes in Hexen. Certain bosses are also among the few in many modifications to have over 50,000 HP, with at least one boss having over 6,000,000 HP. The weapons are more 'mystical' and energy-based, with few traditional Doom-style weapons. Another unique feature in EBDoom is that all melee attacks used either by the player or other monsters/allies can inflict "critical hits" up to 4x damage at times, as in an RPG. Despite the community's mixed opinions of the mod, it is often used as a resource wad by other modders who want to quickly import foreign monsters into their own mods (as the author appears not to mind this). It is also one of the three mods in the Doom community to use Hissy as a central plot player, and makes many references to another EDGE mod known as Cacodemon Squad. This modification was last updated at 6.56 on January 12, 2006.


 * GoldenEye Doom2 - A fairly large in-progress TC. Featuring a load of weapons in both single and multiplayer maps. Multiple versions are available: A single player DEH version compatible with Doom Legacy and Zdoom 1.22. Multiplayer levels for standard Doom2.  An enhanced single player EDGE 1.27+ version.  The Edge version contains the following weapons:  punch/kick, Knives, Watch lazer, _Soviet_Tank_, Silencedable PP7, Dostovie, Cougar Magnum, Automatic Shotgun, pathetic Klobb, Duestch, Zmg, KF7, Sniper Rifle, Ak47, Moon Raker Laser, RCP-90, Golden Gun, Golden PP7, Rocket Launcher, and Grenades. Most of the weapons have alternate firing modes and some weapons can be dual-wielded.


 * Cold Hard Cash - An unique weapons mod offering a larger variety of weapons. Cold Hard Cash's spin on the weapons mod is that instead of just finding weapons laying around or dropped from enemies, the player must mug monsters for money to use at special weapons dispensers, which replace the original weapons, and sometimes artifacts and appear in their place. An example is that the Chainsaw is now a dispenser that allows the player to buy a Knife, a Crowbar, and other melee-type items. Most dispensers have a special offer on it, usually an upgrade to an existing weapon, which requires the said weapon in question to be held by the player before they can use it. It is also the first EDGE mod to use the "Start_Map ALL" RTS function, introduced in the 3rd release candidate of EDGE 1.29, which allows the same scripts to be usable on all maps instead of having to add the same ones to each map individually.