git-subtree-dir: external/entt/entt git-subtree-split: fef921132cae7588213d0f9bcd2fb9c8ffd8b7fc
16 KiB
EnTT in Action
EnTT
is widely used in private and commercial applications. I cannot even
mention most of them because of some signatures I put on some documents time
ago. Fortunately, there are also people who took the time to implement open
source projects based on EnTT
and didn't hold back when it came to documenting
them.
Below an incomplete list of games, applications and articles that can be used as
a reference. Where I put the word apparently means that the use of EnTT
is
documented but the authors didn't make explicit announcements or contacted me
directly.
I hope this list can grow much more in the future:
-
Games:
- Minecraft by Mojang: of course, that Minecraft, see the open source attributions page for more details.
- Minecraft Earth by Mojang: an augmented reality game for mobile, that lets users bring Minecraft into the real world.
- Ember Sword: a modern Free-to-Play MMORPG with a player-driven economy, a classless combat system, and scarce, tradable cosmetic collectibles.
- Apparently Diablo II: Resurrected by Blizzard: monsters, heroes, items, spells, all resurrected. Thanks unknown insider.
- Apparently Call of Duty: Vanguard by Sledgehammer Games: I can neither confirm nor deny but there is a license I know in the credits.
- Apparently D&D Dark Alliance by Wizards of the Coast: your party, their funeral.
- TiltedOnline by Tilted Phoques: Skyrim and Fallout 4 mod to play online.
- Antkeeper: an ant colony simulation game.
- Openblack: open source reimplementation of the game Black & White (2001).
- Land of the Rair: the new backend of a retro-style MUD for the new age.
- Face Smash: a game to play with your face.
- EnTT Pacman: an example of how
to make Pacman with
EnTT
. - Wacman: a pacman clone with OpenGL.
- Classic Tower Defence: a tiny little tower defence game featuring a homemade font. Check it out.
- The Machine: a box pushing puzzler with logic gates and other cool stuff. Check it out.
- EnTTPong: a basic game made to showcase
different parts of
EnTT
and C++17. - Randballs: simple
SFML
andEnTT
playground. - EnTT Tower Defense: a data oriented tower defense example.
- EnTT Breakout: simple
example of a breakout game, using
SDL
andEnTT
. - Arcade puzzle game with EnTT:
arcade puzzle game made in C++ using the
SDL2
andEnTT
libraries. - Snake with EnTT: simple snake game
made in C++ with the
SDL2
andEnTT
libraries. - Mirrors lasers and robots: a small tower defense game based on mirror orientation.
- PopHead: 2D, Zombie, RPG game made from scratch in C++.
- Robotligan: multiplayer football game.
- DungeonSlayer: 2D game made from scratch in C++.
- 3DGame: 2.5D top-down space shooter.
- Pulcher: 2D cross-platform game inspired by Quake.
- Destroid: one-bazillionth arcade game about shooting dirty rocks in space, inspired by Asteroids.
- Wanderer: a 2D exploration based indie game.
- Spelunky<AE> Classic remake: a truly multiplatform experience with a rewrite from scratch.
- CubbyTower: a simple tower defense game using C++ with Entity Component System (ECS).
- Runeterra: Legends of Runeterra simulator using C++ with some reinforcement learning.
- Black Sun: fly your space ship through a large 2D open world.
- PokeMaster: Pokemon Battle simulator using C++ with some reinforcement learning.
- HomeHearth: choose your hero, protect the town, before it's too late.
- City Builder Game: a simple city-building game using C++ and OpenGL.
- BattleSub: two player 2D submarine game with some fluid dynamics.
- Crimson Rush: a dungeon-crawler and rougelike inspired game about exploring and surviving as long as possible.
- Space Fight: one screen multi-player arcade shooter game prototype.
- Confetti Party: C++ sample
application as a starting point using
EnTT
andSDL2
.
-
Engines and the like:
- Aether Engine v1.1+ by Hadean: a library designed for spatially partitioning agent-based simulations.
- Fling Engine: a Vulkan game engine with a focus on data oriented design.
- NovusCore: a modern take on World of Warcraft emulation.
- Chrysalis: action RPG SDK for CRYENGINE games.
- LM-Engine: the Vim of game engines.
- Edyn: a real-time physics engine organized as an ECS.
- MushMachine: engine... vrooooommm.
- Antara Gaming SDK: the Komodo Gaming Software Development Kit.
- XVP: eXpansive Vehicle Physics plugin for Unreal Engine.
- Apparently Wisp by Team Wisp: an advanced real-time ray tracing renderer built for the demands of video game artists.
- shiva: modern C++ engine with modularity.
- ImGui/EnTT editor:
a drop-in, single-file entity editor for
EnTT
that usesImGui
as graphical backend (with demo code). - SgOgl: a game engine library for OpenGL developed for educational purposes.
- Lumos: game engine written in C++ using OpenGL and Vulkan.
- Silvanus: Silvanus Fusion 360 Box Generator.
- Lina Engine: an open-source, modular, tiny and fast C++ game engine, aimed to develop 3D desktop games.
- Spike: a powerful game engine which can run on a toaster.
- Helena Framework: a modern framework in C++17 for backend development.
- Unity/EnTT: tech demo of a
native simulation layer using
EnTT
andUnity
as a rendering engine. - OverEngine: an over-engineered game engine.
- Electro: high performance 3D game engine with a high emphasis on rendering.
- Kawaii: a modern data oriented game engine.
- Becketron: a game engine written mostly in C++.
- Spatial Engine: a cross-platform engine created on top of google's filament rendering engine.
- Kaguya: D3D12 Rendering Engine.
- OpenAWE: open implementation of the Alan Wake Engine.
- Nazara Engine: fast, cross-platform, object-oriented API to help in daily developer life.
- Billy Engine: some kind of a 2D
engine based on
SDL2
andEnTT
. - Ducktape: an open source C++ 2D & 3D game engine that focuses on being fast and powerful.
-
Articles, videos and blog posts:
- Some posts on my personal
blog are about
EnTT
, for those who want to know more on this project. - Game Engine series by
The Cherno (not only about
EnTT
but also on the use of an ECS in general):- Intro to EnTT.
- Entities and Components.
- The ENTITY Class.
- Camera Systems.
- Scene Camera.
- Native Scripting.
- Native Scripting (now with virtual functions!).
- Scene Hierarchy Panel.
- Properties Panel.
- Camera Component UI.
- Drawing Component UI.
- Transform Component UI.
- Adding/Removing Entities and Components UI.
- Saving and Loading Scenes.
- ... And so on. Check out the Game Engine Series by The Cherno for more videos.
- Space Battle: Huge edition: huge space battle built entirely from scratch.
- Space Battle: huge space
battle built on
UE4
. - Experimenting with ECS in UE4:
interesting article about
UE4
andEnTT
. - Implementing ECS architecture in UE4: giant space battle.
- Conan Adventures (SFML and EnTT in C++):
create projects in modern C++ using
SFML
,EnTT
,Conan
andCMake
. - Adding EnTT ECS to Chrysalis:
a blog entry (and its
follow-up)
about the integration of
EnTT
intoChrysalis
, an action RPG SDK for CRYENGINE games. - Creating Minecraft in One Week with C++ and Vulkan: a crack at recreating Minecraft in one week using a custom C++ engine and Vulkan (code included).
- Ability Creator: project retrospect by Eric Hildebrand.
- EnTT Entity Component System Gaming Library:
EnTT
on GameFromScratch.com. - Custom C++ server for UE5 optimized for MMO(RPG)s and its follow-up episode about player bots and full external ECS: a series definitely worth looking at.
- Some posts on my personal
blog are about
-
Any Other Business:
- ArcGIS Runtime SDKs by
Esri: they use
EnTT
for the internal ECS and the cross platform C++ rendering engine. The SDKs are utilized by a lot of enterprise custom apps, as well as by Esri for its own public applications such as Explorer, Collector and Navigator. - FASTSUITE Edition 2
by Cenit: they use
EnTT
to drive their simulation, that is, the communication between robot controller emulator and renderer. - Ragdoll: real-time physics for Autodesk Maya 2020.
- Project Lagrange: a robust geometry processing library by Adobe.
- AtomicDEX: a secure wallet and non-custodial decentralized exchange rolled into one application.
- Apparently
NIO: there was a collaboration to make some changes
to
EnTT
, at the time used for internal projects. - Apparently
Tieto: they published a job post where
EnTT
was listed on their software stack. - Sequentity: A MIDI-like
sequencer/tracker for C++ and
ImGui
(withMagnum
andEnTT
). - EnTT meets Sol2: freely
available examples of how to combine
EnTT
andSol2
. - Godot meets EnTT:
a simple example on how to use
EnTT
withinGodot
. - Godot and GameNetworkingSockets meet EnTT:
a simple example on how to use
EnTT
andGameNetworkingSockets
withinGodot
. - MatchOneEntt: port of
Match One for
Entitas-CSharp
. - GitHub contains also
many other examples
of use of
EnTT
from which to take inspiration if interested.
- ArcGIS Runtime SDKs by
Esri: they use
If you know of other resources out there that are about EnTT
, feel free to
open an issue or a PR and I'll be glad to add them to this page.