3.2
Προδιαγραφές και σχεδιαστικές επιλογές εντός της μηχανής
Η μηχανή επικεντρώνεται κυρίως στην ανάπτυξη δισδιάστατων παιχνιδιών, προσφέροντας
ωστόσο και βασική υποστήριξη για απλές τρισδιάστατες σκηνές, ώστε να καλύπτεται ένα ευ-
ρύτερο φάσμα εφαρμογών χωρίς να αυξάνεται υπερβολικά η πολυπλοκότητα του συστήματος.
Επιπλέον είναι κατασκευασμένη με τρόπο ώστε να είναι εύκολα επεκτάσιμη και σε δυνατό-
τητες δημιουργίας πιο πολύπλοκων τρισδιάστατων παιχνιδιών, υπάρχει δηλαδή όλη εκείνη η
απαιτούμενη υποδομή, για τη μελλοντική επέκταση και σε τέτοιες λειτουργικότητες.
Ιδιαίτερη έμφαση δίνεται στη δυνατότητα χρήσης της Python ως scripting γλώσσας. Όλα
τα εργαλεία και τα υποσυστήματα που αναπτύσσονται στη μηχανή είναι διαθέσιμα και μέσω
αντίστοιχης βιβλιοθήκης Python (ge), επιτρέποντας στον χρήστη να γράφει όλη τη λογική του
παιχνιδιού του και τις συμπεριφορές με πιο γρήγορο και ευέλικτο τρόπο.
Οι περισσότερες λειτουργικότητες της μηχανής έχουν κατασκευαστεί πάνω στο ίδιο
μοντέλο-σύστημα, που αποτελεί και βασική αρχιτεκτονική επιλογή της μηχανής. Το εν λόγω
σύστημα είναι το Entity Component System (εν συντομία ECS), το οποίο περιγράφεται ως
εξής, κάθε “αντικείμενο” της σκηνής εκφράζεται ως ένα entity, οποιοδήποτε “χαρακτηριστικό”
θέλουμε να προσδώσουμε σε αυτό το αντικείμενο έχει τη μορφή ενός component (π.χ. έχουμε
στη σκηνή μας τον entity player,ο όποιος έχει μια σειρά από components όπως το sprite,
transformation, ... ). Περισσότερες λεπτομέρειες για το σύστημα αυτό υπάρχουν στη θεωρητική
εισαγωγή της εργασίας αυτής.
Η μηχανή παρέχει υποστήριξη για την εισαγωγή δισδιάστατων assets, όπως sprites, καθώς
και για τη δημιουργία δισδιάστατων animations. Ο χρήστης έχει τη δυνατότητα να ορίζει τη
διάρκεια των animations και τη σειρά εναλλαγής των frames, επιτυγχάνοντας πλήρη έλεγχο
στη ροή της κίνησης.
Επιπλέον, υποστηρίζεται η δημιουργία γραφικού περιβάλλοντος χρήστη (GUI), με βασικά
στοιχεία όπως κουμπιά και κείμενα. Παρέχεται επίσης η δυνατότητα δημιουργίας custom UI
στοιχείων, καθώς και η χρήση προσαρμοσμένων γραμματοσειρών, ώστε ο χρήστης να μπορεί
να διαμορφώσει πλήρως την αισθητική του περιβάλλοντος.
Στον τομέα του ήχου, η μηχανή προσφέρει δυνατότητες εισαγωγής και αναπαραγωγής ήχων
και μουσικής. Ο χρήστης μπορεί να ελέγχει παραμέτρους όπως η ένταση, η επαναλαμβανόμενη
αναπαραγωγή (looping), καθώς και τη χωρική τοποθέτηση της πηγής ήχου και του ακροατή,
επιτρέποντας τη δημιουργία βασικού spatial audio.
Τέλος, υποστηρίζεται η χρήση φωτισμού (lighting) εντός της σκηνής, με δυνατότητα παρα-
μετροποίησης της θέσης της φωτεινής πηγής, του τρόπου διάχυσης του φωτός (distribution),
καθώς και της περιοχής στην οποία επηρεάζει τη σκηνή, μέσω ορισμού γωνιών ή κυκλικών
τομέων. Παρέχεται επίσης έλεγχος του χρώματος και της έντασης του φωτός.
Η μηχανή που αναπτύσσεται στο πλαίσιο της παρούσας εργασίας δεν υποστηρίζει ορισμένα
χαρακτηριστικά που συναντώνται σε σύγχρονες, πλήρως ανεπτυγμένες μηχανές παιχνιδιών. Εν-
δεικτικά, δεν παρέχεται δυνατότητα δικτυακής λειτουργίας για την ανάπτυξη παιχνιδιών με πολ-
19