awesome-entity-component-system
awesome-entity-component-system copied to clipboard
:sunglasses: A curated list of Entity-Component-System (ECS) libraries and resources
awesome-ecs
:sunglasses: A curated list of Entity-Component-System (ECS) libraries and resources
ECS Libraries
C/C++
- anax - Open source C++ entity system [github
]
- ECS - C++ single-header entity component system library [github
]
- ecs.hpp - A single header C++14 entity component system library [github
]
- ecst - Experimental C++14 multithreaded compile-time entity-compnent-system library [github
]
- EntityFu - A simple, fast entity component system written in C++ [github
]
- EntityPlus - C++14 entity component system [github
]
- EntityX - Fast, type-safe C++ entity component system [github
]
- entt - Fast and reliable entity-component system [github
]
- Flecs - A Multithreaded Entity Component System written for C89 & C99 [github
]
- goomy - A tiny, experimental ECS framework [github
]
- Kengine - Type-safe and self-documenting implementation of an Entity-Component-System [github
]
- matter - C++17/20 ECS implementation [github
]
C#
- DefaultEcs - ECS for syntax and usage simplicity with maximum performance [github
]
- Svelto.ECS - Lightweight data oriented entity component system framework [github
]
Dart
- Fast ECS - Simple and fast Entity-Component-System (ECS) library written in Dart. [github
]
Python
- esper - A lightweight Entity System for Python [github
]
Rust
- Shipyard - Entity Component System written in Rust [github
]
- Specs - Parallel entity component system written in Rust [github
]
Lua
- ECS Lua - A fast and easy to use ECS engine for game development [github
]
- tiny-ecs - Entity Component System for Lua that's simple, flexible, and useful [github
]
JavaScript
- bitECS - Functional, minimal, data-oriented, ultra-high performance ECS library [github
]
-
ECSY - Entity Component System for javascript [github
]
Applications powered by ECS
Game Engines
C++
- crown - General purpose data-driven game engine [github
]
-
Engine - Basic cross-platform 3D game engine [github
]
- igneous - Open source game engine written in C++ [github
]
- shiva - Modern Cross-Platform C++ Engine with modularity [github
]
- Sparky - Cross-Platform High Performance 2D/3D game engine [github
]
- Usagi - Hierarchical component entity system based game engine [github
]
Rust
-
Amethyst - Data-oriented and data-driven game engine written in Rust [github
]
-
Bevy - A refreshingly simple data-driven game engine built in Rust [github
]
Graphics Engines
C++
- bs::framework - Modern C++14 library for the development of real-time graphical applications [github
]
Other Resources
Benchmark
- ecs_benchmark: EnTT vs. entityx vs. anax vs. Artemis-Cpp
Blog Posts
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
- 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
- CppCon 2014: Mike Acton "Data-Oriented Design and C++")