6 ms·
This looks pretty well polished and maintained, I wasn't aware of it. So far, I've used an alternative ECS called entt: https://github.com/skypjack/entt https
by indigoabstract 4y ago
This looks pretty well polished and maintained, I wasn't aware of it.
So far, I've used an alternative ECS called entt:
https://github.com/skypjack/entt https://github.com/skypjack/entt
https://www.libhunt.com/compare-flecs-vs-entt?ref=compare https://www.libhunt.com/compare-flecs-vs-entt?ref=compare
- pphysch 4y agoEnTT is quite nice because it's more than just a ECS (if you want), it also includes libraries for a variety of other features like resource management. It's more of a "game engine" library, which is fantastic for projects that don't need to muck about in a "game studio" like Unity/Unreal (e.g. for games or simulations that don't require traditional level design).
- ajmmertens 4y agoThe same goes for Flecs: - it has tools like https://github.com/flecs-hub/explorer https://github.com/flecs-hub/explorer that work with any Flecs project - it has builtin support for hierarchies/prefabs and more (https://ajmmertens.medium.com/building-games-in-ecs-with-entity-relationships-657275ba2c6c https://ajmmertens.medium.com/building-games-in-ecs-with-ent...) - it has optional support for systems/scheduling - it has an optional reflection framework - it has an optional DSL for describing assets/scenes, with an online playground to try it out: https://www.flecs.dev/explorer/?local=true&wasm=https://www.flecs.dev/explorer/playground.js https://www.flecs.dev/explorer/?local=true&wasm=https://www.... - and a lot more: https://www.flecs.dev/flecs/md_docs_Quickstart.html#autotoc_md33 https://www.flecs.dev/flecs/md_docs_Quickstart.html#autotoc_...
- indigoabstract 4y agoYes, I think I like the overall EnTT design, but I've only toyed around with the ECS part, to learn how to use it. I still haven't entirely figured out when it's best to use an ECS and when to use a scene graph and if it makes any sense to use both at the same time in a project.
- pphysch 4y agoIMHO most games should use both. Think of the game as a 2D table, with Entities on one axis and their Components/Systems aligned on the other axis. Some operations go (densely) along the Component axis, like updating your physics simulation every frame. But many operations go (sparsely) along the orthogonal Entity axis, resolving events and other game rules involving many tiny sets of entities. These are orthogonal operations with different optimizations and I don't think there is one architecture to rule them all. However, I think an ECS like Flecs or EnTT is a good core to build off of.
- indigoabstract 4y agoAgreed. Especially the ability to split an object into multiple components/traits and have an operation run automatically for every component type appeals to me. It just seems elegant and 'good design', similar to 'composition over inheritance'. I think the strength of the scene graph is in the explicit parent-child relationship, where it applies, but I probably need a deeper understanding than I now have to mesh them in the right way.
- HelloNurse 4y agoFlecs and EnTT clearly position themselves as each other's rather friendly competitor, with significantly different design choices.