https://github.com/Chillu1/CSharpECSComparison
  
  
    Comparison chart for C# ECS solutions/frameworks 
    https://github.com/Chillu1/CSharpECSComparison
  
csharp data-oriented ecs ecs-framework entity-component-system game-development unity unity3d
        Last synced: 6 months ago 
        JSON representation
    
Comparison chart for C# ECS solutions/frameworks
- Host: GitHub
- URL: https://github.com/Chillu1/CSharpECSComparison
- Owner: Chillu1
- License: mit-0
- Created: 2022-02-02T22:22:52.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-07-18T11:06:35.000Z (over 2 years ago)
- Last Synced: 2024-08-03T05:22:20.468Z (about 1 year ago)
- Topics: csharp, data-oriented, ecs, ecs-framework, entity-component-system, game-development, unity, unity3d
- Homepage:
- Size: 23.4 KB
- Stars: 50
- Watchers: 4
- Forks: 5
- Open Issues: 2
- 
            Metadata Files:
            - Readme: README.md
- License: LICENSE
 
Awesome Lists containing this project
- awesome-entity-component-system - CSharpECSComparison
README
          # What is this?
This is a rough comparison table of all the "popular" ECS frameworks written and used in C#.
# Table
Support...  
:heavy_check_mark: **= Full**  
:heavy_check_mark:Ex **= Full with extension**  
:heavy_minus_sign: **= Partial**  
:x: **= None**
[//]: # (TODO: Link the names to URLS)  
[//]: # (TODO: Ease of use?)  
[//]: # (TODO: Performance benchmarks?)  
[//]: # (TODO: https://github.com/scellecs/morpeh/pull/88)
[//]: # (TODO: https://github.com/Doraku/DefaultEcs/issues/137)
| 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                            | :x:                   | :x:                   | :x:                              | :heavy_check_mark:    | :x:                                        | :heavy_check_mark:              | :x:                         | :heavy_check_mark:?        | :x:?                            | :x:                 | :x:                 | 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                      | :x:                   | :x:                   | :x:                              |                       | :x:                                        | :x:                             | :heavy_check_mark:          | :heavy_check_mark:         | :heavy_check_mark:              | :x:                 | :x:                 | Code Generation based                      |
| Dependencies                               | None                  | None                  | None                             | None                  | :heavy_minus_sign:Unity
Odin Inspector | Unity                           | :heavy_minus_sign:Unity     | Unity                      | Unity                           | Unity               | Unity               | Dependencies                               |
| Engine agnostic                            | :heavy_check_mark:    | :heavy_check_mark:    | :x:?                             | :heavy_check_mark:    | :heavy_minus_sign:                         | :x:                             | :heavy_check_mark:          | :x:                        | :x:                             | :x:                 | :x:                 | Engine agnostic                            |
| Custom Engine Support                      | :heavy_check_mark:    | :heavy_check_mark:    | :heavy_check_mark:               |                       | :heavy_check_mark:                         | :x:                             | :heavy_minus_sign:          | :x:                        | :x:                             | :x:                 | :x:                 | Custom Engine Support                      |
| Threading support                          | :heavy_check_mark:Ex  | :heavy_check_mark:Ex  | :heavy_check_mark:               |                       | :x:                                        |                                 | :heavy_minus_sign:          | :heavy_minus_sign:?        | :x:                             | :x:?                | :heavy_minus_sign:? | Threading support                          |
| World Events/Messages                      | :heavy_check_mark:    | :heavy_check_mark:    | :heavy_check_mark:               |                       | :heavy_check_mark:                         | :x:?                            | :x:                         |                            | :x:?                            | :heavy_check_mark:  | :heavy_check_mark:  | World Events/Messages                      |
| One-Frame Components                       | :heavy_check_mark:    | :heavy_check_mark:    |                                  |                       | :heavy_check_mark:EX                       | :x:?                            | :heavy_check_mark:          |                            |                                 |                     |                     | One-Frame Components                       |
| Dependency Injection
Support           | :heavy_check_mark:    | :heavy_check_mark:    | :x:                              |                       | :x:                                        | :x:                             | :x:                         | :x:                        | :x:                             | :x:                 |                     | Dependency Injection
Support           |
| Shared Resource                            | :heavy_check_mark:    | :heavy_check_mark:    | :heavy_check_mark:               |                       | :heavy_check_mark:                         | :heavy_check_mark:              | :heavy_check_mark:          |                            |                                 |                     | :heavy_check_mark:  | Shared Resource                            |
| Thread-safe                                | :x:                   | :x:                   | :heavy_minus_sign:               | :heavy_minus_sign:    | :x:                                        | :x:                             | :x:                         | :x:?                       | :x:                             | :x:                 | :x:?                | Thread-safe                                |
| Reactive System                            | :x:                   | :x:                   | :heavy_check_mark:               | :heavy_minus_sign:    | :x:                                        | :x:?                            | :heavy_check_mark:          |                            | :heavy_check_mark:              |                     | :heavy_check_mark:  | Reactive System                            |
| Multiple components of same type on entity | :x:                   | :x:                   | :x:                              | :x:                   | :x:                                        | :x:                             | :x:                         |                            |                                 | :x:                 |                     | Multiple components of same type on entity |
| Components can live without entities       | :x:                   | :x:                   | :heavy_check_mark:               | :x:                   | :x:                                        | :x:                             | :heavy_check_mark:          |                            |                                 |                     |                     | Components can live without entities       |
| Entities can live without components       | :x:                   | :x:                   |                                  | :x:                   | :x:                                        | :heavy_check_mark:              | :heavy_check_mark:          |                            |                                 |                     |                     | Entities can live without components       |
| Unity Editor View support                  | :heavy_check_mark:Ex  | :heavy_check_mark:Ex  | :x:                              | :x:                   | :heavy_check_mark:                         | :heavy_check_mark:              | :heavy_check_mark:          | :heavy_check_mark:         | :heavy_check_mark:              | :heavy_check_mark:  | :heavy_check_mark:  | Unity Editor View support                  |
| Unity Editor Full Integration*             | :x:                   | :x:                   | :x:                              | :x:                   | :heavy_minus_sign:?                        | :x:(WIP)                        | :heavy_check_mark:          |                            | :heavy_check_mark:              | :heavy_check_mark:? |                     | Unity Editor Full Integration*             |
| Unity Burst Compatible                     | :x:                   | :heavy_check_mark:Ex  | :x:                              | :heavy_check_mark:    | :heavy_minus_sign:                         | :heavy_check_mark:              | :x:                         | :heavy_check_mark:         | :x:?                            | :x:?                | :x:                 | Unity Burst Compatible                     |
| Unity Jobs Compatible                      | :x:                   | :heavy_check_mark:Ex  | :x:                              | :heavy_check_mark:    | :heavy_minus_sign:                         | :heavy_check_mark:              | :x:                         | :heavy_check_mark:         | :x:?                            | :x:?                | :heavy_minus_sign:? | 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.
[Leo
ECS]: https://github.com/LeoECSCommunity/ecs
[Leo
EcsLite]: https://github.com/LeoECSCommunity/ecslite
[Entitas]: https://github.com/sschmid/Entitas-CSharp
[Morpeh]: https://github.com/scellecs/morpeh
[Default
Ecs]: https://github.com/Doraku/DefaultEcs
[Unity
ECS]: https://docs.unity3d.com/Packages/com.unity.entities@latest/index.html
[Nano
ECS]: https://github.com/SinyavtsevIlya/NanoECS
[Ego
CS]: https://github.com/andoowhy/EgoCS
[Svelto
.ECS]: https://github.com/sebas77/Svelto.ECS
[actors
.unity]: https://github.com/PixeyeHQ/actors.unity
[chrome
alex
/ecs]: https://github.com/chromealex/ecs