├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # awesome-ecs 2 | :sunglasses: A curated list of Entity-Component-System (ECS) libraries and resources 3 | 4 | ## ECS Libraries 5 | 6 | #### C/C++ 7 | 8 | * __anax__ - Open source C++ entity system [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/miguelmartin75/anax) ![miguelmartin75/anax](https://img.shields.io/github/stars/miguelmartin75/anax.svg?style=flat&label=Star&maxAge=86400) 9 | * __ECS__ - C++ single-header entity component system library [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/redxdev/ECS) ![redxdev/ECS](https://img.shields.io/github/stars/redxdev/ECS.svg?style=flat&label=Star&maxAge=86400) 10 | * __ecs.hpp__ - A single header C++14 entity component system library [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/BlackMATov/ecs.hpp) ![BlackMATov/ecs.hpp](https://img.shields.io/github/stars/BlackMATov/ecs.hpp.svg?style=flat&label=Star&maxAge=86400) 11 | * __ecst__ - Experimental C++14 multithreaded compile-time entity-compnent-system library [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/SuperV1234/ecst) ![SuperV1234/ecst](https://img.shields.io/github/stars/SuperV1234/ecst.svg?style=flat&label=Star&maxAge=86400) 12 | * __EntityFu__ - A simple, fast entity component system written in C++ [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/NatWeiss/EntityFu) ![NatWeiss/EntityFu](https://img.shields.io/github/stars/NatWeiss/EntityFu.svg?style=flat&label=Star&maxAge=86400) 13 | * __EntityPlus__ - C++14 entity component system [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/Yelnats321/EntityPlus) ![Yelnats321/EntityPlus](https://img.shields.io/github/stars/Yelnats321/EntityPlus.svg?style=flat&label=Star&maxAge=86400) 14 | * __EntityX__ - Fast, type-safe C++ entity component system [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/alecthomas/entityx) ![alecthomas/entityx](https://img.shields.io/github/stars/alecthomas/entityx.svg?style=flat&label=Star&maxAge=86400) 15 | * __entt__ - Fast and reliable entity-component system [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/skypjack/entt) ![skypjack/entt](https://img.shields.io/github/stars/skypjack/entt.svg?style=flat&label=Star&maxAge=86400) 16 | * __Flecs__ - A Multithreaded Entity Component System written for C89 & C99 [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/SanderMertens/flecs) ![SanderMertens/flecs](https://img.shields.io/github/stars/SanderMertens/flecs.svg?style=flat&label=Star&maxAge=86400) 17 | * __Gaia-ECS__ - Fast and type-safe C++17 archetype-based entity component system [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/richardbiely/gaia-ecs) ![richardbiely/gaia-ecs](https://img.shields.io/github/stars/richardbiely/gaia-ecs.svg?style=flat&label=Star&maxAge=86400) 18 | * __Ginseng__ - An ESC library designed for use in games [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/apples/ginseng) ![apples/ginseng](https://img.shields.io/github/stars/apples/ginseng.svg?style=flat&label=Star&maxAge=86400) 19 | * __goomy__ - A tiny, experimental ECS framework [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/vberlier/goomy) ![vberlier/goomy](https://img.shields.io/github/stars/vberlier/goomy.svg?style=flat&label=Star&maxAge=86400) 20 | * __Kengine__ - Game engine with an Entity-Component-System (ECS) architecture [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/phisko/kengine) ![phisko/kengine](https://img.shields.io/github/stars/phisko/kengine.svg?style=flat&label=Star&maxAge=86400) 21 | * __matter__ - C++17/20 ECS implementation [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/Dreyri/matter) ![Dreyri/matter](https://img.shields.io/github/stars/Dreyri/matter.svg?style=flat&label=Star&maxAge=86400) 22 | * __mustache__ - A fast, modern C++ entity component system [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/kirillochnev/mustache) ![kirillochnev/mustache](https://img.shields.io/github/stars/kirillochnev/mustache.svg?style=flat&label=Star&maxAge=86400) 23 | * __pico_ecs__ - Single-header and cross-platform ECS [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/empyreanx/pico_headers) ![empyreanx/pico_headers](https://img.shields.io/github/stars/empyreanx/pico_headers.svg?style=flat&label=Star&maxAge=86400) 24 | 25 | #### C# 26 | 27 | * __Arch__ - A high-performance Archetype & Chunks Entity Component System for game development and data-oriented programming [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/genaray/Arch) ![genaray/Arch](https://img.shields.io/github/stars/genaray/Arch.svg?style=flat&label=Star&maxAge=86400) 28 | * __DefaultEcs__ - ECS for syntax and usage simplicity with maximum performance [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/Doraku/DefaultEcs) ![Doraku/DefaultEcs](https://img.shields.io/github/stars/Doraku/DefaultEcs.svg?style=flat&label=Star&maxAge=86400) 29 | * __DragonECS__ - ECS for Unity and .NET [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/DCFApixels/DragonECS) ![DCFApixels/DragonECS](https://img.shields.io/github/stars/DCFApixels/DragonECS.svg?style=flat&label=Star&maxAge=86400) 30 | * __Entitas__ - The Entity Component System Framework for C# and Unity [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/sschmid/Entitas) ![sschmid/Entitas](https://img.shields.io/github/stars/sschmid/Entitas.svg?style=flat&label=Star&maxAge=86400) 31 | * __Frent__ - Data oriented ECF with an ECS api for C#, Godot, and Unity [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/itsBuggingMe/Frent) ![sschmid/Entitas](https://img.shields.io/github/stars/itsBuggingMe/Frent.svg?style=flat&label=Star&maxAge=86400) 32 | * __Friflo Engine ECS__ - ECS for .NET with focus on performance, cache locality and DX [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/friflo/Friflo.Json.Fliox/tree/main/Engine) ![friflo/Friflo.Json.Fliox](https://img.shields.io/github/stars/friflo/Friflo.Json.Fliox.svg?style=flat&label=Star&maxAge=86400) 33 | * __LeoEcsLite__ - Lightweight C# Entity Component System framework [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/LeoECSCommunity/ecslite) ![LeoECSCommunity/ecslite](https://img.shields.io/github/stars/LeoECSCommunity/ecslite.svg?style=flat&label=Star&maxAge=86400) 34 | * __ME.BECS__ - ECS for Unity with full game state automatic rollbacks [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/chromealex/ME.BECS) ![chromealex/ME.BECS](https://img.shields.io/github/stars/chromealex/ME.BECS.svg?style=flat&label=Star&maxAge=86400) 35 | * __Morpeh__ - ECS Framework for Unity Game Engine and .NET Platform [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/scellecs/morpeh) ![scellecs/morpeh](https://img.shields.io/github/stars/scellecs/morpeh.svg?style=flat&label=Star&maxAge=86400) 36 | * __Svelto.ECS__ - Lightweight data oriented entity component system framework [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/sebas77/Svelto.ECS) ![sebas77/Svelto.ECS](https://img.shields.io/github/stars/sebas77/Svelto.ECS.svg?style=flat&label=Star&maxAge=86400) 37 | * __Fennecs__ - ... the tiny, tiny, high-energy Entity-Component System! [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/outfox/fennecs) ![outfox/fennecs](https://img.shields.io/github/stars/outfox/fennecs.svg?style=flat&label=Star&maxAge=86400) 38 | * __TinyEcs__ - A tiny bevy-like archetype-style ECS library for dotnet [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/andreakarasho/TinyEcs) ![andreakarasho/TinyEcs](https://img.shields.io/github/stars/andreakarasho/TinyEcs.svg?style=flat&label=Star&maxAge=86400) 39 | 40 | #### Common Lisp 41 | 42 | * __beast__ - Basic Entity/Aspect/System Toolkit [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/sjl/beast) ![sjl/beast](https://img.shields.io/github/stars/sjl/beast.svg?style=flat&label=Star&maxAge=86400) 43 | * __cl-ecs__ - An implementation of the Entity-Component-System pattern mostly used in game development [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/bit-phlippers/cl-ecs) ![bit-phlippers/cl-ecs](https://img.shields.io/github/stars/bit-phlippers/cl-ecs.svg?style=flat&label=Star&maxAge=86400) 44 | * __cl-fast-ecs__ - Blazingly fast Entity-Component-System microframework [![GitLab](https://img.shields.io/badge/GitLab-grey)](https://gitlab.com/lockie/cl-fast-ecs) ![lockie/cl-fast-ecs](https://img.shields.io/gitlab/stars/lockie/cl-fast-ecs.svg?style=flat&label=Star&maxAge=86400) 45 | 46 | #### Dart 47 | 48 | * __Fast ECS__ - Simple and fast Entity-Component-System (ECS) library written in Dart. [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/QiXi/fast_ecs) ![QiXi/fast_ecs](https://img.shields.io/github/stars/QiXi/fast_ecs.svg?style=flat&label=Star&maxAge=86400) 49 | 50 | #### Elixir 51 | 52 | * __ECSx__ - An ECS framework for Elixir [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/ecsx-framework/ECSx) ![ecsx-framework/ECSx](https://img.shields.io/github/stars/ecsx-framework/ECSx.svg?style=flat&label=Star&maxAge=86400) 53 | 54 | #### Python 55 | 56 | * __esper__ - A lightweight Entity System for Python [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/benmoran56/esper) ![benmoran56/esper](https://img.shields.io/github/stars/benmoran56/esper.svg?style=flat&label=Star&maxAge=86400) 57 | 58 | #### Rust 59 | 60 | * __shipyard__ - Entity Component System written in Rust [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/leudz/shipyard) ![leudz/shipyard](https://img.shields.io/github/stars/leudz/shipyard.svg?style=flat&label=Star&maxAge=86400) 61 | * __specs__ - Parallel entity component system written in Rust [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/slide-rs/specs) ![slide-rs/specs](https://img.shields.io/github/stars/slide-rs/specs.svg?style=flat&label=Star&maxAge=86400) 62 | * __legion__ - High performance Rust ECS library [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/amethyst/legion) ![amethyst/legion](https://img.shields.io/github/stars/amethyst/legion.svg?style=flat&label=Star&maxAge=86400) 63 | * __bevy_ecs__ - Simple to use, ergonomic, fast, massively parallel, opinionated, and featureful written in Rust [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/bevyengine/bevy/tree/main/crates/bevy_ecs) ![bevyengine/bevy](https://img.shields.io/github/stars/bevyengine/bevy.svg?style=flat&label=Star&maxAge=86400) 64 | * __hecs__ - High-performance, minimalist entity-component-system [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/Ralith/hecs) ![Ralith/hecs](https://img.shields.io/github/stars/Ralith/hecs.svg?style=flat&label=Star&maxAge=86400) 65 | 66 | #### Go 67 | 68 | * __Arche__ - An archetype-based Entity Component System for Go [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/mlange-42/arche) ![mlange-42/arche](https://img.shields.io/github/stars/mlange-42/arche.svg?style=flat&label=Star&maxAge=86400) 69 | * __ecs__ - A Go-implementation of the Entity-Component-System paradigm [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/EngoEngine/ecs) ![EngoEngine/ecs](https://img.shields.io/github/stars/EngoEngine/ecs.svg?style=flat&label=Star&maxAge=86400) 70 | 71 | #### Lua 72 | 73 | * __Concord__ - A feature-complete ECS library [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/Keyslam-Group/Concord) ![Keyslam-Group/Concord](https://img.shields.io/github/stars/Keyslam-Group/Concord.svg?style=flat&label=Star&maxAge=86400) 74 | * __ECS Lua__ - A fast and easy to use ECS engine for game development [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/nidorx/ecs-lua) ![nidorx/ecs-lua](https://img.shields.io/github/stars/nidorx/ecs-lua.svg?style=flat&label=Star&maxAge=86400) 75 | * __Nata__ - Entity management for Lua [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/tesselode/nata) ![tesselode/nata](https://img.shields.io/github/stars/tesselode/nata.svg?style=flat&label=Star&maxAge=86400) 76 | * __tiny-ecs__ - Entity Component System for Lua that's simple, flexible, and useful [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/bakpakin/tiny-ecs) ![bakpakin/tiny-ecs](https://img.shields.io/github/stars/bakpakin/tiny-ecs.svg?style=flat&label=Star&maxAge=86400) 77 | 78 | #### Java 79 | 80 | * __Artemis-odb__ - A continuation of the popular Artemis ECS framework [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/junkdog/artemis-odb) ![junkdog/artemis-odb](https://img.shields.io/github/stars/junkdog/artemis-odb.svg?style=flat&label=Star&maxAge=86400) 81 | 82 | #### Kotlin 83 | 84 | * __Fleks__ - Fast, lightweight, multi-platform entity component system in Kotlin [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/Quillraven/Fleks) ![Quillraven/Fleks](https://img.shields.io/github/stars/Quillraven/Fleks.svg?style=flat&label=Star&maxAge=86400) 85 | 86 | #### JavaScript / Typescript 87 | 88 | * __becsy__ - A multithreaded Entity Component System (ECS) for TypeScript and JavaScript, inspired by ECSY and bitecs. [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/LastOliveGames/becsy) ![bitecs](https://img.shields.io/github/stars/LastOliveGames/becsy.svg?style=flat&label=Star&maxAge=86400) 89 | * __bitECS__ - Functional, minimal, data-oriented, ultra-high performance ECS library [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/NateTheGreatt/bitECS) ![bitecs](https://img.shields.io/github/stars/NateTheGreatt/bitecs.svg?style=flat&label=Star&maxAge=86400) 90 | * __ECSY__ - Entity Component System for javascript [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/ecsyjs/ecsy) ![ecsyjs/ecsy](https://img.shields.io/github/stars/ecsyjs/ecsy.svg?style=flat&label=Star&maxAge=86400) 91 | * __miniplex__ - The gentle game entity manager, focused on ease of use and developer experience. [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/hmans/miniplex) ![miniplex](https://img.shields.io/github/stars/hmans/miniplex.svg?style=flat&label=Star&maxAge=86400) 92 | * __Thyseus__ - An archetypal Entity Component System, built entirely in Typescript [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/JaimeGensler/thyseus) ![miniplex](https://img.shields.io/github/stars/JaimeGensler/thyseus.svg?style=flat&label=Star&maxAge=86400) 93 | 94 | #### Zig 95 | 96 | * __mach-ecs__ - Entity Component System from first-principles designed for Zig [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/hexops/mach-ecs) ![hexops/mach-ecs](https://img.shields.io/github/stars/hexops/mach-ecs.svg?style=flat&label=Star&maxAge=86400) 97 | * __Zig ECS__ - A Zig port of the fantasic Entt [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/prime31/zig-ecs) ![prime31/zig-ecs](https://img.shields.io/github/stars/prime31/zig-ecs.svg?style=flat&label=Star&maxAge=86400) 98 | 99 | #### Haskell 100 | 101 | * __apecs__ - A fast, extensible, type driven Haskell ECS framework for games [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/jonascarpay/apecs) ![jonascarpay/apecs](https://img.shields.io/github/stars/jonascarpay/apecs.svg?style=flat&label=Star&maxAge=86400) 102 | 103 | ## Applications powered by ECS 104 | 105 | ### Game Engines 106 | 107 | #### C++ 108 | 109 | * __crown__ - General purpose data-driven game engine [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/dbartolini/crown) ![dbartolini/crown](https://img.shields.io/github/stars/dbartolini/crown.svg?style=flat&label=Star&maxAge=86400) 110 | * __Engine__ - Basic cross-platform 3D game engine [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/Shervanator/Engine) ![Shervanator/Engine](https://img.shields.io/github/stars/Shervanator/Engine.svg?style=flat&label=Star&maxAge=86400) 111 | * __halley__ - A lightweight game engine written in modern C++ [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/amzeratul/halley) ![amzeratul/halley](https://img.shields.io/github/stars/amzeratul/halley.svg?style=flat&label=Star&maxAge=86400) 112 | * __igneous__ - Open source game engine written in C++ [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/MissingBitStudios/igneous) ![MissingBitStudios/igneous](https://img.shields.io/github/stars/MissingBitStudios/igneous.svg?style=flat&label=Star&maxAge=86400) 113 | * __kengine__ - Game engine focused on ease-of-use, runtime extensibility and compile-time type safety [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/phisko/kengine) ![phisko/kengine](https://img.shields.io/github/stars/phisko/kengine.svg?style=flat&label=Star&maxAge=86400) 114 | * __Lina Engine__ - Modular, tiny and fast C++ game engine, aimed to develop 3D desktop games [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/inanevin/LinaEngine) ![inanevin/LinaEngine](https://img.shields.io/github/stars/inanevin/LinaEngine.svg?style=flat&label=Star&maxAge=86400) 115 | * __Lumos__ - Cross-Platform C++ 2D/3D game engine [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/jmorton06/Lumos) ![jmorton06/Lumos](https://img.shields.io/github/stars/jmorton06/Lumos.svg?style=flat&label=Star&maxAge=86400) 116 | * __MxEngine__ - C++ open source 3D game engine [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/asc-community/MxEngine) ![asc-community/MxEngine](https://img.shields.io/github/stars/asc-community/MxEngine.svg?style=flat&label=Star&maxAge=86400) 117 | * __nebula__ - Open-source and free-to-use modern C++ game engine [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/gscept/nebula) ![gscept/nebula](https://img.shields.io/github/stars/gscept/nebula.svg?style=flat&label=Star&maxAge=86400) 118 | * __Nazara Engine__ - Cross-platform framework aimed at real-time applications requiring audio, 2D and 3D real-time rendering, network and more [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/NazaraEngine/NazaraEngine) ![NazaraEngine/NazaraEngine](https://img.shields.io/github/stars/NazaraEngine/NazaraEngine.svg?style=flat&label=Star&maxAge=86400) 119 | * __shiva__ - Modern Cross-Platform C++ Engine with modularity [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/Milerius/shiva) ![Milerius/shiva](https://img.shields.io/github/stars/Milerius/shiva.svg?style=flat&label=Star&maxAge=86400) 120 | * __Sparky__ - Cross-Platform High Performance 2D/3D game engine [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/TheCherno/Sparky) ![TheCherno/Sparky](https://img.shields.io/github/stars/TheCherno/Sparky.svg?style=flat&label=Star&maxAge=86400) 121 | * __supernova__ - Game engine for 2D and 3D projects with ECS and data-oriented design [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/supernovaengine/supernova) ![supernovaengine/supernova](https://img.shields.io/github/stars/supernovaengine/supernova.svg?style=flat&label=Star&maxAge=86400) 122 | * __Usagi__ - Hierarchical component entity system based game engine [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/vitei/Usagi) ![vitei/Usagi](https://img.shields.io/github/stars/vitei/Usagi.svg?style=flat&label=Star&maxAge=86400) 123 | * __Lumos__ - Cross-Platform C++ 2D/3D game engine [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/jmorton06/Lumos) ![jmorton06/Lumos](https://img.shields.io/github/stars/jmorton06/Lumos.svg?style=flat&label=Star&maxAge=86400) 124 | * __supernova__ - Game engine for 2D and 3D projects with ECS and data-oriented design [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/supernovaengine/supernova) ![supernovaengine/supernova](https://img.shields.io/github/stars/supernovaengine/supernova.svg?style=flat&label=Star&maxAge=86400) 125 | * __kengine__ - Game engine focused on ease-of-use, runtime extensibility and compile-time type safety [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/phisko/kengine) ![phisko/kengine](https://img.shields.io/github/stars/phisko/kengine.svg?style=flat&label=Star&maxAge=86400) 126 | * __MxEngine__ - C++ open source 3D game engine [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/asc-community/MxEngine) ![asc-community/MxEngine](https://img.shields.io/github/stars/asc-community/MxEngine.svg?style=flat&label=Star&maxAge=86400) 127 | * __nebula__ - Open-source and free-to-use modern C++ game engine [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/gscept/nebula) ![gscept/nebula](https://img.shields.io/github/stars/gscept/nebula.svg?style=flat&label=Star&maxAge=86400) 128 | * __halley__ - A lightweight game engine written in modern C++ [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/amzeratul/halley) ![amzeratul/halley](https://img.shields.io/github/stars/amzeratul/halley.svg?style=flat&label=Star&maxAge=86400) 129 | * __Nazara Engine__ - Cross-platform framework aimed at real-time applications requiring audio, 2D and 3D real-time rendering, network and more [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/NazaraEngine/NazaraEngine) ![NazaraEngine/NazaraEngine](https://img.shields.io/github/stars/NazaraEngine/NazaraEngine.svg?style=flat&label=Star&maxAge=86400) 130 | * __Lina Engine__ - Modular, tiny and fast C++ game engine, aimed to develop 3D desktop games [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/inanevin/LinaEngine) ![inanevin/LinaEngine](https://img.shields.io/github/stars/inanevin/LinaEngine.svg?style=flat&label=Star&maxAge=86400) 131 | 132 | #### Go 133 | 134 | * __Engo__ - A cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/EngoEngine/engo) ![EngoEngine/engo](https://img.shields.io/github/stars/EngoEngine/engo.svg?style=flat&label=Star&maxAge=86400) 135 | 136 | #### Rust 137 | 138 | * __Ambient__ - The multiplayer game engine [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/AmbientRun/Ambient) ![dbartolini/crown](https://img.shields.io/github/stars/AmbientRun/Ambient.svg?style=flat&label=Star&maxAge=86400) 139 | * __Amethyst__ - Data-oriented and data-driven game engine written in Rust [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/amethyst/amethyst) ![amethyst/amethyst](https://img.shields.io/github/stars/amethyst/amethyst.svg?style=flat&label=Star&maxAge=86400) 140 | * __Bevy__ - A refreshingly simple data-driven game engine built in Rust [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/bevyengine/bevy) ![bevyengine/bevy](https://img.shields.io/github/stars/bevyengine/bevy.svg?style=flat&label=Star&maxAge=86400) 141 | * __Bones__ - An easy-to-use game engine for making real games [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/fishfolk/bones) ![fishfolk/bones](https://img.shields.io/github/stars/fishfolk/bones.svg?style=flat&label=Star&maxAge=86400) 142 | 143 | #### Zig 144 | 145 | * __mach__ - Game engine & graphics toolkit for building high-performance, truly cross-platform, robust & modular games, visualizations, and desktop/mobile GUI apps [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/hexops/mach) ![hexops/mach](https://img.shields.io/github/stars/hexops/mach.svg?style=flat&label=Star&maxAge=86400) 146 | 147 | ### Graphics Engines 148 | 149 | #### C++ 150 | 151 | * __bs::framework__ - Modern C++14 library for the development of real-time graphical applications [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/GameFoundry/bsf) ![GameFoundry/bsf](https://img.shields.io/github/stars/GameFoundry/bsf.svg?style=flat&label=Star&maxAge=86400) 152 | * __The Forge__ - Cross-Platform Rendering Framework with support for PC Windows, Linux, Ray Tracing, macOS/iOS, Android, XBOX, PS4, PS5, Switch, Quest 2 [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/ConfettiFX/The-Forge) ![ConfettiFX/The-Forge](https://img.shields.io/github/stars/ConfettiFX/The-Forge.svg?style=flat&label=Star&maxAge=86400) 153 | 154 | ### Physics libraries 155 | 156 | #### C++ 157 | 158 | * __edyn__ - A real-time physics engine organized as an ECS [![GitHub](https://img.shields.io/badge/GitHub-grey)](https://github.com/xissburg/edyn) ![xissburg/edyn](https://img.shields.io/github/stars/xissburg/edyn.svg?style=flat&label=Star&maxAge=86400) 159 | 160 | ## Other Resources 161 | 162 | ### Benchmarks 163 | 164 | * [ecs_benchmark](https://github.com/abeimler/ecs_benchmark): Benchmarks of common ECS (Entity-Component-System)-Frameworks in C/C++ 165 | * [ECS C# Benchmark](https://github.com/Doraku/Ecs.CSharp.Benchmark): Benchmarks of the main ECS Frameworks for: C# 166 | * [ECS C# Benchmark - Common uses-cases](https://github.com/friflo/ECS.CSharp.Benchmark-common-use-cases): Benchmark many common use cases in the simplest and most performant variant 167 | * [CSharpECSComparison](https://github.com/Chillu1/CSharpECSComparison): Benchmarks of common ECS Frameworks for C# 168 | * [Lua ECS Library Benchmark](https://github.com/jeffzi/lua-ecs-benchmark): Benchmarks of common ECS Frameworks in Lua 169 | 170 | ### Blog Posts 171 | 172 | * [Data-oriented design](http://gamesfromwithin.com/category/data-oriented-design) 173 | * [ECS back and forth](https://skypjack.github.io/2019-02-14-ecs-baf-part-1/) 174 | * [Let's build an Entity Component System from scratch](https://devlog.hexops.com/2022/lets-build-ecs-part-1/) 175 | * [Entity Systems are the future of MMOG development](https://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/) 176 | * [Building an ECS](https://ajmmertens.medium.com/building-an-ecs-1-where-are-my-entities-and-components-63d07c7da742) 177 | * [Systems Interaction in Entity-Component-System (events)](https://medium.com/@ben.rasooli/systems-interaction-in-entity-component-system-events-4a050153c8ac) 178 | * [Overview of ECS variants & definitions](https://gist.github.com/LearnCocos2D/77f0ced228292676689f) 179 | * [Understand data-oriented design](https://learn.unity.com/tutorial/part-1-understand-data-oriented-design) 180 | * [Unity ECS series](https://gametorrahod.com/tag/unity-ecs/) 181 | * [Seba's Lab](https://www.sebaslab.com/) 182 | 183 | ### Talks & Slides 184 | 185 | * [itCppCon19: ECS back and forth](https://youtu.be/WB5bRKKGRUk) 186 | * [GDC 2018: Unity at GDC - A Data Oriented Approach to Using Component Systems](https://youtu.be/p65Yt20pw0g) 187 | * [Meeting C++ 2018: Data oriented design in practice](https://youtu.be/NWMx1Q66c14) 188 | * [CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”](https://youtu.be/yy8jQgmhbAU) 189 | * [Data Oriented Design Resources](http://aras-p.info/texts/files/2018Academy%20-%20ECS-DoD.pdf) 190 | * [Data Oriented GUI in Rust](https://www.youtube.com/watch?v=4YTfxresvS8) 191 | * [Is There More to Game Architecture than ECS](https://www.youtube.com/watch?v=JxI3Eu5DPwE) - Bob Nystrom (Roguelike Celebration 2018) 192 | * [Unite 2018: C# Job System + ECS usage and demo with Intel](https://www.youtube.com/watch?v=fp1D45hhVEM) 193 | * [Codestar 2018 ECS - A Different Approach to Game Development](https://www.youtube.com/watch?v=lt4eL4RSx7k) 194 | * [CppCon 2014: Mike Acton "Data-Oriented Design and C++"](https://youtu.be/rX0ItVEVjHc)) 195 | 196 | ### Books 197 | 198 | * [Data-Oriented Design](http://www.dataorienteddesign.com/dodbook/) 199 | 200 | ### Tutorials 201 | 202 | * [Starting a new 2D platformer with ECS](https://www.youtube.com/playlist?list=PLWtPciJ1UMuAoCq8NAw8J-n387U4QHFBW) 203 | 204 | ### Lists 205 | 206 | * [Entity Component System & Data Oriented Design](https://github.com/dbartolini/data-oriented-design) 207 | 208 | ### ETC 209 | 210 | * [Entity Systems Wiki](http://entity-systems.wikidot.com/) 211 | * [Entity Component Systems FAQ](https://github.com/SanderMertens/ecs-faq) 212 | --------------------------------------------------------------------------------