awesome-entity-component-system
:sunglasses: A curated list of Entity-Component-System (ECS) libraries and resources
https://github.com/jslee02/awesome-entity-component-system
Last synced: 6 days ago
JSON representation
-
Applications powered by ECS
-
Physics libraries
-
-
[Applications powered by ECS](#contents)
-
[Game Engines](#contents)
- crown - General purpose data-driven game engine. [⭐ 27](https://github.com/dbartolini/crown)
- Engine - Basic cross-platform 3D game engine. [⭐ 301](https://github.com/Shervanator/Engine)
- halley - A lightweight game engine written in modern C++. [⭐ 3.8k](https://github.com/amzeratul/halley)
- igneous - Open source game engine written in C++. [⭐ 51](https://github.com/MissingBitStudios/igneous)
- Lina Engine - Modular, tiny and fast C++ game engine, aimed to develop 3D desktop games. [⭐ 890](https://github.com/inanevin/LinaEngine)
- Lumos - Cross-Platform C++ 2D/3D game engine. [⭐ 1.5k](https://github.com/jmorton06/Lumos)
- MxEngine - C++ open source 3D game engine. [⭐ 1.2k](https://github.com/asc-community/MxEngine)
- Nazara Engine - Cross-platform framework aimed at real-time applications requiring audio, 2D and 3D real-time rendering, network and more. [⭐ 811](https://github.com/NazaraEngine/NazaraEngine)
- nebula - Open-source and free-to-use modern C++ game engine. [⭐ 1.1k](https://github.com/gscept/nebula)
- shiva - Modern Cross-Platform C++ Engine with modularity. [⭐ 159](https://github.com/Milerius/shiva)
- Sparky - Cross-Platform High Performance 2D/3D game engine. [⭐ 1.2k](https://github.com/TheCherno/Sparky)
- supernova - Game engine for 2D and 3D projects with ECS and data-oriented design. [⭐ 376](https://github.com/supernovaengine/supernova)
- Usagi - Hierarchical component entity system based game engine. [⭐ 53](https://github.com/vitei/Usagi)
- WickedEngine - 3D engine with modern graphics. [⭐ 6.8k](https://github.com/turanszkij/WickedEngine)
- Engo - A cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm. [⭐ 1.8k](https://github.com/EngoEngine/engo)
- Ambient - The multiplayer game engine. [⭐ 3.9k](https://github.com/AmbientRun/Ambient)
- Amethyst - Data-oriented and data-driven game engine written in Rust. [⭐ 8.0k](https://github.com/amethyst/amethyst)
- Bevy - A refreshingly simple data-driven game engine built in Rust. [⭐ 44.5k](https://github.com/bevyengine/bevy)
- Bones - An easy-to-use game engine for making real games. [⭐ 290](https://github.com/fishfolk/bones)
- mach - Game engine & graphics toolkit for building high-performance, truly cross-platform, robust & modular games, visualizations, and desktop/mobile GUI apps. [⭐ 4.6k](https://github.com/hexops/mach)
-
[Graphics Engines](#contents)
- bs::framework - Modern C++14 library for the development of real-time graphical applications. [⭐ 1.8k](https://github.com/GameFoundry/bsf)
- The Forge - Cross-Platform Rendering Framework with support for PC Windows, Linux, Ray Tracing, macOS/iOS, Android, XBOX, PS4, PS5, Switch, Quest 2. [⭐ 5.5k](https://github.com/ConfettiFX/The-Forge)
-
[Physics Libraries](#contents)
- edyn - A real-time physics engine organized as an ECS. [⭐ 747](https://github.com/xissburg/edyn)
-
-
ECS Libraries
- 
-
[ECS Libraries](#contents)
- anax - Open source C++ entity system. [⭐ 463](https://github.com/miguelmartin75/anax)
- ECS - C++ single-header entity component system library. [⭐ 480](https://github.com/redxdev/ECS)
- ecs.hpp - A single header C++14 entity component system library. [⭐ 40](https://github.com/BlackMATov/ecs.hpp)
- ecst - Experimental C++14 multithreaded compile-time entity-compnent-system library. [⭐ 490](https://github.com/vittorioromeo/ecst)
- EntityFu - A simple, fast entity component system written in C++. [⭐ 86](https://github.com/NatWeiss/EntityFu)
- EntityPlus - C++14 entity component system. [⭐ 191](https://github.com/Yelnats321/EntityPlus)
- EntityX - Fast, type-safe C++ entity component system. [⭐ 2.3k](https://github.com/alecthomas/entityx)
- entt - Fast and reliable entity-component system. [⭐ 12.3k](https://github.com/skypjack/entt)
- Flecs - A Multithreaded Entity Component System written for C89 & C99. [⭐ 8.0k](https://github.com/SanderMertens/flecs)
- Gaia-ECS - Fast and type-safe C++17 archetype-based entity component system. [⭐ 116](https://github.com/richardbiely/gaia-ecs)
- Ginseng - An ESC library designed for use in games. [⭐ 55](https://github.com/apples/ginseng)
- goomy - A tiny, experimental ECS framework. [⭐ 14](https://github.com/vberlier/goomy)
- Kengine - Game engine with an Entity-Component-System (ECS) architecture. [⭐ 616](https://github.com/phisko/kengine)
- matter - C++17/20 ECS implementation. [⭐ 21](https://github.com/frengels/matter)
- mustache - A fast, modern C++ entity component system. [⭐ 68](https://github.com/kirillochnev/mustache)
- pico_ecs - Single-header and cross-platform ECS. [⭐ 484](https://github.com/empyreanx/pico_headers)
- WickedEngine's ECS - WickedEngine's ECS implementation. [⭐ 6.8k](https://github.com/turanszkij/WickedEngine)
- Arch - A high-performance Archetype & Chunks Entity Component System for game development and data-oriented programming. [⭐ 1.6k](https://github.com/genaray/Arch)
- DefaultEcs - ECS for syntax and usage simplicity with maximum performance. [⭐ 746](https://github.com/Doraku/DefaultEcs)
- DragonECS - ECS for Unity and .NET. [⭐ 291](https://github.com/DCFApixels/DragonECS)
- Entitas - The Entity Component System Framework for C# and Unity. [⭐ 7.6k](https://github.com/sschmid/Entitas)
- Fennecs - ... the tiny, tiny, high-energy Entity-Component System! [⭐ 410](https://github.com/outfox/fennecs)
- Frent - Data oriented ECF with an ECS api for C#, Godot, and Unity. [⭐ 154](https://github.com/itsBuggingMe/Frent)
- Friflo Engine ECS - ECS for .NET with focus on performance, cache locality and DX. [⭐ 530](https://github.com/friflo/Friflo.Engine.ECS)
- LeoEcsLite - Lightweight C# Entity Component System framework. [⭐ 60](https://github.com/LeoECSCommunity/ecslite)
- Massive ECS - Bitset-based ECS with rollbacks. C# library and Unity package. [⭐ 181](https://github.com/nilpunch/massive-ecs)
- ME.BECS - ECS for Unity with full game state automatic rollbacks. [⭐ 242](https://github.com/chromealex/ME.BECS)
- Morpeh - ECS Framework for Unity Game Engine and .NET Platform. [⭐ 631](https://github.com/scellecs/morpeh)
- Static ECS - C# Hierarchical Inverted Bitmap ECS framework. [⭐ 142](https://github.com/Felid-Force-Studios/StaticEcs)
- Svelto.ECS - Lightweight data oriented entity component system framework. [⭐ 1.4k](https://github.com/sebas77/Svelto.ECS)
- TinyEcs - A tiny bevy-like archetype-style ECS library for dotnet. [⭐ 135](https://github.com/andreakarasho/TinyEcs)
- beast - Basic Entity/Aspect/System Toolkit. [⭐ 30](https://github.com/sjl/beast)
- cl-ecs - An implementation of the Entity-Component-System pattern mostly used in game development. [⭐ 8](https://github.com/bit-phlippers/cl-ecs)
- cl-fast-ecs - Blazingly fast Entity-Component-System microframework. [gitlab](https://gitlab.com/lockie/cl-fast-ecs)
- Fast ECS - Simple and fast Entity-Component-System (ECS) library written in Dart. [⭐ 17](https://github.com/QiXi/fast_ecs)
- ECSx - An ECS framework for Elixir. [⭐ 257](https://github.com/ecsx-framework/ECSx)
- esper - A lightweight Entity System for Python. [⭐ 670](https://github.com/benmoran56/esper)
- bevy_ecs - Simple to use, ergonomic, fast, massively parallel, opinionated, and featureful written in Rust. [⭐ 44.5k](https://github.com/bevyengine/bevy)
- hecs - High-performance, minimalist entity-component-system. [⭐ 1.2k](https://github.com/Ralith/hecs)
- legion - High performance Rust ECS library. [⭐ 1.7k](https://github.com/amethyst/legion)
- shipyard - Entity Component System written in Rust. [⭐ 834](https://github.com/leudz/shipyard)
- specs - Parallel entity component system written in Rust. [⭐ 2.6k](https://github.com/amethyst/specs)
- Ark - An archetype-based Entity Component System for Go. [⭐ 210](https://github.com/mlange-42/ark)
- ecs - A Go-implementation of the Entity-Component-System paradigm. [⭐ 331](https://github.com/EngoEngine/ecs)
- Concord - A feature-complete ECS library. [⭐ 302](https://github.com/Keyslam-Group/Concord)
- ECS Lua - A fast and easy to use ECS engine for game development. [⭐ 224](https://github.com/nidorx/ecs-lua)
- evolved.lua - Evolved ECS (Entity-Component-System) for Lua. [⭐ 171](https://github.com/BlackMATov/evolved.lua)
- Nata - Entity management for Lua. [⭐ 51](https://github.com/tesselode/nata)
- tiny-ecs - Entity Component System for Lua that's simple, flexible, and useful. [⭐ 775](https://github.com/bakpakin/tiny-ecs)
- Artemis-odb - A continuation of the popular Artemis ECS framework. [⭐ 825](https://github.com/junkdog/artemis-odb)
- Ark.jl - An archetype-based Entity Component System (ECS) for Julia. It is a port of the Go ECS Ark. [⭐ 54](https://github.com/ark-ecs/Ark.jl)
- Fleks - Fast, lightweight, multi-platform entity component system in Kotlin. [⭐ 243](https://github.com/Quillraven/Fleks)
- becsy - A multithreaded Entity Component System (ECS) for TypeScript and JavaScript, inspired by ECSY and bitecs. [⭐ 284](https://github.com/LastOliveGames/becsy)
- bitECS - Functional, minimal, data-oriented, ultra-high performance ECS library. [⭐ 1.3k](https://github.com/NateTheGreatt/bitECS)
- ECSY - Entity Component System for javascript. [⭐ 1.1k](https://github.com/ecsyjs/ecsy)
- miniplex - The gentle game entity manager, focused on ease of use and developer experience. [⭐ 979](https://github.com/hmans/miniplex)
- Thyseus - An archetypal Entity Component System, built entirely in Typescript. [⭐ 86](https://github.com/JaimeGensler/thyseus)
- Comptime ECS - Comptime-defined ECS implementation in Zig. [⭐ 4](https://github.com/Very-Blank/Ecs)
- knoedel - Data oriented application framework written in Zig (ECS). [⭐ 27](https://github.com/Lommix/knoedel)
- mach-ecs - Entity Component System from first-principles designed for Zig. [⭐ 35](https://github.com/hexops-graveyard/mach-ecs)
- ZCS - An archetype based entity component system written in Zig. [⭐ 145](https://github.com/Games-by-Mason/ZCS)
- Zig ECS - A Zig port of the fantasic Entt. [⭐ 392](https://github.com/prime31/zig-ecs)
- apecs - A fast, extensible, type driven Haskell ECS framework for games. [⭐ 407](https://github.com/jonascarpay/apecs)
- Woven-ECS - A multithreaded ECS framework for TypeScript aimed at collaborative browser applications. [⭐ 7](https://github.com/WillH0lt/woven-ecs)
-
[License](#contents)
-
[ETC](#contents)
-
-
Other Resources
-
Blog Posts
-
Books
-
ETC
-
Talks & Slides
- itCppCon19: ECS back and forth
- GDC 2018: Unity at GDC - A Data Oriented Approach to Using Component Systems
- Meeting C++ 2018: Data oriented design in practice
- CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”
- Data Oriented Design Resources
- CppCon 2014: Mike Acton "Data-Oriented Design and C++"
- CppCon 2014: Mike Acton "Data-Oriented Design and C++"
-
Tutorials
-
-
[Other Resources](#contents)
-
[Benchmarks](#contents)
- ecs_benchmark - Benchmarks of common ECS (Entity-Component-System)-Frameworks in C/C++. [⭐ 280](https://github.com/abeimler/ecs_benchmark)
- ECS C# Benchmark - Benchmarks of the main ECS Frameworks for: C#. [⭐ 174](https://github.com/Doraku/Ecs.CSharp.Benchmark)
- ECS C# Benchmark - Common uses-cases - Benchmark many common use cases in the simplest and most performant variant. [⭐ 43](https://github.com/friflo/ECS.CSharp.Benchmark-common-use-cases)
- CSharpECSComparison - Benchmarks of common ECS Frameworks for C#. [⭐ 53](https://github.com/Chillu1/CSharpECSComparison)
- Lua ECS Library Benchmark - Benchmarks of common ECS Frameworks in Lua. [⭐ 6](https://github.com/jeffzi/lua-ecs-benchmark)
-
[Blog Posts](#contents)
- ECS back and forth
- Let's build an Entity Component System from scratch
- Entity Systems are the future of MMOG development
- Building an ECS
- Systems Interaction in Entity-Component-System (events)
- Overview of ECS variants & definitions
- Understand data-oriented design
- Seba's Lab
- WickedEngine's ECS implementation
- Unity ECS series
- WickedEngine's ECS implementation
- Data-oriented design
-
[Books](#contents)
-
[ETC](#contents)
-
[Lists](#contents)
-
[Talks & Slides](#contents)
- Data Oriented GUI in Rust
- Is There More to Game Architecture than ECS - Bob Nystrom (Roguelike Celebration 2018)
- Unite 2018: C# Job System + ECS usage and demo with Intel
- Codestar 2018 ECS - A Different Approach to Game Development
- itCppCon19: ECS back and forth
- GDC 2018: Unity at GDC - A Data Oriented Approach to Using Component Systems
- Meeting C++ 2018: Data oriented design in practice
- CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”
- Data Oriented Design Resources
- CppCon 2014: Mike Acton "Data-Oriented Design and C++"
-
[Tutorials](#contents)
-
-
[Star History](#contents)
-
[ETC](#contents)
- 
20
[Blog Posts](#contents)
12
[Talks & Slides](#contents)
10
Talks & Slides
7
[Benchmarks](#contents)
5
[ETC](#contents)
4
Tutorials
2
[Graphics Engines](#contents)
2
Blog Posts
2
[Tutorials](#contents)
1
Books
1
[Books](#contents)
1
ETC
1
[Lists](#contents)
1
Physics libraries
1
[Physics Libraries](#contents)
1
Keywords
entity-component-system
27
game-engine
24
ecs
24
game-development
24
gamedev
20
cpp
9
opengl
8
rust
7
csharp
7
ecs-framework
7
vulkan
6
linux
6
lua
6
unity
6
cpp17
6
game
6
entt
5
entity-component
5
windows
5
data-oriented
5
c-plus-plus
5
cross-platform
4
entity
4
macos
4
directx
4
data-oriented-design
4
modern-cpp
4
game-engine-framework
3
graphics
3
open-source
3
engine
3
3d-graphics
3
cpp11
3
cmake
3
unity3d
3
benchmark
3
bevy
2
dotnet
2
3d
2
no-dependencies
2
production-ready
2
gui
2
webassembly
2
zig
2
assimp
2
architectural-patterns
2
android
2
game-engine-3d
2
multiplayer
2
metal
2