Difference between revisions of "Eternity Engine"

From Eternity Wiki
Jump to: navigation, search
(Gameplay features)
(Loading main game WADs)
 
(48 intermediate revisions by 7 users not shown)
Line 1: Line 1:
The Eternity Engine is [[Team Eternity]]'s advanced [[Doom Wiki:Doom|Doom]] [[Doom Wiki:Source port|source port]] and the primary subject of this Wiki.
+
The Eternity Engine is [[Doom Wiki:Team Eternity|Team Eternity]]'s advanced [[Doom Wiki:Doom|Doom]] [[Doom Wiki:Source port|source port]] and the primary subject of this Wiki. It is meant as a versatile feature port which keeps gameplay compatibility with its roots (DOOM, [[BOOM]], [[MBF]] and so on) while advancing with powerful features such as new ways to design levels ([[linked portals]], [[3DMidTex]], [[polyobjects]] etc.) and modding capabilities (using the [[EDF]] definition language). Every new feature we add is tested not to affect anything that exists so far.  
  
 
==History==
 
==History==
The Eternity Engine began in 1998 as a simple modification of [[Doom Wiki:Boom|Boom]] meant to power Eternity TC, which was at that time a new and active project. When [[Doom Wiki:Lee Killough|Lee Killough]] began the [[MBF]] project, [[James "Quasar" Haley]] became a beta tester after emailing Lee with questions about the early Doom alpha versions. The Eternity project moved to an MBF code base after that port's first release.
+
The Eternity Engine began in 1998 as a simple modification of [[Doom Wiki:Boom|Boom]] meant to power [[Doom Wiki:Eternity TC|Eternity TC]], which was at that time a new and active project. When [[Doom Wiki:Lee Killough|Lee Killough]] began the [[MBF]] project, [[Doom Wiki:James_Haley_(Quasar)|James "Quasar" Haley]] became a beta tester after emailing Lee with questions about the early Doom alpha versions. The Eternity project moved to an MBF code base after that port's first release.
  
In late 1999, [[Doom Wiki:Simon "Fraggle" Howard|Fraggle]] released v3.10 of his MBF-based source port [[SMMU]], which contained support for the new [[FraggleScript]] scripting language. Although activity in the Eternity TC project by editors had steadily dropped to almost nothing, Quasar was still interested in developing the code associated with it. Needing features such as scripting and the [[console]], he then moved the Eternity project's code into SMMU.
+
In late 1999, [[Doom Wiki:Simon "Fraggle" Howard|Fraggle]] released v3.10 of his MBF-based source port [[SMMU]], which contained support for the new [[Doom Wiki:FraggleScript|FraggleScript]] scripting language. Although activity in the Eternity TC project by editors had steadily dropped to almost nothing, Quasar was still interested in developing the code associated with it. Needing features such as scripting and the [[console]], he then moved the Eternity project's code into SMMU.
  
 
Despite this long history of jumping between Boom-based ports, no public release of Eternity based on any port other than SMMU was ever made. The first private alpha, released to a select few beta testers, was derived from SMMU 3.21 with selected modifications from 3.30. Because of this, Eternity began at version 3.29.
 
Despite this long history of jumping between Boom-based ports, no public release of Eternity based on any port other than SMMU was ever made. The first private alpha, released to a select few beta testers, was derived from SMMU 3.21 with selected modifications from 3.30. Because of this, Eternity began at version 3.29.
  
After the release of the [[Caverns of Darkness]] project, which used a customized version of Eternity Engine v3.29 Development Beta 5, the project began to attract more attention. A second programmer, [[Steven "SoM" McGranahan]], joined the project and immediately set to work porting the code to use [[Wikipedia:SDL|SDL]], making it capable of running on many operating systems, including [[Wikipedia:Microsoft Windows|Windows]].
+
After the release of the [[Doom Wiki:Caverns_of_Darkness|Caverns of Darkness]] project, which used a customized version of Eternity Engine v3.29 Development Beta 5, the project began to attract more attention. A second programmer, [[Doom Wiki:Stephen_McGranahan_(SoM)|Steven "SoM" McGranahan]], joined the project and immediately set to work porting the code to use [[Wikipedia:Simple_DirectMedia_Layer|SDL]], making it capable of running on many operating systems, including [[Wikipedia:Microsoft Windows|Windows]].
  
Current major goals for the engine include completing support for [[Doom Wiki:Heretic|Heretic]], a dynamic weapon and inventory system, ZDoom node support, and [[Universal Doom Map Format|UDMF]] support.
+
Now it has [[Universal Doom Map Format|UDMF]] support and a dynamic weapon and inventory system. It supports linked portals for full room-over-room gameplay. Current major goals for the engine include completing support for [[Doom Wiki:Heretic|Heretic]].
 +
 
 +
==Getting started==
 +
You can download Eternity either from [https://www.doomworld.com/forum/25-eternity/ Doomworld] (as official releases) or from [https://devbuilds.drdteam.org/eternity/ DRDTeam] (as "beta quality" development builds, which in practice are generally stable, and may be needed for some modding features listed on this wiki).
 +
 
 +
Eternity's goal that makes it different from feature ports such as [[Doom Wiki:GZDoom|GZDoom]] is demo compatibility similar to that of [[Doom Wiki:PrBoom+|PrBoom+]], kept specifically to ensure that every new feature we add fits seamlessly with what exists so far, and that we don't stray from the bases made so far in the DOOM gameplay.
 +
 
 +
Support for [[Doom Wiki:Heretic|Heretic]] is growing, though still under way. While we don't support vanilla Heretic demos for playback yet, a possibility exists in the horizon.
 +
 
 +
===Playing Eternity===
 +
When run directly, Eternity tries to find the DOOM, DOOM 2 or Final DOOM megawads in some standard locations. If it can't find them, it will let you know. If it finds several of them, it will start with a picker screen, letting you choose.
 +
 
 +
On [[Wikipedia:Windows|Windows]] you can use the drag-and-drop feature of Explorer by moving WADs and PKEs into Eternity's executable. Or you can use Powershell or Command Prompt in a manner similar to starting [[Doom Wiki:Vanilla Doom|vanilla DOOM]]. See [[list of command line parameters]]. For more advanced cases, you can use [[GFS]] files to quickly load multiple files and settings together.
 +
 
 +
The [[Wikipedia:macOS|macOS]] version of Eternity also comes with a visual dialog-box launcher, hiding the complexity behind starting a terminal.
 +
 
 +
For advanced technical stuff, cheating and testing maps, Eternity has a [[console]] similar to [[Wikipedia:Quake|Quake's]].
 +
 
 +
====Loading main game WADs====
 +
Eternity looks for the main game WADs (IWADs), e.g. doom2.wad, at these locations:
 +
* IWAD file paths in user/system.cfg;
 +
* the -iwad command-line parameter;
 +
* the [[Doom Wiki:Environment variables|'''DOOMWADDIR''' or '''DOOMWADPATH''' environment variables]];
 +
* the IWAD in the working directory;
 +
* the IWAD file under the appropriate game folder of the base directory, which can be found using the -game parameter.
 +
 
 +
===Making mods for Eternity===
 +
The editors [[Doom Wiki:Doom Builder X|Doom Builder X]], [[Doom Wiki:GZDoom Builder|GZDoom Builder]], [[Doom Wiki:Eureka|Eureka]] and [[Doom Wiki:SLADE|SLADE]] have Eternity level editing support of varying degrees. For [[UDMF]] (modern advanced format) you can use Doom Builder X, GZDoom Builder or SLADE. However, if you lack access to a UDMF-capable editor or don't want the complexity it brings, you can also use the classic DOOM format, combined with [[ExtraData]]
 +
 
 +
For general modding, Eternity relies on [[EDF]], its own content definition language. For level definitions in particular it uses [[EMAPINFO]]. Eternity also has growing support for some lumps from [[Doom Wiki:GZDoom|GZDoom]] and [[Doom Wiki:Hexen|Hexen]] such as [[ANIMDEFS]], thus increasing the support for cross-port mods.
 +
 
 +
Eternity can load [[PKE]] archives, not just [[Doom Wiki:WAD|WADs]]. It can also load unarchived folders structured the same as PKE archives (you can use the -file command-line parameter on folders), facilitating project work. You can use powerful editors such as [[Wikipedia:Visual Studio Code|Visual Studio Code]] on such folders to edit your EDF modifications.
 +
 
 +
See [[Editing reference|all editing reference]] to get started on modding.
  
 
==Major Features==
 
==Major Features==
  
===[[Cardboard]] engine===
+
===Cardboard engine===
Cardboard is a floating-point rendering engine created by [[SoM]] that fixes several problems inherent with the classic fixed-point Doom rendering engine.
+
[[Cardboard]] is a floating-point rendering engine created by [[Doom Wiki:Stephen_McGranahan_(SoM)|SoM]] that fixes several problems inherent with the classic fixed-point [[Doom Wiki:Doom rendering engine|Doom rendering engine]].
  
===[[EDF]]===
+
===EDF===
EDF, which stands for Eternity Definition Files, is a textual input language that allows specification of almost all the static game data which was once contained inside the executable. This includes thing types, frames, sprites, terrain definitions, and more. EDF has a relaxed [[Wikipedia:C programming language|C]]-like syntax and can be used from both files and [[WAD]] lumps.
+
[[EDF]], which stands for Eternity Definition Files, is a textual input language that allows specification of almost all the static game data which was once contained inside the executable. This includes [[thingtype|thing types]], [[frame|frames]], sprites, terrain definitions, and more. EDF has a relaxed [[Wikipedia:C programming language|C]]-like syntax and can be used from both files and [[WAD]] lumps.
  
===[[ExtraData]]===
+
===ExtraData===
ExtraData is another EDF-like data specification language that allows the Doom map format to be extended with any kind of data. Use of special thing, line, and sector types within a map allows the editor to attach ExtraData records to those objects. Special data for the objects is then given inside the script.
+
[[ExtraData]] is another EDF-like data specification language that allows the Doom map format to be extended with any kind of data. Use of special thing, line, and sector types within a map allows the editor to attach ExtraData records to those objects. Special data for the objects is then given inside the script.
  
===[[Linked portals]]===
+
===Linked portals===
Linked portals are surfaces that, like regular [[portals]], connect different areas of the map, but in addition can be walked through, thus allowing multistory maps to be designed in Doom. Note that while they have been implemented in the official releases, linked portals don't yet support certain gameplay features: hitscan weapons and line-of-sight checks, seamless sprite rendering or actor physics.
+
[[Linked portals]] are surfaces that, like regular [[portals]], connect different areas of the map, but in addition can be walked through, thus allowing multistory maps to be designed in Doom.
  
 
===[[MapInfo]]===
 
===[[MapInfo]]===
Eternity expands SMMU's level info system significantly, allowing dozens of new properties to be specified, and allowing cascading global EMAPINFO lumps as an alternative to inserting MapInfo data into level headers. Among other things, MapInfo is used to tie ExtraData and Small scripts to the maps that use them.
+
Eternity expands SMMU's level info system significantly, allowing dozens of new properties to be specified, and allowing cascading global EMAPINFO lumps as an alternative to inserting MapInfo data into level headers. Among other things, MapInfo is used to tie ExtraData and ACS scripts to the maps that use them.
  
 
==Releases==
 
==Releases==
A complete listing of Eternity's release history follows.
+
A complete list of Eternity's release history follows. You can find most of these releases on the [https://www.doomworld.com/forum/25-eternity/ Doomworld Eternity forum], on the [https://github.com/team-eternity/eternity/releases GitHub Eternity repository] and the older releases on the [http://eternity.mancubus.net/ee-old/ Eternity Mancubus website]. Most of the releases are Windows only, but the most recent ones are also available on macOS.
 +
 
 +
For finer grained non-official releases, see also the [[Eternity Engine#Development builds|development builds]] below.
  
 
===Version 3.29===
 
===Version 3.29===
Line 74: Line 109:
 
* [http://www.doomworld.com/vb/eternity/55219-announcing-the-blue-box-ee-3-40-11-and-vaporware-demo/ 3.40.11] "Aasgard" - May 2, 2011
 
* [http://www.doomworld.com/vb/eternity/55219-announcing-the-blue-box-ee-3-40-11-and-vaporware-demo/ 3.40.11] "Aasgard" - May 2, 2011
 
* [http://www.doomworld.com/vb/eternity/55874-eternity-engine-3-40-15-wodanaz/ 3.40.15] "Wodanaz" - June 22, 2011
 
* [http://www.doomworld.com/vb/eternity/55874-eternity-engine-3-40-15-wodanaz/ 3.40.15] "Wodanaz" - June 22, 2011
* {{Latest}} "Mjolnir" - December 26, 2011
+
* [http://www.doomworld.com/vb/eternity/58281-eternity-engine-v3-40-20-mjolnir/ 3.40.20] "Mjolnir" - December 26, 2011
 +
* [http://www.doomworld.com/vb/eternity/61245-eternity-engine-3-40-25-midgard/ 3.40.25] "Midgard" - August 27, 2012
 +
* [http://www.doomworld.com/vb/eternity/62087-eternity-engine-3-40-30-alfheim/ 3.40.30] "Alfheim" - November 4, 2012
 +
* [http://www.doomworld.com/vb/eternity/64382-eternity-engine-3-40-37-gungnir/ 3.40.37] "Gungnir" - May 27, 2013
 +
* [http://www.doomworld.com/vb/eternity/67069-eternity-engine-3-40-46-bifrost/ 3.40.46] "Bifröst" - January 19, 2014 - ''first one with a macOS release''
 +
 
 +
===Version 3.42===
 +
* [https://www.doomworld.com/forum/topic/94046-eternity-engine-34202-heimdal-files-documentation-buglist/ 3.42.02] "Heimdal" - May 7, 2017
 +
* [https://www.doomworld.com/forum/topic/95351-eternity-engine-34203a-heimdal-release-2-hotfix/ 3.42.03a] "Heimdal" release 2 - August 2, 2017
 +
 
 +
===Version 4.00===
 +
* {{Latest}} "Völuspá" - March 17, 2018
 +
 
 +
==Cross-platform development==
 +
For [[Wikipedia:Windows|Windows]], Eternity has a [[Wikipedia:Visual Studio|Visual Studio]] project. For [[Wikipedia:macOS|macOS]], it has an [[Wikipedia:Xcode|Xcode]] project. For other platforms (most notably [[Wikipedia:Linux|Linux]]), Eternity can be compiled by using the [[Wikipedia:CMake|CMake]] utility. You can download the Eternity [[Wikipedia:source code|source code]] from [[Wikipedia:GitHub|GitHub]] and execute CMake. Eternity's source code repository, as well as the latest releases, are located [https://github.com/team-eternity/eternity/ here].
 +
 
 +
==Development builds==
 +
Development builds ("beta" releases) for Eternity are available for Windows and macOS at [http://devbuilds.drdteam.org/eternity/ DRDTeam's website]. They are recommended if you encounter serious bugs with any of the official releases, or if you want to test brand new features that didn't exist in the latest official releases. Due to their beta status, they may be untested and have other problems. However, due to the sometimes sporadic release cycles, it's often recommended to just try the development builds. The only problem is that by upgrading Eternity often, savegames tend to become unusable, so exercise caution before upgrading Eternity if you rely on games with saves.
  
 
==System features==
 
==System features==
Line 82: Line 134:
 
*[[List of cheat codes]]
 
*[[List of cheat codes]]
 
*[[GFS|GFS files]]
 
*[[GFS|GFS files]]
 +
*[[ZIP|ZIP mods]]
  
 
==Gameplay and modding features==
 
==Gameplay and modding features==
 
*[[DeHackEd / BEX Reference]]
 
*[[DeHackEd / BEX Reference]]
 +
*[[List of codepointers]]
 
*[[EDF|EDF files]]
 
*[[EDF|EDF files]]
 
*[[Editing reference]]
 
*[[Editing reference]]
 +
*[[OPTIONS|OPTIONS lump]]
 +
*[[MapInfo]]
 +
*[[SMMU|Features inherited from SMMU]]
 +
*[[ExtraData]]
 +
*[[Hexen format SNDINFO]]
  
 
[[Category:Source ports]]
 
[[Category:Source ports]]

Latest revision as of 03:22, 11 April 2020

The Eternity Engine is Team Eternity's advanced Doom source port and the primary subject of this Wiki. It is meant as a versatile feature port which keeps gameplay compatibility with its roots (DOOM, BOOM, MBF and so on) while advancing with powerful features such as new ways to design levels (linked portals, 3DMidTex, polyobjects etc.) and modding capabilities (using the EDF definition language). Every new feature we add is tested not to affect anything that exists so far.

History[edit]

The Eternity Engine began in 1998 as a simple modification of Boom meant to power Eternity TC, which was at that time a new and active project. When Lee Killough began the MBF project, James "Quasar" Haley became a beta tester after emailing Lee with questions about the early Doom alpha versions. The Eternity project moved to an MBF code base after that port's first release.

In late 1999, Fraggle released v3.10 of his MBF-based source port SMMU, which contained support for the new FraggleScript scripting language. Although activity in the Eternity TC project by editors had steadily dropped to almost nothing, Quasar was still interested in developing the code associated with it. Needing features such as scripting and the console, he then moved the Eternity project's code into SMMU.

Despite this long history of jumping between Boom-based ports, no public release of Eternity based on any port other than SMMU was ever made. The first private alpha, released to a select few beta testers, was derived from SMMU 3.21 with selected modifications from 3.30. Because of this, Eternity began at version 3.29.

After the release of the Caverns of Darkness project, which used a customized version of Eternity Engine v3.29 Development Beta 5, the project began to attract more attention. A second programmer, Steven "SoM" McGranahan, joined the project and immediately set to work porting the code to use SDL, making it capable of running on many operating systems, including Windows.

Now it has UDMF support and a dynamic weapon and inventory system. It supports linked portals for full room-over-room gameplay. Current major goals for the engine include completing support for Heretic.

Getting started[edit]

You can download Eternity either from Doomworld (as official releases) or from DRDTeam (as "beta quality" development builds, which in practice are generally stable, and may be needed for some modding features listed on this wiki).

Eternity's goal that makes it different from feature ports such as GZDoom is demo compatibility similar to that of PrBoom+, kept specifically to ensure that every new feature we add fits seamlessly with what exists so far, and that we don't stray from the bases made so far in the DOOM gameplay.

Support for Heretic is growing, though still under way. While we don't support vanilla Heretic demos for playback yet, a possibility exists in the horizon.

Playing Eternity[edit]

When run directly, Eternity tries to find the DOOM, DOOM 2 or Final DOOM megawads in some standard locations. If it can't find them, it will let you know. If it finds several of them, it will start with a picker screen, letting you choose.

On Windows you can use the drag-and-drop feature of Explorer by moving WADs and PKEs into Eternity's executable. Or you can use Powershell or Command Prompt in a manner similar to starting vanilla DOOM. See list of command line parameters. For more advanced cases, you can use GFS files to quickly load multiple files and settings together.

The macOS version of Eternity also comes with a visual dialog-box launcher, hiding the complexity behind starting a terminal.

For advanced technical stuff, cheating and testing maps, Eternity has a console similar to Quake's.

Loading main game WADs[edit]

Eternity looks for the main game WADs (IWADs), e.g. doom2.wad, at these locations:

  • IWAD file paths in user/system.cfg;
  • the -iwad command-line parameter;
  • the DOOMWADDIR or DOOMWADPATH environment variables;
  • the IWAD in the working directory;
  • the IWAD file under the appropriate game folder of the base directory, which can be found using the -game parameter.

Making mods for Eternity[edit]

The editors Doom Builder X, GZDoom Builder, Eureka and SLADE have Eternity level editing support of varying degrees. For UDMF (modern advanced format) you can use Doom Builder X, GZDoom Builder or SLADE. However, if you lack access to a UDMF-capable editor or don't want the complexity it brings, you can also use the classic DOOM format, combined with ExtraData

For general modding, Eternity relies on EDF, its own content definition language. For level definitions in particular it uses EMAPINFO. Eternity also has growing support for some lumps from GZDoom and Hexen such as ANIMDEFS, thus increasing the support for cross-port mods.

Eternity can load PKE archives, not just WADs. It can also load unarchived folders structured the same as PKE archives (you can use the -file command-line parameter on folders), facilitating project work. You can use powerful editors such as Visual Studio Code on such folders to edit your EDF modifications.

See all editing reference to get started on modding.

Major Features[edit]

Cardboard engine[edit]

Cardboard is a floating-point rendering engine created by SoM that fixes several problems inherent with the classic fixed-point Doom rendering engine.

EDF[edit]

EDF, which stands for Eternity Definition Files, is a textual input language that allows specification of almost all the static game data which was once contained inside the executable. This includes thing types, frames, sprites, terrain definitions, and more. EDF has a relaxed C-like syntax and can be used from both files and WAD lumps.

ExtraData[edit]

ExtraData is another EDF-like data specification language that allows the Doom map format to be extended with any kind of data. Use of special thing, line, and sector types within a map allows the editor to attach ExtraData records to those objects. Special data for the objects is then given inside the script.

Linked portals[edit]

Linked portals are surfaces that, like regular portals, connect different areas of the map, but in addition can be walked through, thus allowing multistory maps to be designed in Doom.

MapInfo[edit]

Eternity expands SMMU's level info system significantly, allowing dozens of new properties to be specified, and allowing cascading global EMAPINFO lumps as an alternative to inserting MapInfo data into level headers. Among other things, MapInfo is used to tie ExtraData and ACS scripts to the maps that use them.

Releases[edit]

A complete list of Eternity's release history follows. You can find most of these releases on the Doomworld Eternity forum, on the GitHub Eternity repository and the older releases on the Eternity Mancubus website. Most of the releases are Windows only, but the most recent ones are also available on macOS.

For finer grained non-official releases, see also the development builds below.

Version 3.29[edit]

  • 3.29 Private Alpha - September 14, 2000
  • 3.29 Public Beta 1 - January 8, 2001
  • 3.29 Public Beta 2 - January 9, 2001
  • 3.29 Public Beta 3 - May 10, 2001
  • 3.29 Public Beta 4 - June 30, 2001
  • 3.29 Development Beta 5 - October 2, 2001
  • 3.29 "Gamma" - July 4, 2002

Version 3.31[edit]

  • 3.31 Public Beta 1 - September 11, 2002
  • 3.31 Public Beta 2 - March 5, 2003
  • 3.31 Public Beta 3 - August 8, 2003
  • 3.31 Public Beta 4 - November 29, 2003
  • 3.31 Public Beta 5 - December 17, 2003
  • 3.31 Public Beta 6 - February 29, 2004
  • 3.31 Public Beta 7 - April 11, 2004
  • 3.31 "Delta" Pre-Release Alpha 1 - August 23, 2004
  • 3.31 "Delta" Pre-Release Alpha 2 - November 11, 2004
  • 3.31.10 "Delta" - January 19, 2005

Version 3.33[edit]

  • 3.33.00 "Genesis" - May 26, 2005
  • 3.33.01 "Outcast" - June 24, 2005
  • 3.33.02 "Warrior" - October 1, 2005
  • 3.33.33 "Paladin" - May 17, 2006
  • 3.33.50 "Phoenix" - October 23, 2006

Version 3.35[edit]

  • 3.35.90 "Simorgh" - January 11, 2009
  • 3.35.92 "Nekhbet" - March 22, 2009

Version 3.37[edit]

  • 3.37.00 "Sekhmet" - January 1, 2010

Version 3.39[edit]

  • 3.39.20 "Resheph" - October 10, 2010

Version 3.40[edit]

  • 3.40.00 "Rebirth" - January 8, 2011
  • 3.40.11 "Aasgard" - May 2, 2011
  • 3.40.15 "Wodanaz" - June 22, 2011
  • 3.40.20 "Mjolnir" - December 26, 2011
  • 3.40.25 "Midgard" - August 27, 2012
  • 3.40.30 "Alfheim" - November 4, 2012
  • 3.40.37 "Gungnir" - May 27, 2013
  • 3.40.46 "Bifröst" - January 19, 2014 - first one with a macOS release

Version 3.42[edit]

  • 3.42.02 "Heimdal" - May 7, 2017
  • 3.42.03a "Heimdal" release 2 - August 2, 2017

Version 4.00[edit]

  • 4.00.00 "Völuspá" - March 17, 2018

Cross-platform development[edit]

For Windows, Eternity has a Visual Studio project. For macOS, it has an Xcode project. For other platforms (most notably Linux), Eternity can be compiled by using the CMake utility. You can download the Eternity source code from GitHub and execute CMake. Eternity's source code repository, as well as the latest releases, are located here.

Development builds[edit]

Development builds ("beta" releases) for Eternity are available for Windows and macOS at DRDTeam's website. They are recommended if you encounter serious bugs with any of the official releases, or if you want to test brand new features that didn't exist in the latest official releases. Due to their beta status, they may be untested and have other problems. However, due to the sometimes sporadic release cycles, it's often recommended to just try the development builds. The only problem is that by upgrading Eternity often, savegames tend to become unusable, so exercise caution before upgrading Eternity if you rely on games with saves.

System features[edit]

Gameplay and modding features[edit]