Compliance (BOOM, etc)
Compliance with Standards
This article describes how 3DGE handles compliance when compared to other source ports. Please read this carefully.
3DGE is based on the DOOM engine, and everything in the games DOOM, DOOM II, TNT Evilution and Plutonia is known to behave correctly, including: monsters, weapons, line-types, sector-types, intermission and finale screens.
However some differences should be noted:
- 3DGE uses OpenGL for rendering, and hence requires a hardware-accelerated 3D card. Plus some things don't look exactly the same as the original, for example: Some sprites are designed to look sunk into the floor, typically corpses, and can seem to "float" in EDGE. Plus some non-standard mapping tricks (like invisible floors) don't always work properly.
- The type of networking that DOOM used back in 1994 is obsolete today, and EDGE doesn't have a suitable replacement, hence multiplayer games are not possible yet. However, you can start a local 2-Player Cooperative or Deathmatch game on a single machine.
- 3DGE cannot play Demos ("LMP" files) recorded for DOOM, including the ones in the IWADs. This is because the LMP format does not store enough information, so they can only be played back in the original DOOM or extremely compatible ports (like Chocolate-Doom). 3DGE is working on restoring its own internal demo format.
3DGE, as of 1.36E, can read the Heretic IWAD. The DDF for Heretic is found in /herddf. In order to properly launch Heretic, you *must* use the included Heretic batchfile. This is temporary.
While 3DGE can play and support Heretic all the way through (even with splitscreen), keep these in mind:
- You will have no inventory to store artifacts, and items will be activated upon pickup, like DOOM.
- Heretic cheat codes are not supported (yet) - these will be implemented in v2.1.0.
- The classic STATUS BAR is not supported (yet), so we have written a custom COAL HUD to use in the meantime.
- Still missing some graphics and text; support for established game standards is Very Low.
Since 3DGE is based directly on EDGE 1.35, most features and mods from EDGE are compatible. However, newer versions of 3DGE will fail to load very old EDGE projects (if they were made before 1.31) because of a new #VERSION directive in DDF and RTS, ensuring 3DGE does not backtrack to fix old issues.
This list will be constantly updated as new features replace or re-dictate original behavior from EDGE.
- You can update the #VERSION directive yourself to load said mod in question, however, this is unsupported and we will not accept bug reports on it.
- If things appear broken from EDGE 1.31 and up, you may submit a bug report to the Sourceforge website.
- If there are issues NOT EDGE related that you are finding problems with (such as game behavior, rendering, etc), you may report it to us.
- DDF: END.TEXT_WAIT is disabled permanently.
Link: EDGE homepage
Report Bugs: Sourceforge bugtracker
Boom was a modification/improvement to the DOOM code made by TeamTNT. As well as fixing many bugs and removing many limitations, Boom added many new editing features. EDGE 1.29 greatly improved compatibility with Boom features, which are still being improved as of 2.1.0 Test3. Levels should play fine; otherwise you should report the bug to us.
List of known incompatibilities:
- displacement and accelerative scrollers don't work
- physics for ICE and MUD effects are similar (but not identical)
- some effects of linetype , especially invisible floors, do not work yet (these are receiving fixes as of 2.1.0 Test3)
- translation-maps are software rendering techniques and often the effect cannot be emulated (or only poorly emulated) in an OpenGL port. Colormaps are working as of 2.1.0 Test3.
- manual doors with a tag cause a lighting effect in Boom (this will be fixed in v2.0.2, but will break EDGE-compatible projects)
Link: BOOM homepage
Reference: Boom Reference
DeHackEd & BEX
DeHackEd was a program written by Greg Lewis which modified the DOOM executable, allowing changes to the behavior of monsters, weapons, sounds, text strings, etc... These changes could be distributed between users in the form of "patch" files (which have the ".DEH" extension).
BEX is the Boom EXtensions to DeHackEd patches.
3DGE implements DeHackEd and BEX patches using a library called DEH_EDGE (which also exists as a stand-alone program). DEH_EDGE converts the patch file into DDF, which 3DGE then loads. 3DGE supports the standard -deh option for specifying patch files, as well as recognizing the ".DEH" and ".BEX" extensions when using the -file option or when you drag'n'drop files onto the EXE. The "DEHACKED" wad lump is also supported.
Some really old DeHackEd patches are not in a text format, instead they are a binary format. 3DGE can actually load these old binary patches! (most other ports cannot).
List of things not supported by 3DGE yet:
- the BEX "INCLUDE" directive
- raw action offsets and sprite/sound name pointers
- certain cheat statistics, like 'God Mode Health'
- three BOOM/MBF actions: A_Scratch, A_Spawn and A_Mushroom
- the BEX [PARS] and [HELPER] sections
Some ports, notably ZDoom, have also added their own features into DeHackEd patches, for example: obituary messages. 3DGE supports obituary messages and can convert these.
Link: DeHackEd homepage
Reference: Eternity Engine DeHackEd/BEX Reference
GL Nodes provide more information which OpenGL ports need, in particular the exact boundaries of subsectors, which was missing in the original DOOM nodes.
3DGE 2.1.0 Test3 supports V1,V2,V3 and V5 format GL Nodes, both internally (in the same WAD as the levels) or externally as GWA files.
- 3DGE lacks one feature to make it fully compliant with the GL Nodes spec: support for map names longer than 5 letters (using the special "GL_LEVEL" map marker).
Reference: GL Node Specifications
Joint Texture Standard
This specification resulted from a discussion of several port authors about a unified way to handle textures (etc) in new formats like PNG and JPEG, as well as a new system (NTEXTURE) which can define texture sources and attributes (like scaling) in a standard but extensible way.
3DGE has no support for this spec yet, apart from the ability to load the 320x200 Heretic/Hexen title graphics and support for larger flats (from 128x128 upto 1024x1024).
Reference: Joint Texture Standard
3DGE can support Wolfenstein 3D to a certain degree.
- 3DGE cannot support mods made with WolfSDL - only original or 3DGE-only projects.
- Support is heavily and constantly evolving, so check back often.
3DGE supports minimal compatibility with Zdoom, notably BEHAVIOR lumps, DECORATE lumps, and Texture Markers.
- 3DGE can read the TEXTURE1/2 scaling extension and TX/HI_START (from other ports as well).
- 3DGE used a library by Blutz called Declerate, which converts DECORATE lumps to DeHackEd, which in turn is converted by DEH_EDGE. This is not supported anymore.
- 3DGE can parse BEHAVIOR lumps (fixme: to what extent?)
Reference: Zdoom Homepage