In the past week I started reviving my old game engine project, revive might not be the correct term because I’m starting from scratch. It’s still going to be an ECS-based (Entity-Component-System) game engine, taking inspiration from amethyst and specs.
Gamedev.net has a good article about ECS but the gist is:
- Entities are just containers for components (we can even represent them as an
- Components are just a plain old data classes, no logic!
- Systems are the heart of ECS, they process entities they are “interested” with. A good example is a
RenderingSystem, it will only process an entity that has both a
We all know too much inheritance is bad, using ECS helps mitigate that and a big plus is we have clear separation of data and logic.