The Eternity Engine - Le Bottin des Jeux Linux

The Eternity Engine

🗃️ Specifications

📰 Title: The Eternity Engine 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Adventure & Action 🚦 Status: 04. Released (status)
🏷️ Category: Adventure & Action ➤ FPS ➤ Fantasy & Sci-fi ➤ Doom 1&2, Hexen 1, Heretic, Strife 🌍️ Browser version:
🔖 Tags: 3D engine; id Tech 1 engine; Flagship; Doom; Action; FPS; Shooter; Multi-platform; Moddable; Level Editor; Local Multi; Online Multi; Co-op; Local Co-op; PvP; PvE 📦️ Package Name: eternity-engine
🐣️ Approx. start: 2006-02-05 📦️ Arch package: ✓
🐓️ Latest: 2023-02-04 📦️ RPM package:
📍️ Version: Latest: 4.02 "Forseti" / Dev: 24afb4a 📦️ Deb package:
🏛️ License type: 🕊️ Libre 📦️ Flatpak package:
🏛️ License: GPL-3 📦️ AppImage package:
🏝️ Perspective: First person 📦️ Snap package:
👁️ Visual: 3D ⚙️ Generic binary:
⏱️ Pacing: Real Time 📄️ Source: ✓
👫️ Played: Single & Multi 📱️ PDA support:
🎖️ This record: 5 stars 🕳️ Not used:
🎀️ Game design: 👫️ Contrib.: goupildb & Louis
🎰️ ID: 13137 🐛️ Created: 2012-03-24
🐜️ Updated: 2023-09-09

📖️ Summary

[en]: A libre, multi-platform engine compatible with Doom 1, Doom 2, Final Doom, HACX, and FreeDoom games (not Heretic or Hexen) focusing on enhanced engine capabilities while preserving compatibility with the vanilla version and its demos. Among other things, it features the Cardboard engine (floating point renderer), EDF & ExtraData scripting languages (data specification to separate it from the engine and extend the map format), UDMF support (map specification), linked portals (linking maps together and designing multi-stage maps), and a dynamic weapon and inventory system. On the user side, the great interest of this engine (which is at least as interesting as GZDoom) lies in its specific capabilities (the maps & mods developed for this engine completely change its look, the support of stackable platforms/levels is unprecedented, ...). [fr]: Un moteur libre et multi-plateforme compatible avec les jeux Doom 1, Doom 2, Final Doom, HACX, et FreeDoom (pas Heretic ni Hexen) mettant l'accent sur des capacités améliorées du moteur en préservant la compatibilité avec la version vanilla et ses démos. Il fournit notamment le moteur Cardboard (moteur de rendu à virgule flottante), les langages de script EDF & ExtraData (spécification des données permettant de les séparer du moteur et d'étendre le format des cartes), le support d'UDMF (spécification des cartes), les portails liés (liaison des cartes entre-elles et conception de cartes à plusieurs étages), et un système d'arme et d'inventaire dynamique. Côté utilisateur, le gros intérêt de ce moteur (qui est au moins aussi intéressant que GZDoom) réside dans ses capacités spécifiques (les cartes & mods développés pour ce moteur modifient complètement son aspect, le support des plateformes/niveaux superposables est inédit, ...).

🎥️ Videos


🦝️ From Users: (201711), (201909),


💎 Features: Linked Portal Abuse (200712), Reverb Test (201312),


🎲️ Gameplay: (202301), (202004),


🎮️ Showcase:
• Heartland (202103), Vaporware (202205), In search (202011),

• Light Pollution (202107), Tarnsman's Projectile Hell (202301), Mothership (202201),

• Cycle of Sorrow (202110),

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos ft(200712) ft(201312) t(202xxx) gd(202xxx) gu(201711) gu(201909) r(202xxx) lp(202xxx) ht(202xxx) g(202301) g(202004) g(200904) g(200906) g(201012) g[fr](202xxx) g[de](202xxx) g[ru](202xxx) g[pl](202xxx) g[cz](202xxx) g[sp](202xxx) g[pt](202xxx) g[it](202xxx) g[tr](202xxx)] [WIKI] [FAQ] [RSS] [Changelog 1 2 3 4]

💰 Commercial: (Windows, for contents extraction) (Doom 2) [IsThereAnyDeal] [Humble Store] [Gamersgate] [Steam] [GOG] [Gamesplanet [fr]]
💰 Commercial: (See also our entry "FreeDoom")

🍩️ Resources
● Mods:
• Heartland (an episode developed exclusively for the Eternity Engine, takikng place in the nation's decaying industrial heartland): [Heartland] g(202103)
• Vaporware (a partial conversion with one single player level titled "Cargo Transfer"): [DoomWiki (Vaporware w/ link to the wad)] g(202205)
• Somber Density (a relatively small crypt-themed map with areas that progressively open up and get more difficult): [DoomWorld (Somber Density)] g(202xxx)

● Maps:
• In search (a partial conversion with one single player level titled "Cargo Transfer"): [DoomWorld (In search)] g(202011)
• Light Pollution (One big map with lots of enemies, but most of them are low health ones): [DoomWorld (Light Pollution)] g(202107)
• Tarnsman's Projectile Hell (The Prequel to Part B Galaxy's Brink!! The Super Incredible Bulgarian Necromance): [DoomWorld (Tarnsman's Projectile Hell)] g(202301)
• Mothership (a single map set on a UFO): [DoomWorld (Mothership)] g(202201)
• Cycle of Sorrow (a relatively small crypt-themed map with areas that progressively open up and get more difficult): [DoomWorld (Cycle of Sorrow)] g(202110)

🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames] [DoomWiki (The Eternity Engine)]

🐘 Social
(The Eternity Engine) Devs (Team Eternity 1 2 [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
(SMMU) Devs (Simon Howard (Fraggle) [fr] [en]): [Site 1 2] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
Devs (DRD Team 1 2 [fr] [en]): [Site 1 2] [Chat] [Forums] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
The Project: [Blog] [Forums] [mastodon] [PeerTube] [YouTube] [PressKit] [reddit] [Discord]

🐝️ Related
[Wikia (The Eternity Engine)]

📦️ Misc. repositories
[Repology] [pkgs.org] [Arch Linux / AUR] [openSUSE] [Debian/Ubuntu] [Flatpak] [AppImage] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB]

🕊️ Source of this Entry: [Site (date)]

🐘 Social Networking Update (on mastodon)

🛠️ Title: The Eternity Engine
🦊️ What's: A libre engine compatible with Doom 1&2, Final Doom, HACX, & FreeDoom
🏡️ https://eternity.youfailit.net/wiki/Main_Page
🐣️ https://github.com/team-eternity/eternity
🔖 #LinuxGameDev #Flagship #LibreGameEngine #FPS #Doom
📦️ #Arch
📖 Our entry: http://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🥁️ Update: 3.40.20➜4.02 "Forseti"
⚗️ Loads of new features ⭐️
📌️ Changes: https://www.doomworld.com/forum/25-eternity/
🐘 From: -

🦝️ https://www.youtube.com/embed/E_wRVX2r5n4
🎲️ https://www.youtube.com/embed/b07ymStWqxU
🎲️ https://www.youtube.com/embed/2pLjacvEmis
🎮️ https://www.youtube.com/embed/2VHs4mCK3Fg
🎮️ https://www.youtube.com/embed/oLQoLK5JA6I
🎮️ https://www.youtube.com/embed/bWMLd7Dlv7E

🕶️ A FPS view of the engine with the Somber Density mod. The player is holding a rocket launcher and is heading to a large hall where various monsters are waiting for him. In the center of the hall is an islet surrounded by a pit with a switch that will certainly need to be activated. At the foot of the island is an armed guard and above it a monster on a platform (illustrates the possibility of this engine of floors overhanging rooms, which does not exist in the original engine nor even in other Doom engines).

The Eternity Engine is a libre, multi-platform engine compatible with Doom 1, Doom 2, Final Doom, HACX, and FreeDoom games (not Heretic or Hexen) focusing on enhanced engine capabilities while preserving compatibility with the vanilla version and its demos. Among other things, it features the Cardboard engine (floating point renderer), EDF & ExtraData scripting languages (data specification to separate it from the engine and extend the map format), UDMF support (map specification), linked portals (linking maps together and designing multi-stage maps), and a dynamic weapon and inventory system. On the user side, the great interest of this engine (which is at least as interesting as GZDoom) lies in its specific capabilities (the maps & mods developed for this engine completely change its look, the support of stackable platforms/levels is unprecedented, ...).

📕 Description [en]

📕🐧"A libre engine compatible with Doom 1&2, Final Doom, HACX, & FreeDoom"🐧📕

The Eternity Engine is Team Eternity's flagship product. It is a highly featured DOOM source port based on SMMU, currently available for Windows and Linux. It features full support for all versions of DOOM, DOOM II, and Final DOOM, and is currently adding Heretic support. New editing and gameplay features abound, but Eternity still features almost 100% DOOM compatibility, including highly accurate demo playback - most DOOM v1.9 demos will stay in sync.


The Eternity Engine is 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.

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.


Major Features

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.

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 C-like syntax and can be used from both files and WAD lumps.

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.

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.

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 ACS scripts to the maps that use them.


History

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.

📕 Description [fr]

Un moteur compatible avec les jeux Doom 1, Doom 2, Final Doom, HACX, et FreeDoom, par la Team Eternity, dérivé du moteur SMMU ("Smack My Marine Up", de Simon Howard (Fraggle)).
En C++/C.

The Eternity Engine est un moteur libre et multi-plateforme compatible avec les jeux Doom 1, Doom 2, Final Doom, HACX, et FreeDoom (pas Heretic ni Hexen) mettant l'accent sur des capacités améliorées du moteur en préservant la compatibilité avec la version vanilla et ses démos. Il fournit notamment le moteur Cardboard (moteur de rendu à virgule flottante), les langages de script EDF & ExtraData (spécification des données permettant de les séparer du moteur et d'étendre le format des cartes), le support d'UDMF (spécification des cartes), les portails liés (liaison des cartes entre-elles et conception de cartes à plusieurs étages), et un système d'arme et d'inventaire dynamique. Côté utilisateur, le gros intérêt de ce moteur (qui est au moins aussi intéressant que GZDoom) réside dans ses capacités spécifiques (les cartes & mods développés pour ce moteur modifient complètement son aspect, le support des plateformes/niveaux superposables est inédit, ...).

Exemples de ressources utilisables : voir les liens éventuels au paragraphe "Resources" ci-dessus, la fiche “Resources - Doom 1&2, Heretic, Hexen 1&2, Strife" et notre entrée Freedoom.


The Eternity Engine est le produit phare de Team Eternity. Il s'agit d'un portage source de DOOM très complet basé sur SMMU, actuellement disponible pour Windows et Linux. Il offre un support complet de toutes les versions de DOOM, DOOM II et Final DOOM, et ajoute actuellement le support d'Heretic. Les nouvelles fonctionnalités d'édition et de gameplay abondent, mais Eternity offre toujours une compatibilité DOOM à presque 100%, y compris une lecture très précise des démos - la plupart des démos DOOM v1.9 resteront synchronisées.


The Eternity Engine est un portage polyvalent qui conserve la compatibilité de jeu avec ses racines (DOOM, BOOM, MBF, etc.) tout en proposant de puissantes fonctionnalités telles que de nouvelles façons de concevoir les niveaux (portails liés, 3DMidTex, polyobjets, etc.) et des capacités de modding (grâce au langage de définition EDF). Chaque nouvelle fonctionnalité que nous ajoutons est testée pour ne pas affecter ce qui existe déjà.

L'objectif d'Eternity, qui le différencie des portages de fonctionnalités tels que GZDoom, est une compatibilité démo similaire à celle de PrBoom+, conservée spécifiquement pour s'assurer que chaque nouvelle fonctionnalité que nous ajoutons s'intègre parfaitement à ce qui existe déjà, et que nous ne nous éloignons pas des bases établies jusqu'à présent dans le gameplay de DOOM.

Le support d'Heretic se développe, mais il est encore en cours. Bien que nous ne prenions pas encore en charge les démos vanilla Heretic pour la lecture, une possibilité existe à l'horizon.


Caractéristiques principales

Moteur Cardboard
Cardboard est un moteur de rendu à virgule flottante créé par SoM qui corrige plusieurs problèmes inhérents au moteur de rendu classique à virgule fixe de Doom.

EDF
EDF, qui signifie Eternity Definition Files, est un langage d'entrée textuel qui permet de spécifier presque toutes les données statiques du jeu qui étaient autrefois contenues dans l'exécutable. Cela inclut les types de choses, les frames, les sprites, les définitions de terrain, et plus encore. EDF a une syntaxe détendue de type C et peut être utilisé à partir de fichiers et de morceaux de WAD.

ExtraData
ExtraData est un autre langage de spécification de données de type EDF qui permet d'étendre le format de carte Doom avec n'importe quel type de données. L'utilisation de types spéciaux de choses, de lignes et de secteurs dans une carte permet à l'éditeur d'attacher des enregistrements ExtraData à ces objets. Des données spéciales pour les objets sont alors fournies dans le script.

Portails liés
Les portails liés sont des surfaces qui, comme les portails ordinaires, relient différentes zones de la carte, mais qui peuvent en outre être traversées, ce qui permet de concevoir des cartes à plusieurs étages dans Doom.

MapInfo
Eternity étend de manière significative le système d'information sur les niveaux de SMMU, en permettant de spécifier des dizaines de nouvelles propriétés, et en autorisant l'utilisation en cascade de lumps EMAPINFO globaux comme alternative à l'insertion de données MapInfo dans les en-têtes de niveaux. Entre autres choses, MapInfo est utilisé pour lier les scripts ExtraData et ACS aux cartes qui les utilisent.


Histoire

The Eternity Engine a vu le jour en 1998 sous la forme d'une simple modification de Boom destinée à alimenter Eternity TC, qui était à l'époque un projet nouveau et actif. Lorsque Lee Killough a commencé le projet MBF, James "Quasar" Haley est devenu un bêta-testeur après avoir envoyé un e-mail à Lee pour lui poser des questions sur les premières versions alpha de Doom. Le projet Eternity est passé à une base de code MBF après la première version de ce portage.

À la fin de 1999, Fraggle a publié la version 3.10 de son portage source SMMU basé sur MBF, qui contenait le support du nouveau langage de script FraggleScript. Bien que l'activité des éditeurs dans le projet Eternity TC ait régulièrement chuté jusqu'à presque rien, Quasar était toujours intéressé par le développement du code associé à ce projet. Ayant besoin de fonctionnalités telles que les scripts et la console, il a alors déplacé le code du projet Eternity dans SMMU.

Malgré cette longue histoire de sauts entre les ports basés sur Boom, aucune version publique d'Eternity basée sur un autre portage que SMMU n'a jamais été faite. La première alpha privée, distribuée à un petit nombre de bêta-testeurs, était dérivée de SMMU 3.21 avec des modifications sélectionnées de la 3.30. Pour cette raison, Eternity a commencé à la version 3.29.

Après la sortie du projet Caverns of Darkness, qui utilisait une version personnalisée d'Eternity Engine v3.29 Development Beta 5, le projet a commencé à attirer l'attention. Un deuxième programmeur, Steven "SoM" McGranahan, a rejoint le projet et s'est immédiatement mis au travail pour porter le code afin d'utiliser SDL, le rendant capable de fonctionner sur de nombreux systèmes d'exploitation, y compris Windows.

Le jeu est maintenant compatible avec l'UDMF et dispose d'un système d'armes et d'inventaire dynamique. Il prend en charge les portails liés pour un jeu complet de pièce à pièce. Les principaux objectifs actuels du moteur sont de compléter le support d'Heretic.