ΚΕΦΑΛΑΙΟ 4
Υλοποίηση
4.1
Γενική αρχιτεκτονική
Προτού προχωρήσουμε στην ανάλυση και την πρακτική υλοποίηση όλων των συστημάτων
και υποσυστημάτων της μηχανής παιχνιδιών, κρίνεται σκόπιμο να γίνει ένα βήμα πίσω και να
εξεταστεί, σε αφαιρετικό επίπεδο, η αρχιτεκτονική που οφείλει να διαθέτει η μηχανή. Η αρχι-
τεκτονική αποτελεί το θεμέλιο πάνω στο οποίο δομούνται όλα τα επιμέρους τεχνικά στοιχεία.
Επιπλέον, η κατανόησή της είναι ουσιώδης, καθώς επιτρέπει την ερμηνεία των σχεδιαστικών
επιλογών που θα παρουσιαστούν στα επόμενα στάδια της εργασίας.
Η μηχανή που αναπτύσσεται στο πλαίσιο της παρούσας εργασίας βασίζεται στην πολυ-
επίπεδη αρχιτεκτονική (layered architecture). Τα κατώτερα επίπεδα, τα οποία συνιστούν τον
πυρήνα της μηχανής, είναι υπεύθυνα για την απόδοση και τη διαχείριση πόρων. Αντίθετα, τα
ανώτερα επίπεδα περιλαμβάνουν τα επιμέρους συστήματα που διαμορφώνουν το επίπεδο αλλη-
λεπίδρασης με τον χρήστη και εκθέτουν το αντίστοιχο προγραμματιστικό περιβάλλον διεπαφής
(API) Σχήμα 4.1.
Στο ανώτερο επίπεδο βρίσκεται η κλάση Application, η οποία αποτελεί το κεντρικό σημείο
ελέγχου της μηχανής. Η κλάση αυτή είναι υπεύθυνη για τη δημιουργία και διαχείριση των πα-
ραθύρων, την αρχικοποίηση των βασικών υποσυστημάτων και την εκτέλεση του κύριου βρόχου
(main loop) της εφαρμογής. Σε κάθε κύκλο εκτέλεσης πραγματοποιείται επεξεργασία γεγονό-
των, ενημέρωση της κατάστασης του συστήματος και απόδοση της σκηνής.
Για τη διαχείριση της λογικής οργάνωσης της εφαρμογής, η μηχανή παρέχει έναν μηχανι-
σμό στοίβας επιπέδων (LayerStack). Κάθε επίπεδο (Layer) αντιπροσωπεύει ένα διακριτό τμήμα
λειτουργικότητας, όπως για παράδειγμα τη λογική του παιχνιδιού ή το σύστημα γραφικού περι-
βάλλοντος (GUI). Η κλάση Application διατρέχει διαδοχικά τα επίπεδα και καλεί τις αντίστοιχες
μεθόδους ενημέρωσης και διαχείρισης γεγονότων, επιτυγχάνοντας σαφή διαχωρισμό ευθυνών
και ευέλικτη σύνθεση της τελικής εφαρμογής.
Στο χαμηλότερο επίπεδο της αρχιτεκτονικής εντοπίζονται τα υποσυστήματα που σχετίζο-
νται με την άμεση αλληλεπίδραση με το υλικό και τις εξωτερικές βιβλιοθήκες. Η διαχείριση
παραθύρου και εισόδου υλοποιείται μέσω αφηρημένων (abstract) κλάσεων, οι οποίες αποσυν-
δέουν τον πυρήνα της μηχανής από τη συγκεκριμένη βιβλιοθήκη που χρησιμοποιείται — στην
παρούσα υλοποίηση, τη GLFW. Με τον τρόπο αυτό διατηρείται η ανεξαρτησία από εξωτερι-
κές τεχνολογίες και καθίσταται δυνατή η αντικατάσταση ή επέκτασή τους χωρίς σημαντικές
τροποποιήσεις στον πυρήνα.
23