Eternity Engine


 * This page is about the source port. For other uses, see Eternity.

The Eternity Engine is a GPL source port maintained by James "Quasar" Haley and Stephen "SoM" McGranahan. It was originally meant to power the Eternity total conversion, but after the project went on hiatus, eventually being cancelled on the 15th of June 2006, the engine became the prime focus. The engine is based on Smack My Marine Up (SMMU) by Simon "Fraggle" Howard.

The engine now boasts a host of new features, both gameplay related and editing related, all while maintaining backward compatibility with the original engine.

Projects developed for the port include Mordeth, Doom Millennium and Vaporware.

Features

 * EDF (Eternity Definition Files) scripting language for defining new projectiles and monsters, with weapons planned for future releases.
 * EMAPINFO for the level header as well as the standard global one.
 * BOOM, MBF and partial SMMU support (no FraggleScript).
 * A console.
 * GFS (Game File Script): A way to add large numbers of files in a clean, safe manner
 * ExtraData support ("the end-all, be-all extension to the DOOM map format")
 * 3D middle textures, which causes 2S linedefs using it to clip objects using the height of their middle texture. Within the range of the texture's height, the lines are effectively solid and block players, monsters, and projectiles. Below or above, objects can pass freely.
 * Rendering portals which can be used to create skyboxes and fake 3D architecture.

History
The Eternity Engine started development in 1998, based on Boom. The codebase then switched to MBF and finally to SMMU. The first public release of the Eternity Engine was 3.29 beta 1 on January 8, 2001.

FraggleScript was removed in version 3.31, to be replaced by Small. Due to Small's lack of x64 portability, however, it was deprecated in version 3.37.

Source

 * Text has also been taken from the Team Eternity Software homepage (See "External links")
 * Text has also been taken from the Team Eternity Software homepage (See "External links")