6 ms·
Check this out. https://github.com/skypjack/entt https://github.com/skypjack/entt EnTT is a header-only, tiny and easy to use library for game programming and
by nodivbyzero 5y ago
Check this out.
https://github.com/skypjack/entt https://github.com/skypjack/entt
EnTT is a header-only, tiny and easy to use library for game programming and much more written in modern C++.
Among others, it's used in Minecraft by Mojang, the ArcGIS Runtime SDKs by Esri and the amazing Ragdoll.
- elteto 5y agoTiny? In what world is this tiny? entt.hpp: #include "config/version.h" #include "core/algorithm.hpp" #include "core/any.hpp" #include "core/attribute.h" #include "core/family.hpp" #include "core/hashed_string.hpp" #include "core/ident.hpp" #include "core/monostate.hpp" #include "core/type_info.hpp" #include "core/type_traits.hpp" #include "core/utility.hpp" #include "entity/component.hpp" #include "entity/entity.hpp" #include "entity/group.hpp" #include "entity/handle.hpp" #include "entity/helper.hpp" #include "entity/observer.hpp" #include "entity/organizer.hpp" #include "entity/poly_storage.hpp" #include "entity/registry.hpp" #include "entity/runtime_view.hpp" #include "entity/snapshot.hpp" #include "entity/sparse_set.hpp" #include "entity/storage.hpp" #include "entity/utility.hpp" #include "entity/view.hpp" #include "locator/locator.hpp" #include "meta/adl_pointer.hpp" #include "meta/container.hpp" #include "meta/ctx.hpp" #include "meta/factory.hpp" #include "meta/meta.hpp" #include "meta/node.hpp" #include "meta/pointer.hpp" #include "meta/policy.hpp" #include "meta/range.hpp" #include "meta/resolve.hpp" #include "meta/template.hpp" #include "meta/type_traits.hpp" #include "meta/utility.hpp" #include "platform/android-ndk-r17.hpp" #include "poly/poly.hpp" #include "process/process.hpp" #include "process/scheduler.hpp" #include "resource/cache.hpp" #include "resource/handle.hpp" #include "resource/loader.hpp" #include "signal/delegate.hpp" #include "signal/dispatcher.hpp" #include "signal/emitter.hpp" #include "signal/sigh.hpp"
- linkdd 5y agoSince it's a header-only library, with a lot of templates, only the used code will be compiled. So yes, this is tiny. Tinier than Unity, CryEngine, Unreal Engine, or other huge frameworks of that kind.
- meheleventyone 5y agoA comparison to those engines is a bit much isn’t it? It’s not like it provides comparable features.
- linkdd 5y agoIIRC, all those engines provide an ECS that could be compared to entt. Also, there is Hazel[0] which is based on entt and is the subject of an amazing youtube series[1]. IMHO, tinier means less features, at that point what could be considered comparable? [0] - https://github.com/TheCherno/Hazel [1] - https://www.youtube.com/playlist?list=PLlrATfBNZ98dC-V-N3m0Go4deliWHPFwT
- meheleventyone 5y agoTo be comparable in size we should look at what they do. The three game engines originally mentioned have everything from physics to an entire visual IDE. A comparable smaller project is Godot not entt. A comparable ECS implementation is what you’re after. Is entt tiny in comparison to similar projects.