Skip to content

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

License

Notifications You must be signed in to change notification settings

jslee02/awesome-entity-component-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 

Repository files navigation

awesome-ecs

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

ECS Libraries

C/C++

  • anax - Open source C++ entity system GitHub miguelmartin75/anax
  • ECS - C++ single-header entity component system library GitHub redxdev/ECS
  • ecs.hpp - A single header C++14 entity component system library GitHub BlackMATov/ecs.hpp
  • ecst - Experimental C++14 multithreaded compile-time entity-compnent-system library GitHub SuperV1234/ecst
  • EntityFu - A simple, fast entity component system written in C++ GitHub NatWeiss/EntityFu
  • EntityPlus - C++14 entity component system GitHub Yelnats321/EntityPlus
  • EntityX - Fast, type-safe C++ entity component system GitHub alecthomas/entityx
  • entt - Fast and reliable entity-component system GitHub skypjack/entt
  • Flecs - A Multithreaded Entity Component System written for C89 & C99 GitHub SanderMertens/flecs
  • Gaia-ECS - Fast and type-safe C++17 archetype-based entity component system GitHub richardbiely/gaia-ecs
  • Ginseng - An ESC library designed for use in games GitHub apples/ginseng
  • goomy - A tiny, experimental ECS framework GitHub vberlier/goomy
  • Kengine - Game engine with an Entity-Component-System (ECS) architecture GitHub phisko/kengine
  • matter - C++17/20 ECS implementation GitHub Dreyri/matter
  • mustache - A fast, modern C++ entity component system GitHub kirillochnev/mustache
  • pico_ecs - Single-header and cross-platform ECS GitHub empyreanx/pico_headers

C#

  • Arch - A high-performance Archetype & Chunks Entity Component System for game development and data-oriented programming GitHub genaray/Arch
  • DefaultEcs - ECS for syntax and usage simplicity with maximum performance GitHub Doraku/DefaultEcs
  • DragonECS - ECS for Unity and .NET GitHub DCFApixels/DragonECS
  • Entitas - The Entity Component System Framework for C# and Unity GitHub sschmid/Entitas
  • Friflo Engine ECS - ECS for .NET with focus on performance, cache locality and DX GitHub friflo/Friflo.Json.Fliox
  • LeoEcsLite - Lightweight C# Entity Component System framework GitHub LeoECSCommunity/ecslite
  • ME.BECS - ECS for Unity with full game state automatic rollbacks GitHub chromealex/ME.BECS
  • Morpeh - ECS Framework for Unity Game Engine and .NET Platform GitHub scellecs/morpeh
  • Svelto.ECS - Lightweight data oriented entity component system framework GitHub sebas77/Svelto.ECS
  • Fennecs - ... the tiny, tiny, high-energy Entity-Component System! GitHub outfox/fennecs
  • TinyEcs - A tiny bevy-like archetype-style ECS library for dotnet GitHub andreakarasho/TinyEcs

Common Lisp

  • beast - Basic Entity/Aspect/System Toolkit GitHub sjl/beast
  • cl-ecs - An implementation of the Entity-Component-System pattern mostly used in game development GitHub bit-phlippers/cl-ecs
  • cl-fast-ecs - Blazingly fast Entity-Component-System microframework GitLab lockie/cl-fast-ecs

Dart

  • Fast ECS - Simple and fast Entity-Component-System (ECS) library written in Dart. GitHub QiXi/fast_ecs

Elixir

  • ECSx - An ECS framework for Elixir GitHub ecsx-framework/ECSx

Python

  • esper - A lightweight Entity System for Python GitHub benmoran56/esper

Rust

  • shipyard - Entity Component System written in Rust GitHub leudz/shipyard
  • specs - Parallel entity component system written in Rust GitHub slide-rs/specs
  • legion - High performance Rust ECS library GitHub amethyst/legion
  • bevy_ecs - Simple to use, ergonomic, fast, massively parallel, opinionated, and featureful written in Rust GitHub bevyengine/bevy
  • hecs - High-performance, minimalist entity-component-system GitHub Ralith/hecs

Go

  • Arche - An archetype-based Entity Component System for Go GitHub mlange-42/arche
  • ecs - A Go-implementation of the Entity-Component-System paradigm GitHub EngoEngine/ecs

Lua

  • ECS Lua - A fast and easy to use ECS engine for game development GitHub nidorx/ecs-lua
  • tiny-ecs - Entity Component System for Lua that's simple, flexible, and useful GitHub bakpakin/tiny-ecs

Java

  • Artemis-odb - A continuation of the popular Artemis ECS framework GitHub junkdog/artemis-odb

Kotlin

  • Fleks - Fast, lightweight, multi-platform entity component system in Kotlin GitHub Quillraven/Fleks

JavaScript / Typescript

  • becsy - A multithreaded Entity Component System (ECS) for TypeScript and JavaScript, inspired by ECSY and bitecs. GitHub bitecs
  • bitECS - Functional, minimal, data-oriented, ultra-high performance ECS library GitHub bitecs
  • ECSY - Entity Component System for javascript GitHub ecsyjs/ecsy
  • miniplex - The gentle game entity manager, focused on ease of use and developer experience. GitHub miniplex
  • Thyseus - An archetypal Entity Component System, built entirely in Typescript GitHub miniplex

Zig

  • mach-ecs - Entity Component System from first-principles designed for Zig GitHub hexops/mach-ecs
  • Zig ECS - A Zig port of the fantasic Entt GitHub prime31/zig-ecs

Applications powered by ECS

Game Engines

C++

  • crown - General purpose data-driven game engine GitHub dbartolini/crown
  • Engine - Basic cross-platform 3D game engine GitHub Shervanator/Engine
  • halley - A lightweight game engine written in modern C++ GitHub amzeratul/halley
  • igneous - Open source game engine written in C++ GitHub MissingBitStudios/igneous
  • kengine - Game engine focused on ease-of-use, runtime extensibility and compile-time type safety GitHub phisko/kengine
  • Lina Engine - Modular, tiny and fast C++ game engine, aimed to develop 3D desktop games GitHub inanevin/LinaEngine
  • Lumos - Cross-Platform C++ 2D/3D game engine GitHub jmorton06/Lumos
  • MxEngine - C++ open source 3D game engine GitHub asc-community/MxEngine
  • nebula - Open-source and free-to-use modern C++ game engine GitHub gscept/nebula
  • Nazara Engine - Cross-platform framework aimed at real-time applications requiring audio, 2D and 3D real-time rendering, network and more GitHub NazaraEngine/NazaraEngine
  • shiva - Modern Cross-Platform C++ Engine with modularity GitHub Milerius/shiva
  • Sparky - Cross-Platform High Performance 2D/3D game engine GitHub TheCherno/Sparky
  • supernova - Game engine for 2D and 3D projects with ECS and data-oriented design GitHub supernovaengine/supernova
  • Usagi - Hierarchical component entity system based game engine GitHub vitei/Usagi
  • Lumos - Cross-Platform C++ 2D/3D game engine GitHub jmorton06/Lumos
  • supernova - Game engine for 2D and 3D projects with ECS and data-oriented design GitHub supernovaengine/supernova
  • kengine - Game engine focused on ease-of-use, runtime extensibility and compile-time type safety GitHub phisko/kengine
  • MxEngine - C++ open source 3D game engine GitHub asc-community/MxEngine
  • nebula - Open-source and free-to-use modern C++ game engine GitHub gscept/nebula
  • halley - A lightweight game engine written in modern C++ GitHub amzeratul/halley
  • Nazara Engine - Cross-platform framework aimed at real-time applications requiring audio, 2D and 3D real-time rendering, network and more GitHub NazaraEngine/NazaraEngine
  • Lina Engine - Modular, tiny and fast C++ game engine, aimed to develop 3D desktop games GitHub inanevin/LinaEngine

Go

  • Engo - A cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm GitHub EngoEngine/engo

Rust

  • Ambient - The multiplayer game engine GitHub dbartolini/crown
  • Amethyst - Data-oriented and data-driven game engine written in Rust GitHub amethyst/amethyst
  • Bevy - A refreshingly simple data-driven game engine built in Rust GitHub bevyengine/bevy
  • Bones - An easy-to-use game engine for making real games GitHub fishfolk/bones

Zig

  • mach - Game engine & graphics toolkit for building high-performance, truly cross-platform, robust & modular games, visualizations, and desktop/mobile GUI apps GitHub hexops/mach

Graphics Engines

C++

  • bs::framework - Modern C++14 library for the development of real-time graphical applications GitHub 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 GitHub ConfettiFX/The-Forge

Physics libraries

C++

  • edyn - A real-time physics engine organized as an ECS GitHub xissburg/edyn

Other Resources

Benchmarks

Blog Posts

Talks & Slides

Books

Tutorials

Lists

ETC