background image

Entity

+ id : uint32_t

Component

<<abstract>>

TransformComponent

+ position : vec3

+ rotation : vec3

+ scale : vec3

SpriteRendererComponent

+ textureID

+ color

System

<<abstract>>

+ update()

RenderSystem

+ update()

Registry / ECSManager

+ createEntity()

+ addComponent()

+ getComponent()

Σχήμα 4.4: Class Diagram της αρχιτεκτονικής ECS

4.6

Σύστημα διαχείρισης σκηνής (Scene Management)

Η έννοια της σκηνής (Scene) αποτελεί θεμελιώδη δομικό στοιχείο σε κάθε μηχανή παιχνι-

διών, καθώς λειτουργεί ως το περιβάλλον εντός του οποίου συνυπάρχουν και αλληλεπιδρούν

οι οντότητες του κόσμου. Στο πλαίσιο της παρούσας μηχανής, η σκηνή υλοποιείται ως ανώ-

τερο επίπεδο διαχείρισης, το οποίο ενοποιεί το σύστημα ECS, το σύστημα απόδοσης και τα

επιμέρους συστήματα λογικής.

4.6.1

Η κλάση Scene

Η κλάση Scene είναι υπεύθυνη για:

• Δημιουργία και καταστροφή οντοτήτων

• Διαχείριση του ECS Registry

• Κλήση των Systems (RenderSystem, PhysicsSystem, ScriptSystem)

• Διατήρηση αναφοράς στην ενεργή κάμερα

• Οργάνωση του update loop

Η κλάση Scene λειτουργεί ως επίπεδο απομόνωσης μεταξύ της μηχανής και της εφαρμο-

γής του χρήστη. Ο χρήστης (δημιουργός παιχνιδιού) έχει τη δυνατότητα να κατασκευάζει μία

σκηνή (δηλαδή ένα αντικείμενο της κλάσης Scene) για κάθε επίπεδο του παιχνιδιού του. Με

τον τρόπο αυτό επιτυγχάνεται η απομόνωση των αντικειμένων και των επιμέρους λειτουργικο-

τήτων κάθε επιπέδου σε μια διακριτή οντότητα, διευκολύνοντας την οργάνωση, τη διαχείριση

και την επεκτασιμότητα της εφαρμογής.

35