EDGE

From DoomWiki.org

Revision as of 18:34, 4 January 2019 by Corbin (talk | contribs) (Changed a lot to rework the article, cite sources with links, provide more information about history and releases, cleaned up redundant text, cleaned up history with proper title.)


EDGE, 3DGE, Hyper3DGE, Dream3DGE
File:EDGE LogoNew.jpg
Codebase DOSDoom
Developer(s) Corbin/Cora Annis, Joseph Fenton, Rachael Alexanderson (Eruanna), Brendan Doe, Damir Srpčič, Maciej "CMatso" Kadlubowski, Andrew Apted, Andy Baker (darkknight), Darren Salt, Erik Sandberg, David “DaveEL” Leatherdale, John Cole, Kester Maddock, Martin Howe, Bruce Lewis
Contributor(s) Chris Mullen (CeeJay), UsernameAK, gameblabla, Josh Pearson, Benjamin Moir, Luke Brennan (Lobo), Marc A. Pullen (Fanatic)
Initial release 1.22 (2000-06-20, 23 years ago)
Latest release 2.1.0-RC1.5 (2018-10-17, 5 years ago)
Development status Active
Written in C++, QuakeC (modified)
Target Platform Cross-Platform
License GNU General Public License v2+
Website SourceForge
Source Repository GitHub

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 early 1999 before its parent 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.

EDGE Historical Timeline

DOSDoom Origins and 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 Template:3dgewiki. 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 Template:3dgewiki 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 its direct successor, EDGE.

Planned TeamTNT/DOSDoom Merger

In mid 1998, TeamTNT discussed with the Template:3dgewiki about merging their project, OGRE, directly into DOSDoom. The collaboration was announced in late 1998 by Ty Halderman and Andrew Baker, and generated much interest as TeamTNT previously developed another ground-breaking port named BOOM; discussions were even joined by the inclusion of John Carmack, which he wrote about in his .plan file in 1998. Captain Mellow also wrote about the potential merger with TeamTNT's port on August 2, 1998.

However, while early work was progressing by both teams, difficulties ensued as each had differing views of how development was to continue, with the DOSDoom Team's primary concern not to lose DOSDoom's identity. After a few months, the engine 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 continued development of DOSDoom as EDGE. The failed merger didn't affect DOSDoom's ultimate community 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 members of the team shortly thereafter.

EDGE 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. *Template:3dgewiki 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, publicly formed the EDGE team from the existing code-base, though privately DOSDoom was already transitioning to EDGE. Bruce A. Lewis was also an early contributor.

Even though EDGE did not see public release until mid-2000, the port was in active development from 1999 (the first known internal version released was 1.16). Andrew Baker later admitted through his log file from September 1999 that transitioning the code-base was more work than they initially realized; this observation remained true during the rest of the ports lifetime.

Release

EDGE was officially released with version 1.24 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 source port as several other emergent technologies were realized in tandem, including glBSP, the first true 3D node-builder for DOOM. In addition to OpenGL support, the team maintained backwards-compatibility with its Software renderer, offering users with no accelerated hardware to continue enjoying the port.

The development of Marc A. Pullen's QDoom was also 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 and the team motivated.

Post-Release Timeline

EDGE development continued into the next decade; while its early years were notable for EDGE being the unequivocal 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. With major rewrites of the engine taking place in 2004 and following most releases of the port up until 2008, development was shifted primarily between the last two active developers; because of this, the engine was beginning to be perceived as being somewhat unstable in the community.

The first release to drastically change the scene was EDGE 1.29, released in 2007 after 3 years of development, which dropped the Software Renderer entirely. It was seen as both progressive and regressive - the community felt as the team was forcing modders and end-users to upgrade to OpenGL-compatible hardware in order to play the port. Nonetheless, the release saw other innovations, such as OGG Vorbis playback, PNG sprite/patch replacements, and colored dynamic lighting. The final release was not without its faults, as the team chose to release many experimental versions in its 3 year development cycle, which perhaps contributed to its initial signs of instability.

With the much anticipated release of 1.31 in 2008, EDGE's standing once again improved and modders began returning to the engine, though at this point ZDoom was tearing much of the share away as it began to see major milestones of its own, notably ACS for level scripting, which was more advanced than RTS. Andrew Apted's role shifted to being the primary developer of EDGE at this time, and 1.31 was well-received due to its cleanup of bugs, and its scripting enhancements.

However, in late 2008, Andrew Apted began another rewrite for a 1.32 release, but realized that he could not keep up with demand as the engine began to take its toll on him as the sole developer. That major branch of the engine, which included features such as a new nodebuilder (TinyBSP), LUA scripting, and MD3 model rendering, was initially not received with much interest due to bad timing; it was also around this time that Andrew Baker had retired from the team. Possibly as a result of this, Andrew Apted grew frustrated and scrapped a large amount of work on the rewrite - he instead merged select features back into the quite-stable 1.31 branch to produce version 1.34 in late 2009 - Andrew Baker committed to finishing up their new scripting language COAL.

He started to make plans to fix up any outstanding issues with EDGE and make the final release. Perhaps as a result of ZDoom's overwhelming popularity and rapid development, Andrew Apted could not keep up with all of the feature requests from the community, as he had invested much work and time into the 1.3x branches. 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 EDGE. 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 production in early 2011 as the modding team still required features that were only possible if they did it themselves.

After much speculation, the then-final version of EDGE, version 1.35, was released on April 9th, 2011, and Andrew Apted formally retired from development, leaving EDGE without a maintainer. With the emergence of the 3DGE fork, EDGE development had closed its doors.

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

Before EDGE saw its last release, a fork called 3DGE began development. Two days after Andrew Apted retired, the first version of 3DGE was released as a hot-fix to 1.35, having forked from the abandoned rewrite of EDGE 1.32 two years earlier. Despite its early hiccups, what was left of the community warmed to it as it incorporated features that many were hoping to have been carried over from 1.32.

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.

The team made its last full release on April 24, 2016, which would be the last version of 3DGE under that name.

Current Status of EDGE

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 EDGE 2.1.0-Final 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.

The EDGE team currently consists of Corbin/Cora Annis and Joseph Fenton as the main programmers, with programming assistance from Rachael Alexanderson (Eruanna), Brendan Doe, Damir Srpčič, and Maciej "CMatso" Kadlubowski. In addition, the source port has a host of additional team contributors.

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/Template:3dgewiki Template:3dgewiki
  • 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 for UDMF and improvements to EDGE's built-in 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
  • Template:3dgewiki and Template:3dgewiki 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)
  • Template:3dgewiki: 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
  • FFmpeg for video playback support (which will replace EDGE's built-in ROQ player), and will accept any video format that FFmpeg does
  • 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 (RT_*)
  • 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."
  • 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.

Sources

External links

  • Mapsets and add-ons:
Source code genealogy
Based on Name Base for
DOSDoom EDGE 1.x 3DGE
Dream3DGE
EDGE 1.x 3DGE EDGE 2.x
EDGE 1.x Dream3DGE None