🛠️🐜 Antkeeper superbuild with dependencies included https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

251 lines
15 KiB

  1. # EnTT in Action
  2. `EnTT` is widely used in private and commercial applications. I cannot even
  3. mention most of them because of some signatures I put on some documents time
  4. ago. Fortunately, there are also people who took the time to implement open
  5. source projects based on `EnTT` and didn't hold back when it came to documenting
  6. them.
  7. Below an incomplete list of games, applications and articles that can be used as
  8. a reference. Where I put the word _apparently_ means that the use of `EnTT` is
  9. documented but the authors didn't make explicit announcements or contacted me
  10. directly.
  11. I hope this list can grow much more in the future:
  12. * Games:
  13. * [Minecraft](https://minecraft.net/en-us/attribution/) by
  14. [Mojang](https://mojang.com/): of course, **that** Minecraft, see the
  15. open source attributions page for more details.
  16. * [Minecraft Earth](https://www.minecraft.net/en-us/about-earth) by
  17. [Mojang](https://mojang.com/): an augmented reality game for mobile, that
  18. lets users bring Minecraft into the real world.
  19. * [Ember Sword](https://embersword.com/): a modern Free-to-Play MMORPG with a
  20. player-driven economy, a classless combat system, and scarce, tradable
  21. cosmetic collectibles.
  22. * Apparently [Diablo II: Resurrected](https://diablo2.blizzard.com/) by
  23. [Blizzard](https://www.blizzard.com/): monsters, heroes, items, spells, all
  24. resurrected. Thanks unknown insider.
  25. * [Apparently](https://www.youtube.com/watch?v=P8xvOA3ikrQ&t=1105s)
  26. [Call of Duty: Vanguard](https://www.callofduty.com/vanguard) by
  27. [Sledgehammer Games](https://www.sledgehammergames.com/): I can neither
  28. confirm nor deny but there is a license I know in the credits.
  29. * Apparently [D&D Dark Alliance](https://darkalliance.wizards.com) by
  30. [Wizards of the Coast](https://company.wizards.com): your party, their
  31. funeral.
  32. * [TiltedOnline](https://github.com/tiltedphoques/TiltedOnline) by
  33. [Tilted Phoques](https://github.com/tiltedphoques): Skyrim and Fallout 4 mod
  34. to play online.
  35. * [Antkeeper](https://github.com/antkeeper/antkeeper-source): an ant colony
  36. simulation [game](https://antkeeper.com/).
  37. * [Openblack](https://github.com/openblack/openblack): open source
  38. reimplementation of the game _Black & White_ (2001).
  39. * [Land of the Rair](https://github.com/LandOfTheRair/core2): the new backend
  40. of [a retro-style MUD](https://rair.land/) for the new age.
  41. * [Face Smash](https://play.google.com/store/apps/details?id=com.gamee.facesmash):
  42. a game to play with your face.
  43. * [EnTT Pacman](https://github.com/Kerndog73/EnTT-Pacman): an example of how
  44. to make Pacman with `EnTT`.
  45. * [Wacman](https://github.com/carlfindahl/wacman): a pacman clone with OpenGL.
  46. * [Classic Tower Defence](https://github.com/kerndog73/Classic-Tower-Defence):
  47. a tiny little tower defence game featuring a homemade font.
  48. [Check it out](https://indi-kernick.itch.io/classic-tower-defence).
  49. * [The Machine](https://github.com/Kerndog73/The-Machine): a box pushing
  50. puzzler with logic gates and other cool stuff.
  51. [Check it out](https://indi-kernick.itch.io/the-machine-web-version).
  52. * [EnTTPong](https://github.com/DomRe/EnttPong): a basic game made to showcase
  53. different parts of EnTT and C++17.
  54. * [Randballs](https://github.com/gale93/randballs): simple `SFML` and `EnTT`
  55. playground.
  56. * [EnTT Tower Defense](https://github.com/Daivuk/tddod): a data oriented tower
  57. defense example.
  58. * [EnTT Breakout](https://github.com/vblanco20-1/entt-breakout): simple
  59. example of a breakout game, using `SDL` and `EnTT`.
  60. * [Arcade puzzle game with EnTT](https://github.com/MasonRG/ArcadePuzzleGame):
  61. arcade puzzle game made in C++ using the `SDL2` and `EnTT` libraries.
  62. * [Snake with EnTT](https://github.com/MasonRG/SnakeGame): simple snake game
  63. made in C++ with the `SDL2` and `EnTT` libraries.
  64. * [Mirrors lasers and robots](https://github.com/guillaume-haerinck/imac-tower-defense):
  65. a small tower defense game based on mirror orientation.
  66. * [PopHead](https://github.com/SPC-Some-Polish-Coders/PopHead/): 2D, Zombie,
  67. RPG game made from scratch in C++.
  68. * [Robotligan](https://github.com/Trisslotten/robotligan): multiplayer
  69. football game.
  70. * [DungeonSlayer](https://github.com/alohaeee/DungeonSlayer): 2D game made
  71. from scratch in C++.
  72. * [3DGame](https://github.com/kwarkGorny/3DGame): 2.5D top-down space shooter.
  73. * [Pulcher](https://github.com/AODQ/pulcher): 2D cross-platform game inspired
  74. by Quake.
  75. * [Destroid](https://github.com/tyrannicaltoucan/destroid): _one-bazillionth_
  76. arcade game about shooting dirty rocks in space, inspired by Asteroids.
  77. * [Wanderer](https://github.com/albin-johansson/wanderer): a 2D exploration
  78. based indie game.
  79. * [Spelunky� Classic remake](https://github.com/dbeef/spelunky-psp): a truly
  80. multiplatform experience with a rewrite from scratch.
  81. * [CubbyTower](https://github.com/utilForever/CubbyTower): a simple tower
  82. defense game using C++ with Entity Component System (ECS).
  83. * [Runeterra](https://github.com/utilForever/Runeterra): Legends of Runeterra
  84. simulator using C++ with some reinforcement learning.
  85. * [Black Sun](https://store.steampowered.com/app/1670930/Black_Sun/): fly your
  86. space ship through a large 2D open world.
  87. * [PokeMaster](https://github.com/utilForever/PokeMaster): Pokemon Battle
  88. simulator using C++ with some reinforcement learning.
  89. * [HomeHearth](https://youtu.be/GrEWl8npL9Y): choose your hero, protect the
  90. town, before it's too late.
  91. * [City Builder Game](https://github.com/PhiGei2000/CityBuilderGame): a simple
  92. city-building game using C++ and OpenGL.
  93. * Engines and the like:
  94. * [Aether Engine](https://hadean.com/spatial-simulation/)
  95. [v1.1+](https://docs.hadean.com/v1.1/Licenses/) by
  96. [Hadean](https://hadean.com/): a library designed for spatially partitioning
  97. agent-based simulations.
  98. * [Fling Engine](https://github.com/flingengine/FlingEngine): a Vulkan game
  99. engine with a focus on data oriented design.
  100. * [NovusCore](https://github.com/novuscore/NovusCore): a modern take on World
  101. of Warcraft emulation.
  102. * [Chrysalis](https://github.com/ivanhawkes/Chrysalis): action RPG SDK for
  103. CRYENGINE games.
  104. * [LM-Engine](https://github.com/Lawrencemm/LM-Engine): the Vim of game
  105. engines.
  106. * [Edyn](https://github.com/xissburg/edyn): a real-time physics engine
  107. organized as an ECS.
  108. * [MushMachine](https://github.com/MadeOfJelly/MushMachine): engine...
  109. vrooooommm.
  110. * [Antara Gaming SDK](https://github.com/KomodoPlatform/antara-gaming-sdk):
  111. the Komodo Gaming Software Development Kit.
  112. * [XVP](https://ravingbots.com/xvp-expansive-vehicle-physics-for-unreal-engine/):
  113. [_eXpansive Vehicle Physics_](https://github.com/raving-bots/xvp/wiki/Plugin-integration-guide)
  114. plugin for Unreal Engine.
  115. * [Apparently](https://teamwisp.github.io/credits/)
  116. [Wisp](https://teamwisp.github.io/product/) by
  117. [Team Wisp](https://teamwisp.github.io/): an advanced real-time ray tracing
  118. renderer built for the demands of video game artists.
  119. * [shiva](https://github.com/Milerius/shiva): modern C++ engine with
  120. modularity.
  121. * [ImGui/EnTT editor](https://github.com/Green-Sky/imgui_entt_entity_editor):
  122. a drop-in, single-file entity editor for `EnTT` that uses `ImGui` as
  123. graphical backend (with
  124. [demo code](https://github.com/Green-Sky/imgui_entt_entity_editor_demo)).
  125. * [SgOgl](https://github.com/stwe/SgOgl): a game engine library for OpenGL
  126. developed for educational purposes.
  127. * [Lumos](https://github.com/jmorton06/Lumos): game engine written in C++
  128. using OpenGL and Vulkan.
  129. * [Silvanus](https://github.com/hobbyistmaker/silvanus): Silvanus Fusion 360
  130. Box Generator.
  131. * [Lina Engine](https://github.com/inanevin/LinaEngine): an open-source,
  132. modular, tiny and fast C++ game engine, aimed to develop 3D desktop games.
  133. * [Spike](https://github.com/FahimFuad/Spike): a powerful game engine which
  134. can run on a toaster.
  135. * [Helena Framework](https://github.com/NIKEA-SOFT/HelenaFramework): a modern
  136. framework in C++17 for backend development.
  137. * [Unity/EnTT](https://github.com/TongTungGiang/unity-entt): tech demo of a
  138. native simulation layer using `EnTT` and `Unity` as a rendering engine.
  139. * [OverEngine](https://github.com/OverShifted/OverEngine): an over-engineered
  140. game engine.
  141. * [Electro](https://github.com/Electro-Technologies/Electro): high performance
  142. 3D game engine with a high emphasis on rendering.
  143. * [Kawaii](https://github.com/Mathieu-Lala/Kawaii_Engine): a modern data
  144. oriented game engine.
  145. * [Becketron](https://github.com/Doctor-Foxling/Becketron): a game engine
  146. written mostly in C++.
  147. * [Spatial Engine](https://github.com/luizgabriel/Spatial.Engine): a
  148. cross-platform engine created on top of google's filament rendering engine.
  149. * [Kaguya](https://github.com/KaiH0717/Kaguya): D3D12 Rendering Engine.
  150. * [OpenAWE](https://github.com/OpenAWE-Project/OpenAWE): open implementation
  151. of the Alan Wake Engine.
  152. * [Nazara Engine](https://github.com/DigitalPulseSoftware/NazaraEngine): fast,
  153. cross-platform, object-oriented API to help in daily developer life.
  154. * Articles, videos and blog posts:
  155. * [Some posts](https://skypjack.github.io/tags/#entt) on my personal
  156. [blog](https://skypjack.github.io/) are about `EnTT`, for those who want to
  157. know **more** on this project.
  158. * [Game Engine series](https://www.youtube.com/c/TheChernoProject/videos) by
  159. [The Cherno](https://github.com/TheCherno) (not only about `EnTT` but also
  160. on the use of an ECS in general):
  161. - [Intro to EnTT](https://www.youtube.com/watch?v=D4hz0wEB978).
  162. - [Entities and Components](https://www.youtube.com/watch?v=-B1iu4QJTUc).
  163. - [The ENTITY Class](https://www.youtube.com/watch?v=GfSzeAcsBb0).
  164. - [Camera Systems](https://www.youtube.com/watch?v=ubZn7BlrnTU).
  165. - [Scene Camera](https://www.youtube.com/watch?v=UKVFRRufKzo).
  166. - [Native Scripting](https://www.youtube.com/watch?v=iIUhg88MK5M).
  167. - [Native Scripting (now with virtual functions!)](https://www.youtube.com/watch?v=1cHEcrIn8IQ).
  168. - [Scene Hierarchy Panel](https://www.youtube.com/watch?v=wziDnE8guvI).
  169. - [Properties Panel](https://www.youtube.com/watch?v=NBpB0qscF3E).
  170. - [Camera Component UI](https://www.youtube.com/watch?v=RIMt_6agUiU).
  171. - [Drawing Component UI](https://www.youtube.com/watch?v=u3yq8s3KuSE).
  172. - [Transform Component UI](https://www.youtube.com/watch?v=8JqcXYbzPJc).
  173. - [Adding/Removing Entities and Components UI](https://www.youtube.com/watch?v=PsyGmsIgp9M).
  174. - [Saving and Loading Scenes](https://www.youtube.com/watch?v=IEiOP7Y-Mbc).
  175. - ... And so on.
  176. [Check out](https://www.youtube.com/channel/UCQ-W1KE9EYfdxhL6S4twUNw) the
  177. _Game Engine Series_ by The Cherno for more videos.
  178. * [Space Battle: Huge edition](http://victor.madtriangles.com/code%20experiment/2018/06/11/post-ecs-battle-huge.html):
  179. huge space battle built entirely from scratch.
  180. * [Space Battle](https://github.com/vblanco20-1/ECS_SpaceBattle): huge space
  181. battle built on `UE4`.
  182. * [Experimenting with ECS in UE4](http://victor.madtriangles.com/code%20experiment/2018/03/25/post-ue4-ecs-battle.html):
  183. interesting article about `UE4` and `EnTT`.
  184. * [Implementing ECS architecture in UE4](https://forums.unrealengine.com/development-discussion/c-gameplay-programming/1449913-implementing-ecs-architecture-in-ue4-giant-space-battle):
  185. giant space battle.
  186. * [Conan Adventures (SFML and EnTT in C++)](https://leinnan.github.io/blog/conan-adventuressfml-and-entt-in-c.html):
  187. create projects in modern C++ using `SFML`, `EnTT`, `Conan` and `CMake`.
  188. * [Adding EnTT ECS to Chrysalis](https://www.tauradius.com/post/adding-an-ecs-to-chrysalis/):
  189. a blog entry (and its
  190. [follow-up](https://www.tauradius.com/post/chrysalis-update-2020-08-02/))
  191. about the integration of `EnTT` into `Chrysalis`, an action RPG SDK for
  192. CRYENGINE games.
  193. * [Creating Minecraft in One Week with C++ and Vulkan](https://vazgriz.com/189/creating-minecraft-in-one-week-with-c-and-vulkan/):
  194. a crack at recreating Minecraft in one week using a custom C++ engine and
  195. Vulkan ([code included](https://github.com/vazgriz/VoxelGame)).
  196. * [Ability Creator](https://www.erichildebrand.net/blog/ability-creator-project-retrospect):
  197. project retrospect by [Eric Hildebrand](https://www.erichildebrand.net/).
  198. * [EnTT Entity Component System Gaming Library](https://gamefromscratch.com/entt-entity-component-system-gaming-library/):
  199. `EnTT` on GameFromScratch.com.
  200. * Any Other Business:
  201. * [ArcGIS Runtime SDKs](https://developers.arcgis.com/arcgis-runtime/) by
  202. [Esri](https://www.esri.com/): they use `EnTT` for the internal ECS and the
  203. cross platform C++ rendering engine. The SDKs are utilized by a lot of
  204. enterprise custom apps, as well as by Esri for its own public applications
  205. such as
  206. [Explorer](https://play.google.com/store/apps/details?id=com.esri.explorer),
  207. [Collector](https://play.google.com/store/apps/details?id=com.esri.arcgis.collector)
  208. and
  209. [Navigator](https://play.google.com/store/apps/details?id=com.esri.navigator).
  210. * [FASTSUITE Edition 2](https://www.fastsuite.com/en_EN/fastsuite/fastsuite-edition-2.html)
  211. by [Cenit](http://www.cenit.com/en_EN/about-us/overview.html): they use
  212. `EnTT` to drive their simulation, that is, the communication between robot
  213. controller emulator and renderer.
  214. * [Ragdoll](https://ragdolldynamics.com/): real-time physics for Autodesk Maya
  215. 2020.
  216. * [Project Lagrange](https://github.com/adobe/lagrange): a robust geometry
  217. processing library by [Adobe](https://github.com/adobe).
  218. * [AtomicDEX](https://github.com/KomodoPlatform/atomicDEX-Desktop): a secure
  219. wallet and non-custodial decentralized exchange rolled into one application.
  220. * [Apparently](https://www.linkedin.com/in/skypjack/)
  221. [NIO](https://www.nio.io/): there was a collaboration to make some changes
  222. to `EnTT`, at the time used for internal projects.
  223. * [Apparently](https://www.linkedin.com/jobs/view/architekt-c%2B%2B-at-tieto-1219512333/)
  224. [Tieto](https://www.tieto.com/): they published a job post where `EnTT` was
  225. listed on their software stack.
  226. * [Sequentity](https://github.com/alanjfs/sequentity): A MIDI-like
  227. sequencer/tracker for C++ and `ImGui` (with `Magnum` and `EnTT`).
  228. * [EnTT meets Sol2](https://github.com/skaarj1989/entt-meets-sol2): freely
  229. available examples of how to combine `EnTT` and `Sol2`.
  230. * [Godot meets EnTT](https://github.com/portaloffreedom/godot_entt_example/):
  231. a simple example on how to use `EnTT` within
  232. [`Godot`](https://godotengine.org/).
  233. * [Godot and GameNetworkingSockets meet EnTT](https://github.com/portaloffreedom/godot_entt_net_example):
  234. a simple example on how to use `EnTT` and
  235. [`GameNetworkingSockets`](https://github.com/ValveSoftware/GameNetworkingSockets)
  236. within [`Godot`](https://godotengine.org/).
  237. * [MatchOneEntt](https://github.com/mhaemmerle/MatchOneEntt): port of
  238. [Match One](https://github.com/sschmid/Match-One) for `Entitas-CSharp`.
  239. * GitHub contains also
  240. [many other examples](https://github.com/search?o=desc&q=%22skypjack%2Fentt%22&s=indexed&type=Code)
  241. of use of `EnTT` from which to take inspiration if interested.
  242. If you know of other resources out there that are about `EnTT`, feel free to
  243. open an issue or a PR and I'll be glad to add them to this page.