Emulation For Dummies (V – Game Engine Emulation)

(editor note)

Όχι δεν χάσατε όλα τα άλλα άρθρα που υποσχέθηκα στην εισαγωγή. Απλά αποφάσισα να ξεκινήσω από τα πιο απλά, για να μπούμε λίγο στο χώρο πιο εύκολα. Ασχολούμαστε λοιπόν πρώτα με την εξομοίωση «μηχανών» παιχνιδιών (που είναι και ελαφρώς ανεξάρτητο και διαφορετικό από τα άλλα άρθρα), μετά θα πάμε στην εξομοίωση «δεκαρικοφάγων», γιατί ουσιαστικά θα μιλήσουμε εκεί για ένα κυρίως πρόγραμμα (και μερικά τελείως δευτερεύοντα) και θα αποτελέσει και καλή βάση για να μπούμε μετά με τη σειρά στις παιχνιδομηχανές χειρός, στις κανονικές παιχνιδομηχανές και τέλος στους υπολογιστές, όπου εκεί ήδη θα καταλαβαίνετε το χώρο και απλώς θα θέλετε να σας προτείνω προγράμματα εξομοίωσης.

Ας ξεκινήσουμε λοιπόν αυτή την κατηγορία, εξηγώντας τη.

Τι εννοούμε όταν λέμε «μηχανή» παιχνιδιού. Δεν μιλάμε για μηχάνημα αλλά πρόγραμμα. Θα σας γεμίσω λίγο με ορολογία αλλά ίσως έτσι έχετε ακούσει περισσότερα. Μιλάμε για «game engine» ή αλλιώς για κάποιο low-level API που επιτρέπει (κατά κανόνα πάνω από ένα) παιχνίδια να παίζουν «επάνω» του. Γιατί;

Ας πάμε λίγο πιο πίσω. Όποιος δεν ενδιαφέρεται για αυτή την έστω ελαφρά τεχνική ανάλυση ας περάσει τις παραγράφους με τα πλαγιαστά γράμματα. Όποιος δεν ενδιαφέρεται για… τίποτα πέρα από το τι προγράμματα να τρέξει για να κάνει τι, ας κατέβει μέχρι εκεί που έχω bold γράμματα. Εκεί ξεκινάνε και οι εικόνες…

Όταν οι υπολογιστές είχαν πολύ λίγη μνήμη, λίγο χώρο αποθήκευσης και φυσικά πολύ λιγότερα προγράμματα, ο κλασσικότερος τρόπος γραφής τους ήταν κάποιος να φτιάξει τα πάντα από την αρχή. Πολύ σύντομα οι προγραμματιστές καταλάβαμε ότι κάποια κομμάτια κώδικα ήταν χρήσιμα ξανά και ξανά σε άλλα προγράμματα. Οπότε αρχικά κρατάγαμε αυτά τα κομμάτια κώδικα και τα ξαναχρησιμοποιούσαμε. Λίγο αργότερα οι γλώσσες προγραμματισμού (και οι δημιουργοί τους) κατάλαβαν πόσο σημαντικό είναι αυτό και οι νεώτερες γλώσσες (μιλάμε ακόμα για πάνω από 20 χρόνια πίσω πάντως), επέτρεπαν δομημένα αυτή τη λειτουργία. Κομμάτια κώδικα που αρχικά τα «πετάγαμε» μέσα στο σύνολο «χύμα» ή σαν «υπορουτίνες», άρχισαν να μπορούν να οργανωθούν σε «functions» που καλούσαμε με το όνομα τους και αργότερα και εξωτερικές «βιβλιοθήκες» με τέτοια functions μαζεύτηκαν. Έτσι ένας προγραμματιστής αντί να ξαναγράφει ένα κομμάτι προγράμματος (μια «ρουτίνα» όπως λέμε) που ζητάει την ημερομηνία γέννησης κάποιου και βγάζει την ηλικία του, μετά απλώς είχε ένα function για αυτή τη δουλειά και αργότερα πιθανά μια ολόκληρη βιβλιοθήκη με τέτοιες ρουτίνες που απλά τις «καλούσε» χωρίς καν να τις γράφει, συμπληρώνοντας απλώς παραμέτρους και λαμβάνοντας το αποτέλεσμα. Σαν «μαύρα κουτιά».
Αυτό το πράγμα άρχισε να «φουσκώνει» και τα μαύρα αυτά κουτιά γίνανε όλο και πιο ολοκληρωμένα και ειδικευμένα. Από βιβλιοθήκες με ρουτίνες στατιστικών υπολογισμών μέχρι βιβλιοθήκες με λειτουργίες γραφικών κλπ.

Αντίστοιχα λοιπόν, όταν μια εταιρία έφτιαχνε ένα παιχνίδι και υπολόγιζε ότι θα φτιάξει κι άλλο, φρόντιζε να οργανώσει τις λειτουργίες του σε ένα πακέτο που ονομάζουμε «μηχανή» του παιχνιδιού. Έτσι απλά αλλάζοντας παραμέτρους, γραφικά, ήχους και κανόνες λειτουργίας, έφτιαχναν νέο παιχνίδι. Αυτό βέβαια είναι αόρατο στον παίκτη που βλέπει απλά το αποτέλεσμα και ίσως απλά διακρίνει ότι το τάδε παιχνίδι μοιάζει πολύ σε λειτουργία με το προηγούμενο (που είναι και λογικό αφού είναι η συνέχεια του). Αυτό σήμερα είναι ΚΑΝΟΝΑΣ, αφού τα game engines είναι τρομερά πολύπλοκες κατασκευές μαζί με πακέτο από εργαλεία για να δημιουργήσεις επάνω τους – και μάλιστα πωλούνται ανεξάρτητα στους προγραμματιστές – αν φυσικά η εταιρία εμπορεύεται το game engine της… πχ. CryEngine, Unreal Engine κλπ. Παλαιότερα (και πολύ απλοϊκότερα) το έκαναν συγκεκριμένα είδη παιχνιδιών περισσότερο (μην ξεχνάτε τους περιορισμούς του παρελθόντος) και ειδικότερα τα λεγόμενα «Adventures». Αυτό εξηγείται εύκολα γιατί ήταν τα μοναδικά είδη που είχαν πολλές αλλά συγκεκριμένες λειτουργίες ακόμα και αν έβλεπες δέκα διαφορετικά παιχνίδια, οπότε χρειαζόταν ένα σύστημα για να τις «πακετάρει» και για την ευκολία του δημιουργού.

Αυτό που έγινε αργότερα για αυτές τις πολύ παλιές «μηχανές», ήταν ότι έξυπνοι άνθρωποι διέκριναν αυτές τις προγραμματιστικές ομοιότητες (κατά κανόνα με λίγες εξαιρέσεις οι εξομοιώσεις γίνονται ΧΩΡΙΣ τη βοήθεια των αρχικών δημιουργών των συστημάτων), «έσκαψαν» στον κώδικα τους και ανακάλυψαν αυτές τις κοινές ρουτίνες και τις επαναδημιούργησαν ΑΝΕΞΑΡΤΗΤΑ. Έτσι χρειαζόταν απλά (και νόμιμα αν ήσουν κάτοχος του αρχικού παιχνιδιού) μόνο το σύνολο των γραφικών, των ήχων, των διαλόγων και των κανόνων από ένα παιχνίδι και η επαναδημιουργημένη μηχανή αναλάμβανε να τα δέσει όλα αυτά και να παίξουν. Αυτό έχει πολλά κέρδη (ειδικά αν αναλογιστούμε ότι η εξομοιώσεις άρχισαν σε παλαιότερα συστήματα. Αν πχ. είχαμε ένα adventure που έπαιζε σε έναν Commodore 64, τώρα αντί να πρέπει να εξομοιώσουμε ΟΛΟΚΛΗΡΟ τον υπολογιστή (πράγμα απείρως πιο πολύπλοκο όσο προσπαθείς για περισσότερη ακρίβεια) και σε αυτόν να τρέξουμε το adventure, τώρα απλώς παίρναμε τα στοιχεία του (γραφικά, ήχους κλπ.) τα «ρίχναμε» σε ένα τέτοιο σύστημα («αναδημιουργημένη μηχανή») και παίζαμε, κατά κανόνα τρώγοντας λιγότερο χώρο και με μεγαλύτερη ταχύτητα (αφού δεν εξομοιώναμε έναν ολόκληρο υπολογιστή ανάμεσα). Το κέρδος μεγάλωνε όταν με την ίδια μηχανή, παίρναμε τα στοιχεία του ίδιου παιχνιδιού από… Atari ST (είπαμε γραφικά κλπ.) και επειδή η μηχανή είναι η ίδια, ξαφνικά είχαμε το ίδιο παιχνίδι σαν να παίζαμε στον Atari ST, ΧΩΡΙΣ να παίζουμε στον Atari ST. Μετά με την ίδια εξομοιωμένη μηχανή μπορούμε να παίξουμε το sequel του adventure αυτού κλπ.!

Ας φύγουμε από τα τεχνικά και ας περάσουμε στο δια ταύτα.

Οι κυριότερες μηχανές που έχουν εξομοιωθεί είναι από τη μια μεριά οι μηχανές των κλασικών adventures που είναι σκέτο κείμενο (ή κείμενο συν στατικές εικόνες) και από την άλλη τα λεγόμενα «point n’ click» adventures.

Την πρώτη κατηγορία οι fan της την έχουν ονομάσει Interactive Fiction. Ουσιαστικά είναι ο πρόγονος όλων των παιχνιδιών, αφού το πρώτο game πιθανά ήταν ένα text adventure (τι πιο απλό  εξάλλου). Δεν θα μπω στα ιστορικά όμως. Θα πω μόνο ότι η συγκεκριμένη κατηγορία είναι «alive and kicking» με πολύ πωρωμένο κοινό και νέες δημιουργίες! Επίσης με εξαιρετική προσπάθεια συλλογής και αρχειοθέτησης όλων των τίτλων (που είναι εκατοντάδες).

Ας θυμηθούμε κάποιους από αυτούς…

Κατά τη γνώμη μου δυο είναι οι εξομοιωτές μηχανών «Interactive Fiction» που αξίζουν αναφοράς σήμερα.

  • Το Gargoyle. Αν και δεν είναι τόσο ενεργό από τα μέσα του 2011, είναι ίσως το πιο πλήρες, αφού χρησιμοποιεί «plug-ins» για να εξομοιώσει πολλές I.F. μηχανές. Ουσιαστικά παίζει τα πάντα του είδους.
  • Το Filfre. Αυτό παίζει λιγότερες μηχανές, αλλά είναι πιο σύγχρονο (έχει update και μέσα στο 2013) με ότι και αν σημαίνει αυτό.

Και τα δυο είναι πολύ απλά στη λειτουργία τους. Δεν χρειάζονται καν εγκατάσταση (αν δεν θέλετε) και απλά τα τρέχετε και επιλέγετε το αρχείο του παιχνιδιού που έχετε σηκώσει από το Interactive Fiction Archive.

Στη δεύτερη κατηγορία, είπαμε είναι (συνήθως) τα λεγόμενα point ‘n’ click adventures (χωρίς τρισδιάστατα γραφικά), ίσως αυτά με τις περισσότερες αναμνήσεις στη γενιά μου. Είναι αυτά που το πάνω μέρος της οθόνης είναι εκεί που ενεργεί ο ήρωας μας και στο κάτω μέρος της οθόνης βλέπουμε τις ενέργειες που μπορεί να κάνει (οκ με πολλές παραλλαγές η περιγραφή που έδωσα).
Πιο κλασικούς εκπροσώπους έχουμε αυτά της LucasArts (ναι του γνωστού George Lucas) όπως τα Monkey Island και τα Indiana Jones ή της Sierra On-Line (βλέπε Roberta Williams) όπως τα Space Quest, Leisure Suit Larry, King’s Quest κλπ. Υπάρχουν πολλά και ακόμα και εδώ έχουμε ενεργή παραγωγή (στα πιο απλά engines) από fans του είδους!

Εδώ υπάρχει ένας «θεός» στην εξομοίωση τους. Λέγεται SCUMMVM. Το περίεργο αυτό όνομα σήμαινε «Script Creation Utility for Maniac Mansion, Virtual Machine» που ουσιαστικά λέει τι έκανε όταν ξεκίνησε, αλλά που είναι ΠΟΛΥ περιοριστικό στο τι κάνει το SCUMMVM σήμερα.
Σήμερα αυτός ο εξομοιωτής παίζει πάνω από 30 διαφορετικά engines με άλλα τόσα περίπου να αναπτύσσονται ακόμα. Πράγμα που σημαίνει πάνω από 100 διαφορετικά games (που φτάνουν στις εκατοντάδες αν βάλουμε τις παραλλαγές τους σε γλώσσες ή σε διαφορετικούς υπολογιστές με άλλα γραφικά κλπ.).
Ας πούμε αρκετούς τίτλους έτσι για να σας ξυπνήσουμε τις αναμνήσεις…

…κλπ.
Σημείωση: Ενδιαφέρον έχει ότι δεν θα βρείτε εξομοίωση συγκεκριμένων κλασικών adventure παιχνιδιών, δηλαδή των DejaVu, Uninvited και Shadowgate. Αυτό οφείλεται ότι τα παιχνίδια του συγκεκριμένου engine (MacVenture της ICOM) έχουν μπλεχτεί μέσα στα χρόνια σε έναν κυκεώνα αγοραπωλησίας των δικαιωμάτων τους και η τελευταία εταιρία που έχει τα περισσότερα από αυτά είναι η zojoi (από πρώην προγραμματιστές της ICOM) που… θεωρητικά θα τα ξανακυκλοφορήσει ανανεωμένα σταδιακά κάποια στιγμή. Φυσικά τίποτα δεν σας εμποδίζει να τα τρέξετε εξομοιώνοντας ολόκληρο τον υπολογιστή που τα τρέχατε τότε – όπως θα δούμε στο ανάλογο άρθρο.
Καταλαβαίνετε ότι αν κάτι από αυτά κάποτε σας είχε κινήσει το ενδιαφέρον, είναι πάρα πολύ καλό ότι μπορείτε να τα ξαναδείτε και να τα ξαναζήσετε σε ένα παράθυρο του σύγχρονου υπολογιστή σας.
Επόμενος σταθμός… τα ουφάδικα.

Εισαγωγή.
I- Εξομοίωση υπολογιστή. (πχ. DOS, Amiga)
II- Εξομοίωση κονσόλας (παιχνιδομηχανής). (πχ. Atari 2600, Nintendo NES, Playstation)
III- Εξομοίωση arcade (ουφάδικου). (πχ. Ms. Pac-Man, Mortal Combat, Bubble Bobble)
IV- Εξομοίωση παιχνιδομηχανής χειρός. (πχ. Nintendo Gameboy ή και τα Game & Watch)

(πάλι για τις εικόνες έγινε κλοπή από MobyGames και Wikipedia ιδίως)

Share This: