EDGENEW

From 3DGE Wiki
Revision as of 17:39, 22 September 2018 by Corbin (talk | contribs) (created for the DoomWiki, we can use this as a "sandbox" of sorts until we all agree on the final version.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
EDGE, 3DGE, Hyper3DGE, Dream3DGE
Codebase DOSDoom
Developer(s) Cora Annis (Chu), Joseph Fenton, Rachael Alexanderson (Eruanna), Brendan Doe, Damir Srpčič, Maciej Kadlubowski, Andrew Apted, Andy Baker (darkknight)
Non-Developer(s) Chris Mullen (CeeJay), UsernameAK, gameblabla, Josh Pearson, Benjamin Moir, Luke Brennan (Lobo), Marc A. Pullen (Fanatic)
Development status Active
Written in C++, QuakeC (modified)
Target Platform Cross-Platform
License GNU General Public License v2+
Website http://edge2.sf.net/
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 2011-04-11; 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 version of EDGE is 2.0.4, released on 2017-12-13.

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 more modern source 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. The full list of known and active mods are here.

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 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 collaberation 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 with 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 strain 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 and once a part of the EDGE repository itself.

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 foresaw the closing, and development of a fork named 3DGE began to continue development as the modding team still required features that were now not a possibility.

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, v1.35, was released. Two days later, the first version of 3DGE was released as a hotfix to 1.35, having merged from an abandoned earlier rewrite of EDGE itself.

3DGE development continued from 2011 well into 2018, introducing major 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 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 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. 2.1.0's ultimate release 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 1x branches, and the 2.x branches.

The former EDGE 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 and above 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 texture support, including support for TX_START/TX_END and HI_START/HI_END texture namespaces.
  • 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; better 3D rendering of both existing Doom levels and newer levels.
  • Several major and minor bugs squashed from EDGE 1.35
  • 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 brightmap support on models
  • DDF/RTS/COAL enhancements and bugfixes
  • 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 (see Sprite).
  • 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 UDMF or PolyObjects.


In-Progress

  • 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 textures
  • True inventory support
  • Dynamic planar shadow system for dynamic lights
  • Half-Life MDL and MS3D Model format support
  • 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 EDGENEW/Version, 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.

External links

Source code genealogy
Based on
DOSDoom
EDGE Base for
EDGE 2.x