EasyEcs 1.0.8
See the version list below for details.
dotnet add package EasyEcs --version 1.0.8
NuGet\Install-Package EasyEcs -Version 1.0.8
<PackageReference Include="EasyEcs" Version="1.0.8" />
<PackageVersion Include="EasyEcs" Version="1.0.8" />
<PackageReference Include="EasyEcs" />
paket add EasyEcs --version 1.0.8
#r "nuget: EasyEcs, 1.0.8"
#:package EasyEcs@1.0.8
#addin nuget:?package=EasyEcs&version=1.0.8
#tool nuget:?package=EasyEcs&version=1.0.8
EasyEcs
An Entity-Component-System library
Why?
Sometimes we may want to remove bidirectional dependencies between our code, and ECS is a good way to do this.
This design pattern offers a clean way to separate the data from the logic, and it's also a good way to improve the performance.
What is ECS?
E - Entity
C - Component
S - System
But what really is it?
Well, as a human, we (entities) live in the world (context), and we have some properties (components). Moreover, we have things to do based on our properties (systems).
Concepts in EasyEcs
- A
Contextholds severalEntityinstances, someSysteminstances and someSingletonComponentinstances. - Each
Entityhas someComponentinstances. - Each
Component(orSingletonComponent) has only data properties. - Each
Systemcan filter lots ofEntityinstances in the sameContextby their components and operate logics on them.
Why it removes bidirectional dependencies?
- Only
Systemcontains logics and none of them should reference on each other. But we allow one system depends on another by specifyingPriority. (They should only depend on the filtered entities/components) Componentonly contains data properties and no logics. (Again, no way to have dependency)Entityonly contains components. (It is really just a container)
Why is it fast?
- As a
Systemcan operate on a batch of entities with components, we can well utilize the cache of the MMU. - We can also easily parallelize the systems to improve the performance, in a multi-core CPU environment.
Anything special in EasyEcs?
- We have priority for
System, so you can control the order of systems. - We have frequency for
System, so you can control the frequency of systems being executed. - We only allow asynchronous interfaces for
SystemandContext, so our ECS should not block the thread (unless you screw up). - We introduce built-in parallelism and/or concurrency for
System, so you can easily parallelize your systems (for those who are in the same priority) and well utilize the multi-core CPU. - We have a cool guy who is maintaining this library. (Just kidding)
Example
Just check out the EasyEcs.UnitTest project. I have comments there.
Documentation
Believe me, one day I will make a website for this and document everything.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.5 | 360 | 11/21/2025 |
| 3.0.4 | 373 | 11/21/2025 |
| 3.0.3 | 400 | 11/20/2025 |
| 3.0.2 | 214 | 11/6/2025 |
| 3.0.1 | 198 | 11/6/2025 |
| 3.0.0 | 201 | 11/6/2025 |
| 2.1.6 | 646 | 6/5/2025 |
| 2.1.5 | 206 | 6/5/2025 |
| 2.1.4 | 209 | 6/5/2025 |
| 2.1.3 | 186 | 6/5/2025 |
| 2.1.2 | 198 | 6/4/2025 |
| 2.1.1 | 200 | 6/4/2025 |
| 2.1.0 | 200 | 6/3/2025 |
| 2.0.10 | 200 | 6/1/2025 |
| 2.0.9 | 200 | 6/1/2025 |
| 2.0.8 | 161 | 6/1/2025 |
| 2.0.7 | 156 | 6/1/2025 |
| 2.0.6 | 193 | 4/11/2025 |
| 2.0.5 | 189 | 4/11/2025 |
| 2.0.4 | 198 | 4/11/2025 |
| 2.0.3 | 250 | 3/12/2025 |
| 2.0.2 | 275 | 3/8/2025 |
| 2.0.1 | 277 | 3/8/2025 |
| 2.0.0 | 275 | 3/7/2025 |
| 1.0.8 | 172 | 2/20/2025 |
| 1.0.7 | 164 | 2/20/2025 |
| 1.0.6 | 158 | 2/20/2025 |
| 1.0.5 | 174 | 2/10/2025 |
| 1.0.4 | 163 | 2/10/2025 |
| 1.0.3 | 168 | 1/30/2025 |
| 1.0.2 | 165 | 1/21/2025 |
| 1.0.1 | 164 | 1/21/2025 |
| 1.0.0 | 162 | 1/20/2025 |
| 0.0.1 | 163 | 1/20/2025 |