Aeon

Aeon is the in-development scripting language for the Eternity Engine.

History
Historically, as a fork of SMMU, the Eternity Engine started with the FraggleScript language. The limitations of this language led to the decision to replace it with a full-fledged, off-the-shelf alternative. The first choice was Small, adopted in 2002. FraggleScript was removed on September 25, 2002, and a first implementation of Small with limited scope took its place a few days later. Progress in extending this implementation to interface with more and more of the Doom code was slow but steady for several years and implementation was finally declared complete for the Eternity v3.33.00 release on May 27, 2005.

However, some of Small's design decisions started to prove problematic. The fact that it is a compiled language, so Small scripts would be present in compiled form (and their source potentially lost), a problem similar to that of Hexen's Action Code Script, but more acute due to Small's greater complexity. The decision to drop Small was taken when it surfaced that its bytecode was not portable between 32-bit and 64-bit architecture. Other alternatives, such as Lua or Python, were then considered, before eventually settling on JavaScript, by integrating the virtual machine. By 2012, Small support had been effectively, even if inadvertently, removed from the engine.

The idea of using JavaScript was eventually abandoned after Samuel Villarreal's experiments with the embeddable version of the SpiderMonkey interpreter in the KEX 2 engine for use with  proved unsuccessful, suffering from massive lag spikes concurrent with the virtual machine's obsolete mark-and-sweep garbage collection passes. This left Aeon temporarily without a target language and the project was placed on the backburner as a result.

Progress on Aeon implementation was quite slow. After James Haley (Quasar) became a full-time employee of Nightdive Studios, time available for further Eternity Engine development was dramatically reduced, and much of the effort was concentrated on smaller tasks that could still be accomplished during a reasonable timeframe. Eventually, Max Waine (Altazimuth) took over further development of Aeon, now targeting the language, which is also utilized within the KEX Engine.