ECS Flashcards
(11 cards)
Kaj je ECS?
Je arhitekturni načrtovalski vzorec, ki preferira uporabo vključevanja napram dedovanja.
Kaj so komponente v ECS in kakšna je njihova vloga?
COMPONENTS vsebujejo podatke (npr. položaj, dimenzije) in nimajo funkcionalnosti.
Kaj so entitete v ECS in kaksna je njihova naloga?
ENTITY je razred, ki je zelo podoben GameObject-u. Sam po sebi vsebuje
seznam referenc na objekte tipa Component. Npr. entiteta ozadje ima
reference na komponente dimenzija, položaj, sliko. Entity lahko vsebuje samo
en primerek posamezne komponente.
Kako deluje razvrščanje entitet v ECS (Family)?
Filtri določijo, katere entitete vsebujejo potrebne komponente za določen sistem.
Kaj je engine v ECS, in kaksna je njegova naloga?
ENGINE - je osrednji razred, kamor se v fazi inicializacije prijavijo vsi objekti
tipa System. Tekom izvajanja se sistemu dodajajo ali brišejo objekti tipa Entity.
Sistemi se izvajajo ob klicu pogona v glavni zanki: engine.update(deltaTime);
- Veliko razredov tipa System in Component je generičnih in jih lahko pouporabimo pri novih igrah.
Kaj je system v ECS, in kaksna je njegova naloga?
SYSTEM je razred, ki vsebuje posamezno logiko. Npr. ustvari komet,
premakni element, izriši … Sistem pogosto definira še “družina” razredov
component (ne entitet), ki so potrebne za izvajanje logike. Sistem entitet
deluje tako, da na začetku pridobi seznam vseh entitet, ki ustrezajo kriteriju
družine. Sistemi nimajo svojega stanja (stanje imajo komponente).
Kaj je glavni cilj uporabe ECS arhitekture?
Ločitev stanja in logike igre za bolj modularen in prilagodljiv razvoj.
Kaj so marker komponente v ECS in kako jih uporabljamo?
Komponente brez podatkov, uporabljene za označevanje entitet (npr. EnemyComponent).
Kakšna je razlika med pasivnimi in aktivnimi ECS sistemi?
- Pasivni: Ne delujejo v glavni zanki (npr. predvajanje zvoka)
- Aktivni: Iterirajo preko komponent (npr. premikanje entitet)
ECS – ali je entity, ali je component, ali je system?
Entity: Objekt, ki združuje komponente.
Component: Podatkovna struktura (npr. pozicija).
System: Upravlja logiko komponent.
Nacrtovanje in implementacija ECS.
V fazi načrtovanja in kasneje implementacije, si dokumentiramo odvisnosti s
pomočjo naslednjih tabel:
- Tabela EC (Entity/Component) opisuje katere komponente določajo entitete.
- Tabela SC (System/Component) opisuje katere komponente potrebuje sistem za delovanje.
- Tabela SS (System/System) opisuje kateri sistemi sodelujejo. Lahko se dodajo tudi globalni objekti.