-
-
Notifications
You must be signed in to change notification settings - Fork 29
ECS
RaZ internally uses an ECS (Entity Component System). An ECS is basically an architecture that favors composition over inheritance, with an entity's behavior being dictated by the components it holds, and not its type hierarchy. This is a design that is very often used due to its extreme flexibility, compared to inheritance-heavy architectures that can quickly become unmaintainable.
Writing in progress.
Writing in progress.
Writing in progress.
Writing in progress.
RaZ started as a personal project made just for myself, mostly to learn as many things as I could. In this regard, having made this ECS was extremely useful, not to mention fun to do. It can of course be improved a lot, so much so that using a library (such as Flecs, EnTT, ...) could very well indeed be the best idea.
However, my idea and goal have always been that RaZ should be as intuitive to use as possible, which includes how entities, components and systems work (e.g., how components can be directly added to entities instead of using registries, managers, handlers or whatnot); and although I haven't checked thoroughly, I haven't seen any library that would allow me doing that easily, if at all.
That being said, I'm not entirely adamant on keeping it, but I don't want any change to be made just for the sake of it. If you do believe using something else would be better for ease of use, maintenance and/or performance, feel free to suggest changes, backed up by examples, profiling and/or benchmarks!
- Home
- How to build RaZ
- Getting started
- General usage knowledge
- Some examples...
- Playground
- Tutorials
- File formats
- Modules
- Debug