EDGE

From DoomWiki.org

Revision as of 20:56, 25 September 2018 by Ryan W (talk | contribs) (Sources: hmmm, and add the ZDoom Forums thread since I just put the version number up there)


EDGE, 3DGE, Hyper3DGE, Dream3DGE
File:EDGE LogoNew.jpg
Codebase DOSDoom
Developer(s) Cora Annis, Joseph Fenton, Rachael Alexanderson (Eruanna), Brendan Doe, Damir Srpčič, Maciej Kadlubowski, Andrew Apted, Andy Baker (darkknight)
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 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.

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.

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.

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 utilitizes KallistiGL instead of OpenGL for important rendering functions concerning the SH-4 CPU.

History

DOSDoom began development in 1997, initially by Chi Hoang and became the first source-port. Andy Baker (darkknight) was a frequent collaborator, and soon amassed a team of developers known as the DOSDoom Team. 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.

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 DOSDoom Team 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.

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. In mid 1999, Andrew Apted joined the team and it was decided that the DOSDoom name would change to better reflect its status as the most advanced 3D source-port of its time. DOSDoom v0.653 was released in April 10, 1999, which would be its final version. What was left of the DOSDoom Team at the time, with Andrew Apted and Andrew Baker, immediately formed the EDGE project from the existing code-base.

EDGE was officially released on June 20, 2000, which 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.

EDGE development continued into the next decade. While the early/mid part of the 2000's were notable for EDGE being the supreme choice for modders and OpenGL enthusiasts, the team began to experience strain. As most members of the DOSDoom team had left by 2001, 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 gameplay rewrites between 1.29 and 1.31, the remainder of development was primarily headed by Andrew Apted.

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.

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 2.x, 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.

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.

Features

  • OpenGL 1.1/2.1/3.1 Renderer Paths, with Mipmapping, Smoothing, Dynamic Lighting, mirrors, portals, and GLSL shader support; Bump-Mapping on model surfaces 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 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
  • 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.
  • Sliding doors, which are done separately without using PolyObjects.

In-Progress

  • OpenAL for audio subsystem (being restored from EDGE 1.28), 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 backend support for more model formats
  • Quake 3: Arena-style shader-based sky system
  • Better Boom compatibility
  • Decals on all surfaces (using 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.

Keep in mind that the mods listed below were developed a long time ago, and might require legacy versions of EDGE to run properly. EDGE 2.x is known to have broken some support for old mods.

  • 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