Το μυστικό είναι ότι το R-GX διατηρεί τρία διαφορετικά επίπεδα:
To API: μια βιβλιοθήκη με έτοιμες κλήσεις για τα GX4000 / CPC+: tile maps και scrolling, hardware sprites, rasters, μουσική και ήχος, walk boxes, scripts… Κάθε κλήση κάνει μία συγκεκριμένη δουλειά, δοκιμάζεται ανεξάρτητα και κρύβει τις λεπτομέρειες του hardware. Ένα παιχνίδι γράφεται με αυτές τις κλήσεις, όχι πειράζοντας απευθείας το hardware.
Πρότυπα (Templates): σημεία εκκίνησης για διαφορετικά είδη παιχνιδιών, φτιαγμένα αποκλειστικά με αυτό το API. Ένα tile-map scroller, ένα shoot’em up (σε στυλ Xenon 2), ένα platformer (σε στυλ Rayman), ένα point-and-click adventure (σε στυλ SCUMM). Δεν είναι πλήρη παιχνίδια: το καθένα έχει τη μηχανή και τα βασικά στοιχεία να λειτουργούν, κι εσύ χτίζεις το παιχνίδι σου από πάνω.
Ο editor: απλά δεδομένα εισαγωγής. Σχεδιάζεις τον χάρτη σου, εισάγεις τα sprites σου, ρίχνεις μέσα ένα αρχείο μουσικής για μετατροπή, ρυθμίζεις δωμάτια και αντικείμενα με λίστες και κουμπιά. Δημιουργεί την κασέτα για σένα και την τρέχει στον εξομοιωτή.
Έτσι παραμένει απλό για τον δημιουργό του παιχνιδιού, ενώ η ευελιξία προέρχεται από το API. Όταν ένα παιχνίδι χρειάζεται κάτι νέο, αυτό γίνεται μια νέα κλήση API και κάθε παιχνίδι μπορεί να τη χρησιμοποιήσει στη συνέχεια. Γράφεις κώδικα μόνο αν θέλεις να πας πέρα από αυτά που προσφέρει το API.
Υπάρχουν ακόμη πολλά να γίνουν, αλλά θα συνεχίσω να δημοσιεύω την πρόοδο. Θα χαρώ πολύ να ακούσω τι είδος παιχνιδιού θα ήθελες να φτιάξεις με αυτό!
Σας ευχαριστώ για την επεξήγηση, νομίζω ότι αυτό ακούγεται πολύ τέλειο!
Μην με παρεξηγήσετε, αλλά όταν πρωτοείδα το πρότζεκτ σας μου θύμισε εκείνο το πρωταπριλιάτικο αστείο στο περιοδικό Your Sinclair… καθαρά και μόνο επειδή αυτό που κάνετε είναι τόσο ολοκληρωμένο!
Για να είμαι ειλικρινής, όταν άρχισα να δουλεύω στο Rayman-GX, δεν το πίστευα ούτε ο ίδιος όταν κατάφερα να κάνω τον Rayman να αναπηδά, να πιάνεται από αμπέλια, να ρίχνει τη γροθιά του και να κάνει όλα όσα τον έκαναν να θυμίζει τον Rayman. Εκεί ουσιαστικά γεννήθηκε και η ιδέα για το GDK.
Καθώς ανέπτυσσα το Rayman-GX, έφτιαχνα όλο και περισσότερα εργαλεία για να διευκολύνω τη ζωή μου. Κάποια στιγμή έκανα ένα βήμα πίσω και σκέφτηκα: «Χμμ… αν μπορώ να αντικαταστήσω τον χαρακτήρα, να αλλάξω τους χάρτες και τη μουσική, μπορώ ουσιαστικά να δημιουργήσω ένα εντελώς νέο παιχνίδι».
Και έτσι γεννήθηκε το R-GX GDK. Το κομμάτι «R-GX» προέρχεται αρχικά από το (R)ayman-GX, αλλά το project εξελίχθηκε σταδιακά σε κάτι πολύ μεγαλύτερο και πιο γενικό από τον αρχικό του σκοπό.
Τεχνικά δεν είναι, ή τουλάχιστον όχι περισσότερο από ό,τι στον τυπικό CPC.
Ωστόσο, τα hardware sprites είναι ανεξάρτητα από τη λειτουργία οθόνης (screen mode) και τα μεμονωμένα pixels μέσα σε αυτά έχουν πάντα μέγεθος Mode 2 (με 15 πιθανά χρώματα). Αυτό είναι αρκετά μικρό, αλλά μπορείτε να εφαρμόσετε μεγέθυνση x2 ή x4 οριζόντια ή/και κατακόρυφα ανά sprite.
Σε κατακόρυφη μεγέθυνση x1, η οριζόντια μεγέθυνση x2 σας δίνει pixels σε μέγεθος Mode 1, αλλά με 15 χρώματα, ενώ το x4 μοιάζει περισσότερο με το Mode 0.
Ρήματα => μισό πλάτος Screen Mode 1 => 48 scanlines που μοιράζονται με το Mode 0
Inventοry (Περιεχόμενα) => το άλλο μισό Screen Mode 0
Όταν κάνετε διαχωρισμό (split) για να έχετε αυτές τις λειτουργίες οθόνης (screen modes) στην ίδια ορατή οθόνη, κάθε ζώνη αποκτά τη δική της παλέτα.
Εξαιρούνται τα ρήματα και το inventory επειδή βρίσκονται στην ίδια scanline, οπότε το mode 0 κληρονομεί τα 4 χρώματα γραφίδας (pen color) από το mode 1, στα αριστερά του.
ΥΓ: Στα μοντέλα Plus, το ASIC αναλαμβάνει τη δουλειά για όλα τα splits, εκτός από το να υπάρχουν δύο modes στην ίδια scanline (τα ρήματα και το inventory μας).