background image

Σχήμα 2.1: Διάγραμμα Entity Component System

Συνοψίζοντας λοιπόν, μια μηχανή παιχνιδιών είναι ένα επαναχρησιμοποιούμενο λογισμικό

(framework) με υψηλό βαθμό σύζευξης (coupling) ανάμεσα στα υποσυστήματα και από την

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

διάφορα, διαφορετικά εργαλεία (κομμάτια προγράμματος) βοηθητικά για τον δημιουργό παι-

χνιδιών που όμως κρύβουν τις λεπτομέρειες χαμηλού επίπεδου (low level) των λειτουργιών

και των υλοποιήσεων. Τα βασικότερα από αυτά τα κομμάτια, τα οποία φαίνεται να περιλαμ-

βάνονταί στις περισσότερες μηχανές είναι : Μια μηχανή για την παραγωγή 2, 3 διαστάσεων

γραφικών (rendering engine for 2d 3d graphics), Μηχανισμό διαχείρισης δεδομένων εισόδου

από πληκτρολόγιο, ποντίκι κλπ (input handling), Τη βασική δομή επανάληψης του παιχνιδιού

με τις βασικές της ρουτίνες (game loop), μηχανή διαχείρισης της Φυσικής (συγκρούσεις αντι-

κειμένων κλπ) (Physics engine), διαχείριση του ήχου (Sound), διαχείριση των κινούμενων γρα-

φικών (Animation for 2d and 3d), δυνατότητες παραλληλισμού με πολλαπλά νήματα (Process

threading).

Τέλος, να αναφερθούμε και πιο ειδικά για της μηχανές παιχνιδιών (code-first) ή (no GUI).

Μια no GUI μηχανή παιχνιδιών είναι ένα σύστημα λογισμικού που παρέχει όλες τις βασικές δυ-

νατότητες μιας μηχανής παιχνιδιών (όπως ανέλυσα παραπάνω) — όπως pipeline περιουσιακών

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

διαθέτει γραφική διεπαφή (όπως οπτικό πρόγραμμα επεξεργασίας σκηνών, γράφημα κόμβων ή

παράθυρο επιθεώρησης).

8