Entity-Component System
Entity component system is a widely used game designing pattern for gaming.
what is an Entity-Component System?
ECS can be divided into three main categories
1. Component is a behavior or data
2. Entity is just an id and you can add Component to Entity
3. System deals mostly with logic like rendering game, updating physics or dealing with game logic
so a Component is just behavior or little logical data like the position of a character in-game scene or scaling factor or RGB color value.
An entity is just a id and its main job to track all behavior ( Component ) so that's means a Entity can multiple Component or behavior.
added small example in typescript
working link=> https://stackblitz.com/edit/gaming-entity-component-system?file=index.ts
above working link easily be converted to c++ which is widely used gaming language
| Entity | position Component | scale Component | rotation Component |
| Monster | Monster position | Monster scaling | Monster rotation |
| hero | hero position | hero scaling | hero rotation |
| boos | boss position | boss scaling | boss rotation |
| so on... |
System- handle complex logics mainly rendering update components at runtime or change the behaviour with renderloop
notes about ecs
1. the above example is very simple and suitable for big games
2. But for big games ECS combine with other designing pattern
3. Singleton pattern is widely used pattern to share common data between different game scene
4. static classes widely used to solve logic.
5. sometimes inheritance is a better to approach when ur game is small
6. composition is another approach which can be used in creating games
7. so the question where i can use ECS.
my advice
if the game contains multiple characters like a hero, monster, boss, sub-boss, evil hero or many more and each character share multiple behaviour it would be tuff to used inheritance in such cases.
Comments
Post a Comment