Skip to content

jslee02/awesome-entity-component-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

103 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome ECS

Awesome

A curated list of Entity-Component-System (ECS) libraries and resources.

Contents

Legend: 🟢 Active (<1yr) · 🟡 Slow (1-2yr) · 🔴 Stale (>2yr) · 💀 Archived

Libraries and frameworks implementing the Entity-Component-System pattern.

C/C++

  • 💀 anax - Open source C++ entity system. ⭐ 463
  • 💀 ECS - C++ single-header entity component system library. ⭐ 483
  • 🔴 ecs.hpp - A single header C++14 entity component system library. ⭐ 41
  • 🔴 ecst - Experimental C++14 multithreaded compile-time entity-compnent-system library. ⭐ 491
  • 🔴 EntityFu - A simple, fast entity component system written in C++. ⭐ 86
  • 🔴 EntityPlus - C++14 entity component system. ⭐ 191
  • 🟢 EntityX - Fast, type-safe C++ entity component system. ⭐ 2.3k
  • 🟢 entt - Fast and reliable entity-component system. ⭐ 12.8k
  • 🟢 Flecs - A Multithreaded Entity Component System written for C89 & C99. ⭐ 8.4k
  • 🟢 Gaia-ECS - Fast and type-safe C++17 archetype-based entity component system. ⭐ 129
  • 🔴 Ginseng - An ESC library designed for use in games. ⭐ 55
  • 🔴 goomy - A tiny, experimental ECS framework. ⭐ 14
  • 🔴 Kengine - Game engine with an Entity-Component-System (ECS) architecture. ⭐ 617
  • 🔴 matter - C++17/20 ECS implementation. ⭐ 21
  • 🟢 mustache - A fast, modern C++ entity component system. ⭐ 72
  • 🟢 pico_ecs - Single-header and cross-platform ECS. ⭐ 544
  • 🟢 WickedEngine's ECS - WickedEngine's ECS implementation. ⭐ 7.1k

C#

  • 🟢 Arch - A high-performance Archetype & Chunks Entity Component System for game development and data-oriented programming. ⭐ 1.7k
  • 🔴 DefaultEcs - ECS for syntax and usage simplicity with maximum performance. ⭐ 759
  • 🟢 DragonECS - ECS for Unity and .NET. ⭐ 330
  • 🔴 Entitas - The Entity Component System Framework for C# and Unity. ⭐ 7.6k
  • 🟢 Fennecs - ... the tiny, tiny, high-energy Entity-Component System! ⭐ 442
  • 🟢 Frent - Data oriented ECF with an ECS api for C#, Godot, and Unity. ⭐ 172
  • 🟢 Friflo Engine ECS - ECS for .NET with focus on performance, cache locality and DX. ⭐ 657
  • 🔴 LeoEcsLite - Lightweight C# Entity Component System framework. ⭐ 62
  • 🟢 Massive ECS - Bitset-based ECS with rollbacks. C# library and Unity package. ⭐ 210
  • 🟢 ME.BECS - ECS for Unity with full game state automatic rollbacks. ⭐ 249
  • 🟢 Morpeh - ECS Framework for Unity Game Engine and .NET Platform. ⭐ 645
  • 🟢 Static ECS - C# Hierarchical Inverted Bitmap ECS framework. ⭐ 182
  • 🟡 Svelto.ECS - Lightweight data oriented entity component system framework. ⭐ 1.4k
  • 🟢 TinyEcs - A tiny bevy-like archetype-style ECS library for dotnet. ⭐ 148

Common Lisp

  • 🔴 beast - Basic Entity/Aspect/System Toolkit. ⭐ 30
  • 🔴 cl-ecs - An implementation of the Entity-Component-System pattern mostly used in game development. ⭐ 8
  • cl-fast-ecs - Blazingly fast Entity-Component-System microframework. gitlab

Dart

  • 🔴 Fast ECS - Simple and fast Entity-Component-System (ECS) library written in Dart. ⭐ 17

Elixir

Python

  • 🟢 esper - A lightweight Entity System for Python. ⭐ 690

Rust

  • 🟢 bevy_ecs - Simple to use, ergonomic, fast, massively parallel, opinionated, and featureful written in Rust. ⭐ 46.5k
  • 🟢 hecs - High-performance, minimalist entity-component-system. ⭐ 1.3k
  • 🔴 legion - High performance Rust ECS library. ⭐ 1.7k
  • 🟢 shipyard - Entity Component System written in Rust. ⭐ 859
  • 🔴 specs - Parallel entity component system written in Rust. ⭐ 2.6k

Go

  • 🟢 Ark - An archetype-based Entity Component System for Go. ⭐ 280
  • 🔴 ecs - A Go-implementation of the Entity-Component-System paradigm. ⭐ 334

Lua

Java

Julia

  • 🟢 Ark.jl - An archetype-based Entity Component System (ECS) for Julia. It is a port of the Go ECS Ark. ⭐ 78

Kotlin

  • 🟢 Fleks - Fast, lightweight, multi-platform entity component system in Kotlin. ⭐ 258

JavaScript / TypeScript

  • 🟡 becsy - A multithreaded Entity Component System (ECS) for TypeScript and JavaScript, inspired by ECSY and bitecs. ⭐ 294
  • 🟢 bitECS - Functional, minimal, data-oriented, ultra-high performance ECS library. ⭐ 1.4k
  • 💀 ECSY - Entity Component System for javascript. ⭐ 1.2k
  • 🟢 miniplex - The gentle game entity manager, focused on ease of use and developer experience. ⭐ 1.0k
  • 🔴 Thyseus - An archetypal Entity Component System, built entirely in Typescript. ⭐ 86
  • 🟢 Woven-ECS - A multithreaded ECS framework for TypeScript aimed at collaborative browser applications. ⭐ 8

Zig

  • 🟢 Comptime ECS - Comptime-defined ECS implementation in Zig. ⭐ 4
  • 🟢 knoedel - Data oriented application framework written in Zig (ECS). ⭐ 33
  • 🔴 mach-ecs - Entity Component System from first-principles designed for Zig. ⭐ 35
  • 🟢 ZCS - An archetype based entity component system written in Zig. ⭐ 150
  • 🟢 Zig ECS - A Zig port of the fantasic Entt. ⭐ 419

Haskell

  • 🟢 apecs - A fast, extensible, type driven Haskell ECS framework for games. ⭐ 415

Game engines built on ECS architecture.

C++

  • 🟢 crown - General purpose data-driven game engine. ⭐ 28
  • 🔴 Engine - Basic cross-platform 3D game engine. ⭐ 299
  • 🟢 halley - A lightweight game engine written in modern C++. ⭐ 3.8k
  • 🔴 igneous - Open source game engine written in C++. ⭐ 52
  • 🔴 kengine - Game engine focused on ease-of-use, runtime extensibility and compile-time type safety. ⭐ 617
  • 🟢 Lina Engine - Modular, tiny and fast C++ game engine, aimed to develop 3D desktop games. ⭐ 898
  • 🟢 Lumos - Cross-Platform C++ 2D/3D game engine. ⭐ 1.6k
  • 🔴 MxEngine - C++ open source 3D game engine. ⭐ 1.2k
  • 🟢 Nazara Engine - Cross-platform framework aimed at real-time applications requiring audio, 2D and 3D real-time rendering, network and more. ⭐ 828
  • 🟢 nebula - Open-source and free-to-use modern C++ game engine. ⭐ 1.1k
  • 💀 shiva - Modern Cross-Platform C++ Engine with modularity. ⭐ 158
  • 🔴 Sparky - Cross-Platform High Performance 2D/3D game engine. ⭐ 1.2k
  • 🟢 supernova - Game engine for 2D and 3D projects with ECS and data-oriented design. ⭐ 405
  • 🔴 Usagi - Hierarchical component entity system based game engine. ⭐ 56
  • 🟢 WickedEngine - 3D engine with modern graphics. ⭐ 7.1k

Go

  • 🟡 Engo - A cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm. ⭐ 1.8k

Rust

  • 🟡 Ambient - The multiplayer game engine. ⭐ 3.9k
  • 💀 Amethyst - Data-oriented and data-driven game engine written in Rust. ⭐ 8.0k
  • 🟢 Bevy - A refreshingly simple data-driven game engine built in Rust. ⭐ 46.5k
  • 🟢 Bones - An easy-to-use game engine for making real games. ⭐ 298

Zig

  • 🟢 mach - Game engine & graphics toolkit for building high-performance, truly cross-platform, robust & modular games, visualizations, and desktop/mobile GUI apps. ⭐ 4.8k

Graphics and rendering engines using ECS.

C++

  • 🟢 bs::framework - Modern C++14 library for the development of real-time graphical applications. ⭐ 1.9k
  • 🟢 The Forge - Cross-Platform Rendering Framework with support for PC Windows, Linux, Ray Tracing, macOS/iOS, Android, XBOX, PS4, PS5, Switch, Quest 2. ⭐ 5.6k

Physics simulation libraries organized as ECS.

C++

  • 🟢 edyn - A real-time physics engine organized as an ECS. ⭐ 775

Performance benchmarks comparing ECS frameworks.

Articles and blog posts about ECS and data-oriented design.

Conference talks and presentations about ECS.

Books on ECS and data-oriented design.

Tutorial series for learning ECS.

Related curated lists.

Other ECS-related resources.

Contributions are very welcome! Please read the contribution guidelines first. Also, please feel free to report any error.

Star History Chart

CC0

About

😎 A curated list of Entity-Component-System (ECS) libraries and resources

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages