ecs-faq
EntityComponentSystemSamples
ecs-faq | EntityComponentSystemSamples | |
---|---|---|
21 | 23 | |
1,760 | 6,833 | |
- | 1.0% | |
6.0 | 4.8 | |
3 months ago | 7 days ago | |
C# | ||
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ecs-faq
-
Show HN: Interactive ECS Systems/Component Explorer for Cities: Skylines 2
The Wikipedia article provides a broad overview, while this FAQ offers a more systematic exploration: https://github.com/SanderMertens/ecs-faq
-
Sparsey 0.11.0 Release - Better Performance
Sparsey is an Entity Component System focused on flexibility, conciseness and providing features exclusive to its sparse set-based implementation.
-
Beginner looking for code review : my ECS lib !
For further reading, here is a great article about these different approaches within Rust specifically: https://csherratt.github.io/blog/posts/specs-and-legion/ and here is a great general resource for commonly-used terms and techniques in ECS development: https://github.com/SanderMertens/ecs-faq
-
Ways to create game engines
Godot has a node based system (nodes can have child nodes linked to them, and there are different types of nodes for the type of functionality they represent). Another alternative could be a more OOP approach (utilising inheritance as the main means of extending functionality), not aware of any modern engines that take this approach anymore. It’s also worth noting that ECS implementations can differ wildly, this faq from the flecs creator has a good rundown on what some of different variants are.
-
Is ECS really the way to go in C++?
You might wanna take a look at https://github.com/SanderMertens/ecs-faq, it lays this all out better than I can.
-
Flecs 3.2, a high performance game development framework for C and C++ is out!
To find more about ECS, see the FAQ: https://github.com/SanderMertens/ecs-faq/blob/master/README.md
-
Functional relational programming model in Clojure(Script)
Using the relational model for app data in memory is really interesting.
Martin Fowler wrote about doing that as a way to get around the "object-relational mismatch" issue[1]. Richard Fabian describes "data-oriented design" as having a lot of overlap with the relational model[2]. ECSes becoming very popular in game engines are basically in-memory relational databases where "components" are "tables"[3].
[1]: https://martinfowler.com/bliki/OrmHate.html
[2]: https://dataorienteddesign.com/dodbook/
[3]: https://github.com/SanderMertens/ecs-faq#what-is-ecs
-
does an ECS system need unique identifier ( uuid ) ?
This is the ECS FAQ I'm currently using.
-
What are some things you have used ECS for?
While Unity's DOTS/ECS is positioned as solving performance issues for large numbers of objects, there are a number of other advantages. See https://github.com/SanderMertens/ecs-faq for a more in-depth look. IMHO the reusability and extensibility ECS encourages is as valuable as any performance increase. Compared to the GameObject style, which encourages random state mutations and side-effects, ECS enforces a more functional style, which results in code that is easier to reason about and test.
-
Dominion VS Artemis, the missing benchmarks (link in the comments)
thanks, i think a little more background on the ECS world will help you get the context, this is from the author of Flecs: https://github.com/SanderMertens/ecs-faq
EntityComponentSystemSamples
-
Added Physics to my enemies - Unity DOTS. Pretty happy with the result! Time to tweak
Sure. This is the repo. It contains more than Physics
- Has anyone here ever used the DOTS system in the wild? And how did that go?
-
Compilation error after importing com.unity.entites.
(In general - I'd recommend looking at https://github.com/Unity-Technologies/EntityComponentSystemSamples and use their manifest.json as a base for your project)
-
ECS Utility AI
heres some samples and reads from unity https://github.com/Unity-Technologies/EntityComponentSystemSamples
-
I need a crash course on Unity dots
Check out the links here. The official ressources contain videos, text tutorials and examples.
-
EntityQuery inside a burst compiled job?
The manual is a good starting point. There is also the scripting API for specific syntax, the dots samples by unity and the megacity sample by unity for a full project.
-
How should I get player input when using ECS?
The ECS samples have both. I am using the new input system and it works. The gist is to have a systembase for the callbacks that sets singleton components for the gathered input. Then each system (base or isystem) can query those as normal components. New input system
-
I learned how to use Unity DOTS and unlocked a new kind of pain.
DOTS comprises a number of new features in Unity. Dive into this GitHub as it’s got a number of great resources to get started.
-
Edsger Dijkstra - math and memes
In Unity, the implementation was done by moving functions from the Entity to the Archetype, which then can be accessed via interfaces. Those interfaces can be inherited in classes. I have "running, waiting, scanning" behaviour classes that get applied to those Archetypes, so OOP is still there but different.
-
Spawning multiple entities at once
If you have the same problem that I had. I found the solution from Unity's ECS Samples here the link: https://github.com/Unity-Technologies/EntityComponentSystemSamples it's in Advanced/EntityPrefab long story short you should use DynamicBuffer with struct that includes EntityPrefabReference and then you must load it via adding RequestEntityPrefabLoaded component and only then when we have PrefabLoadResult component we can spawn it.
What are some alternatives?
Node RED - Low-code programming for event-driven applications
unity-deterministic-physics - Cross-platform deterministic physics simulation in Unity, using DOTS physics and soft floats
dominion-ecs-java - Insanely fast ECS (Entity Component System) for Java
ecs-unityintegration - UnityEditor integration for LeoECS Entity Component System framework.
entt - Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
SimpleSIMD - Easy to use SIMD accelerated Array and Span methods
Superstar-Game-Suite - A top-down 2D game creation suite for platforming, world building, and story telling.
unity_browser - Open source Unity3d web browser created by Vitaly Chashin https://bitbucket.org/vitaly_chashin/simpleunitybrowser
ygopro - A script engine for "yu-gi-oh!" and sample gui
libm - A port of MUSL's libm to Rust.
entityx - EntityX - A fast, type-safe C++ Entity-Component system
UniteAustinTechnicalPresentation