Skip to content

Comparison chart for C# ECS solutions/frameworks

License

Notifications You must be signed in to change notification settings

Chillu1/CSharpECSComparison

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 

Repository files navigation

What is this?

This is a rough comparison table of all the "popular" ECS frameworks written and used in C#.

Table

Support...
✔️ = Full
✔️Ex = Full with extension
= Partial
= None

Feature Leo
ECS
Leo
EcsLite
Default
Ecs
Svelto
.ECS
Morpeh Unity
ECS
Entitas chrome
alex
/ecs
Nano
ECS
Ego
CS
actors
.unity
Feature
Archetype based ✔️ ✔️ ✔️? ❌? Archetype based
Filter/Query operations Has/Not
(Inc/Exc)
Has/Not
(Inc/Exc)
Has/Not
Or/Nor
Has/Not
(With/
Without)
Has/Not/Or
(All/Any/None)
Has/Not, Any
(All/None)
Has/Not, Any Has/Not
(With/
Without)
Has Has Filter/Query operations
Components Type support struct struct struct
/class
/interface
struct
/interface
struct struct
/class
class struct class class class? Components Type support
Code Generation based ✔️ ✔️ ✔️ Code Generation based
Dependencies None None None None ➖Unity
Odin Inspector
Unity ➖Unity Unity Unity Unity Unity Dependencies
Engine agnostic ✔️ ✔️ ❌? ✔️ ✔️ Engine agnostic
Custom Engine Support ✔️ ✔️ ✔️ ✔️ Custom Engine Support
Threading support ✔️Ex ✔️Ex ✔️ ➖? ❌? ➖? Threading support
World Events/Messages ✔️ ✔️ ✔️ ✔️ ❌? ❌? ✔️ ✔️ World Events/Messages
One-Frame Components ✔️ ✔️ ✔️EX ❌? ✔️ One-Frame Components
Dependency Injection
Support
✔️ ✔️ Dependency Injection
Support
Shared Resource ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ Shared Resource
Thread-safe ❌? ❌? Thread-safe
Reactive System ✔️ ❌? ✔️ ✔️ ✔️ Reactive System
Multiple components of same type on entity Multiple components of same type on entity
Components can live without entities ✔️ ✔️ Components can live without entities
Entities can live without components ✔️ ✔️ Entities can live without components
Unity Editor View support ✔️Ex ✔️Ex ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ Unity Editor View support
Unity Editor Full Integration* ➖? ❌(WIP) ✔️ ✔️ ✔️? Unity Editor Full Integration*
Unity Burst Compatible ✔️Ex ✔️ ✔️ ✔️ ❌? ❌? Unity Burst Compatible
Unity Jobs Compatible ✔️Ex ✔️ ✔️ ✔️ ❌? ❌? ➖? Unity Jobs Compatible
License MIT MIT MIT-0 MIT MIT Unity
Companion
License
MIT MIT MIT MIT MIT License
Last Major Version Release Date Feb
2022
Feb
2022
Feb
2022
May
2023
May
2023
Sep
2022
Sep
2022
Sep
2020?
Dec
2019
Mar
2017
Jul
2020
Last Major Version Release Date
Feature Leo
ECS
Leo
EcsLite
Default
Ecs
Svelto
.ECS
Morpeh Unity
ECS
Entitas chrome
alex
/ecs
Nano
ECS
Ego
CS
actors
.unity
Feature

*(Unity Editor) Full Integration means that systems & components can be made, disabled, enabled, and configured in Unity Editor.

How can I contribute?

Find a table cell (or multiple) that isn't filled out, and make an issue/pull request about it. While stating why it's true (explanation doesn't have to be very sophisticated or sourced/grounded, most of the time).
OR
Find a table cell (or multiple) that has a quesiton mark, and source why it's true/untrue with an issue or pull request.

FAQ

Q: Why not split the table?
A: I think the table isn't big enough for a split to be valuable, and it's easier to check for all the features you'd want with one glance, instead of going back and forth between two tables.

Q: xECS isn't here, why's that?
A: Idk, ask about it in a new issue, it might be too niche, or something.