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