Olemikomponentide süsteem

Mis on olemi-komponent-süsteem?

Entity-Component-System (ECS) on arhitektuuriline muster. Seda mustrit kasutatakse laialdaselt mängurakenduste arendamisel. ECS järgib kompositsiooni üle pärimise printsiipi, mis pakub paremat paindlikkust ja aitab teil tuvastada üksusi, kus kõiki mängu stseenis olevaid objekte peetakse üksusteks.

ECS-programmeerimine on koodi kirjutamise meetod, mis tagab vaikimisi suure jõudluse.

See süsteem koosneb kolmest terminist.

  1. Entity
  2. Komponent
  3. süsteem

Õppime seda kontseptsiooni üksikasjalikult tundma:

Sellest olemikomponentide süsteemi õpetusest saate teada:

Mis on üksus?

Üksus on eristatav objekt, mis esindab simuleeritud ruumis tegutsejat. Sellel pole tegelikke andmeid ega käitumist. See komponent annab olemile selle andmed. Tavaliselt on see tugi või sõnastik.

Näiteks kui me simuleerime mängu universumit Minecraft, loetakse kõik mänguuniversumi nähtavad, käegakatsutavad "asjad" üksusteks.

Mis on komponent?

Komponent on olemile omistatud ainulaadne käitumine. Elemendi nimi peaks ideaaljuhul näitama, millist käitumist olem avaldab. Kuid komponendil endal pole käitumist. Need on korduvkasutatavad moodulid, mis on üksuste külge kinnitatud. Komponent tagab välimuse, käitumise ja funktsionaalsuse.

Kogu loogikat rakendatakse komponentide abil, mis aitavad komponente segades ja konfigureerides määratleda erinevat tüüpi objekte.

Mis on Süsteem?

Süsteem kordab paljusid komponente, et töötada madalal tasemel

funktsioone, nagu graafika renderdamine, füüsika esitamine

arvutused või tee leidmine. See pakub komponentide klassidele globaalset ulatust, haldust ja teenuseid.

Süsteemid ei ole aga valikulised, vaid saame neid kasutada loogika ja andmete eraldamiseks. Samuti aitab see teil hallata loogilisi komponente ja toimida andmemahutitena.

Näited

  • Gravitatsioon (Kiirus) – see aitab teil raskusjõu tõttu kiirust kiirendada
  • See lisab positsioonile kiirust
  • Määrab roboti juhitava olemi sisendi vastavalt AI agendile
  • Renderdamine (positsioon, spraiid) – joonistab spraite
  • Mängija juhtimine (Input Player) aitab teil määrata mängija juhitava olemi sisendi vastavalt kontrollerile.

Aine koostis

Kompositsioon on element, millele saate lisada rohkem komponente, et lisada täiendavat välimust, käitumist või funktsionaalsust. Olemi konfigureerimiseks saate värskendada ka komponendi väärtusi.

ECS-i eelis

Siin on ECS-i kasutamise eelised programmeerimisel:

  • Saate luua lühema ja vähem keeruka koodi.
  • Väga paindlik Emergent käitumine.
  • See pakub arhitektuuri 3D ja VR arendamiseks.
  • Lubab skriptimise käitumise järgi mittetehnikute poolt.
  • See aitab teil monoliitseid klasse jagada.
  • Lihtne prügi ja kokkupanemine.
  • Lihtne võimalus ühiku testimiseks ja mõnitamiseks.
  • See võimaldab teil keerukuse mõttes luua VR-rakenduse.
  • Asendage komponendid käitusajal pilkavate komponentidega.
  • See aitab teil uusi funktsioone laiendada.
  • ECS on sõbralik meetod paralleelseks töötlemiseks ja mitme keermega töötlemiseks,
  • Aitab teil andmeid eraldada funktsioonidest, mis neid mõjutavad
  • Pakkuge objektide määratlemisel paremat paindlikkust, segades neid korduvkasutatavate osadega.
  • See pakub puhast disaini, kasutades lahtisidumise, kapseldamise, modulariseerimise ja korduvkasutatavuse meetodeid.

ECS-i kasutamise puudused

Siin on mõned ECS-i kasutamise puudused

  • Pole nii konkreetselt määratletud kui muud mustrid, näiteks MVC.
  • Raske õigesti peale kanda, lihtne väärkasutada Head komponendid nõuavad rohkem disainile mõtlemist
  • ECS nõuab paljude väikeste süsteemide kirjutamist, mis allitereerivad potentsiaalselt tohutul hulgal üksusi, mille puhul tekib oht kirjutada väga ebaefektiivset koodi
  • Enamik inimesi pole sellest mustrist isegi kuulnud.

Olemi komponendi süsteemi näide

Vaatame jänku näidet:

Vaadake nende komponentide ümber kriipsutatud kasti. See on jänkuüksus – ei midagi muud kui komponentide konteiner. Samuti saate olemid määratleda mis tahes komponentide alamhulgana.

Näete ülaltoodud pilti. See on üks jänkuüksusi – ei midagi muud kui komponentide konteiner. Olete saate määratleda mis tahes komponentide alamhulgana, näiteks Porgand:

Andmevoog ECS-is:

Süsteemi käitumine on ECS-mudel, mis on muutumine ühest olekust teise.

Mõistame seda näidet kasutades:

Käitumine: "Puul istuv jänku kukub raskusjõu tõttu."

Kuidas ülaltoodud käitumist rakendada?

Saate teha selle z väärtusega, mis on suurem kui 0, mis aja jooksul väheneb 0-ni.

Käitumine: "Elusolendid vananevad."

Vaatame, kuidas saate seda käitumist rakendada?

Saate muuta nii, et elukomponentidel on vanuseline väärtus, mis aja jooksul suureneb.

Kokkuvõte:

  • Entity-Component-System (ECS) on arhitektuuriline muster.
  • Üksus on eristatav objekt, mis esindab simuleeritud ruumis tegutsejat.
  • Komponent on olemile omistatud ainulaadne käitumine.
  • Süsteem kordab paljusid komponente, et täita madala tasemega funktsioone, nagu graafika renderdamine, füüsikaliste arvutuste tegemine või tee leidmine.
  • Kompositsioon on element, millele saate lisada rohkem komponente, et lisada täiendavat välimust, käitumist või funktsionaalsust.
  • ECS-mustri abil saate luua lühema ja vähem keeruka koodi.
  • See ei ole nii konkreetselt määratletud kui teised mustrid, näiteks MVC.
  • Süsteemi käitumine on ECS-mudel, mis on muutumine ühest olekust teise.