ΚΕΦΑΛΑΙΟ 2
Θεωρητικό υπόβαθρο και ορισμοί
Σε αυτή την ενότητα θα δοθεί μια θεωρητική ανάλυση γύρω από τις μηχανές παιχνιδιών. Θα
παρουσιαστούν όλοι οι απαραίτητοι ορισμοί και αναλύσεις, έτσι ώστε να γίνουν κατανοητά και
διακριτά όλα τα βασικά συστήματα και υποσυστήματα μιας μηχανής. Σκοπός είναι η κατανόησή
τους σε θεωρητικό επίπεδο, ώστε στη συνέχεια να προχωρήσουμε στην υλοποίηση, έχοντας τις
κατάλληλες βάσεις. Όλα τα παραπάνω θα παρουσιαστούν με αναφορά σε σχετικές εργασίες.
2.1
Τι είναι μια μηχανή παιχνιδιών;
Ένας απλός ορισμός της μηχανής παιχνιδιών είναι ότι πρόκειται για λογισμικό το οποίο χρη-
σιμοποιείται για τον σχεδιασμό και την ανάπτυξη παιχνιδιών και πολυμεσικών εφαρμογών. Η
παραπάνω πρόταση δίνει μια πρώτη εικόνα κατανόησης της έννοιας αλλά δεν μπορεί να απο-
τελέσει καλό ορισμό για μια βαθύτερη κατανόηση τόσο του τι είναι αλλά και των λειτουργιών
που πρέπει να έχει ένα λογισμικό για να χαρακτηριστεί ως μηχανή παιχνιδιών. Στη συνέχεια η
έννοια προσεγγίζεται από διαφορετικές οπτικές ώστε να καταλήξουμε σε έναν ενιαίο και πλήρη
για τα πλαίσια της εργασίας αυτής ορισμό.
Μια μηχανή παιχνιδιών (game engine) μπορεί να οριστεί ως ένα επαναχρησιμοποιήσιμο λο-
γισμικό πλαίσιο (framework), το οποίο παρέχει τις βασικές λειτουργίες που απαιτούνται για την
ανάπτυξη ψηφιακών διαδραστικών παιχνιδιών. Σε αντίθεση με τον κώδικα που γράφεται απο-
κλειστικά για ένα συγκεκριμένο παιχνίδι, η μηχανή προσφέρει ένα σύνολο υποσυστημάτων που
μπορούν να χρησιμοποιηθούν σε διαφορετικούς τίτλους, μειώνοντας τον χρόνο ανάπτυξης και
ενισχύοντας την επαναχρησιμοποίηση. Ο ([4]) στο βιβλίο του, τονίζει ότι μια μηχανή παιχνιδιών
διαχωρίζεται σε δύο βασικά μέρη: το runtime, που περιλαμβάνει τον βρόχο εκτέλεσης (game
loop), την απόδοση γραφικών και τη φυσική (rendering, physics engine), και το "pipeline" ερ-
γαλείων, δηλαδή editors, asset compilers και debuggers, που διευκολύνουν την ανάπτυξη αλλά
δεν διανέμονται απαραίτητα με το τελικό προϊόν. Με τον ορισμό αυτό δίνει μια διαφορετική
οπτική στο τι είναι μηχανή παιχνιδιών.
Στην εργασία ([11]) εξετάζει τις μηχανές παιχνιδιών υπό το πρίσμα των λογισμικών ως
(software frameworks) και καταλήγει ότι, σε αντίθεση με τα παραδοσιακά frameworks, οι μη-
χανές χαρακτηρίζονται από υψηλό βαθμό σύζευξης (coupling) ανάμεσα στα υποσυστήματα και
από την ανάγκη για απόδοση πραγματικού χρόνου και ντετερμινιστική συμπεριφορά.
Σύμφωνα με ([2]), ο βασικός στόχος μιας μηχανής παιχνιδιών είναι, να παρέχει με έναν πιο
αφαιρετικό (γενικευμένο) τρόπο όλα τα βασικά χαρακτηριστικά που συνήθως συναντάμε σε
6