εισόδου θα πρέπει να είναι, αξιόπιστο (reliable) , να καταγράφει όλα τα γεγονότα (events) χωρίς
απώλειες, γενικευμένη (abstracted), να κρύβει δηλαδή τις διαφορές ανάμεσα σε λειτουργικά
συστήματα ή hardware και τέλος να είναι ευέλικτη (flexible) , να επιτρέπει αλλαγή (remapping)
πλήκτρων και χρήση πολλαπλών συσκευών.
Κύρια στοιχεία τις διαχείρισης εισόδου είναι τα εξής:
• Event System – κάθε ενέργεια (π.χ. πάτημα πλήκτρου) αντιστοιχεί σε event (KeyPressed,
MouseMoved).
• State Management – το input system πρέπει να κρατά τρέχουσα κατάσταση (π.χ. “το W
είναι πατημένο”).
• Mapping / Binding – τα raw inputs (πλήκτρα) συνδέονται με ενέργειες του παιχνιδιού
(π.χ. “W → Move Forward”).
• Device Independence – το ίδιο API πρέπει να δουλεύει είτε το input έρχεται από πλη-
κτρολόγιο είτε από controller.
Η διαχείριση εισόδου (input handiling system) αποτελεί «υποσύστημα-γέφυρα» που συνδέει
τον χρήστη με τον game loop, και γι’ αυτό είναι στενά δεμένο με το platform layer (λειτουργικό
σύστημα) και με το game loop (ώστε να καταγράφονται οι εντολές στον σωστό χρόνο).
Ο ([8]) δείχνει ότι το input handling έχει μεσαία πυκνότητα εξαρτήσεων, αλλά είναι αναγκαίο
για οποιοδήποτε είδος παιχνιδιού.
2.2.6
Βασικός βρόχος παιχνιδιού (Game Loop)
Το game loop είναι η βασική ροή εκτέλεσης του παιχνιδιού, ένας επαναλαμβανόμενος κύ-
κλος που ελέγχει τη ροή δεδομένων και την αλληλεπίδραση όλων των υποσυστημάτων της
μηχανής. Χωρίς αυτό, η μηχανή δεν θα μπορούσε να ενημερώνει τον κόσμο, να επεξεργάζεται
την είσοδο ή να εμφανίζει εικόνες στην οθόνη. Είναι η κεντρική «μηχανή» που συγχρονίζει:
- Την επεξεργασία της εισόδου (input handling).
- Την ενημέρωση της κατάστασης του παιχνιδιού (game state update, physics, AI).
- Την απόδοση των γραφικών (rendering).
Ο βρόχος παιχνιδιού (game-loop) αποτελεί θεμελιώδες σχεδιαστικό μοτίβο (design pattern)
που ο ([9]) το κατηγοριοποιεί στα "Sequencing Patterns" και είναι αυτό που εξασφαλίζει ότι το
παιχνίδι συνεχίζει να «τρέχει» ακόμα κι όταν ο χρήστης δεν κάνει καμία ενέργεια.
Σύμφωνα με ([5]), υπάρχουν διάφορες στρατηγικές υλοποίησης του βρόχου:
• Simple Loop – μια ενιαία συνάρτηση while(running) που διαχειρίζεται input, update,
render.
13