To Contra επιστρέφει στο Amstrad CPC 6128 με συνεχές scrolling

Εμπλοκή Κώδικα & Λογικής

Πλήρης Vibe-Code (η ΤΝ παρήγαγε σχεδόν όλο τον κώδικα του παιχνιδιού)

Εμπλοκή Assets & Pipeline

Εργαλεία Build / Scripts μετατροπής assets

Σημειώσεις Έργου & Prompts

Claude

Το Gryzor (Ocean / Konami, 1987) είναι η μεταφορά του Contra για το Amstrad CPC. Το παιχνίδι δείχνει υπέροχο, αλλά το φόντο δεν σκρολάριζε ποτέ πραγματικά· αντίθετα, προχωρούσε με άλματα μισής οθόνης, κάνοντας μια μικρή παύση κάθε φορά.

Το CONTRA 6128 είναι μια αναθεωρημένη έκδοση του αρχικού παιχνιδιού για το Amstrad CPC 6128, η οποία διαθέτει ομαλό, συνεχές scrolling στο φόντο.

Τι έχει αλλάξει

Συνεχές scrolling στη ζούγκλα και στο τελευταίο επίπεδο: το φόντο ακολουθεί τον παίκτη αντί να πραγματοποιεί άλματα μισής οθόνης.
Ομαλή άνοδος στον καταρράκτη: το άλμα του ενός τρίτου της οθόνης του πρωτοτύπου αντικαταστάθηκε από μια κινούμενη κίνηση προς τα πάνω.
Τέλος οι παύσεις στις μεταβάσεις της οθόνης.
Καθαρή προβολή: κάθε καρέ (frame) προετοιμάζεται εκτός οθόνης και στη συνέχεια εμφανίζεται ακαριαία.
Νέα οθόνη τίτλου και τίτλος: CONTRA.

Τι παραμένει ίδιο

Τα γραφικά, οι εχθροί, οι κανόνες και ο ρυθμός του παιχνιδιού είναι πανομοιότυπα με τα αντίστοιχα του πρωτοτύπου.
Τα επίπεδα σταθερής οθόνης (διάδρομοι βάσης) είναι ακριβώς τα ίδια με εκείνα του παιχνιδιού του 1987.
Η αυθεντική μουσική από την έκδοση των 128KB περιλαμβάνεται: πιέστε ESC στην οθόνη τίτλου για να εναλλαγείτε μεταξύ εφέ ήχου και μουσικής.

5 «Μου αρέσει»

Ουάου, το Gryzor είναι πραγματικά ένα σημείο αναφοράς στον κόσμο του CPC. Το να το τροποποιεί μια ΑΙ μόνο με prompts είναι μια τεράστια επίδειξη της προόδου της.

Όχι πια παύσεις στις μεταβάσεις οθόνης.

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

Εντυπωσιακό επίτευγμα από τον Claude Fable. Ευχαριστούμε τον κ. Louvet που το δοκίμασε και το μοιράστηκε με όλο τον κόσμο!

2 «Μου αρέσει»

Πώπω, αυτό κι αν είναι εντυπωσιακό!

Τι απέγινε εκείνο το παλιό tech demo του Gryzor που είχε εμφανιστεί πριν από πολλά φεγγάρια;

Αναφέρεσαι στο Gryzor Reloaded;

Χμ, έτσι νομίζω;

Τι νέο υπάρχει στην έκδοση 1.1

Αυτή η ενημέρωση διορθώνει προβλήματα στο gameplay που εντοπίστηκαν κατά την αναπαραγωγή της έκδοσης 1.0 και προσθέτει ένα κουμπί άλματος.

Διορθώσεις στο gameplay

  • Οι εχθροί εμφανίζονται στην ώρα τους. Στην έκδοση 1.0, ορισμένοι εχθροί εμφανίζονταν πολύ αργά λόγω της νέας ομαλής κύλισης (smooth scrolling), ειδικά τα πυροβόλα που είναι ενσωματωμένα στο σκηνικό και τα bonus pods που πρέπει να καταστρέψετε. Κάθε εχθρός εμφανίζεται τώρα την ακριβή στιγμή που το τμήμα του σκηνικού του εμφανίζεται στην οθόνη, στο ίδιο σημείο όπως στο αρχικό παιχνίδι.
  • Η ιπτάμενη κάψουλα όπλων επέστρεψε. Η κάψουλα που πετάει από πίσω νωρίς στο πρώτο στάδιο, μεταφέροντας το spread gun, αφαιρούνταν από την κύλιση πριν προλάβει να φτάσει στην οθόνη. Τώρα διασχίζει την οθόνη όπως ακριβώς έκανε το 1987.
  • Η είσοδος της βάσης ανοίγει ξανά. Στο τέλος του πρώτου σταδίου, η καταστραμμένη πόρτα αντικαθίσταται πλέον σωστά από την τρύπα, αντί να επανεμφανίζεται η κλειστή πόρτα.
  • Όχι πια εξαφανισμένοι εχθροί. Το παιχνίδι έχει χώρο μόνο για επτά εχθρούς ταυτόχρονα. Στο τελευταίο στάδιο, η έκδοση 1.0 μπορούσε να χάσει έναν από αυτούς όταν εκείνος ο χώρος ήταν γεμάτος· ένας εχθρός περιμένει τώρα για μια ελεύθερη θέση αντί να ακυρώνεται.

Νέα χαρακτηριστικά

  • Άλμα με το δεύτερο κουμπί. Το δεύτερο κουμπί βολής του joystick κάνει τώρα τον παίκτη να πηδάει, ακόμα και όταν πυροβολεί. Η πίεση προς τα πάνω εξακολουθεί να κάνει άλμα όπως πριν, και το πάνω + βολή εξακολουθεί να στοχεύει προς τα πάνω.
  • Αριθμός έκδοσης που εμφανίζεται κάτω αριστερά στην οθόνη τίτλου.
1 «Μου αρέσει»

το τι πράγμα; :smiley:

Ναιιιι… αυτό το σκρολάρισμα ΔΕΝ είναι καθόλου ομαλό, το ακριβώς αντίθετο μάλιστα. Είναι απαράδεκτο.

Και όταν η οθόνη γεμίζει sprites και σφαίρες (ειδικά όταν έχεις ρίξει με το διασποράς), το frame rate πέφτει στο πάτωμα. Καμία σχέση με την αρχική έκδοση όπου τα FPS ήταν σταθερά.

Καλή προσπάθεια πάντως.

3 «Μου αρέσει»

Στην επόμενη έκδοση σίγουρα θα το βρει το κόλπο χεχε :laughing:

Πιστεύω αντιθέτως ότι το scrolling είναι καλό, το παιχνίδι γίνεται πιο ευχάριστο.

Μπράβο!

To πιο ενδιαφέρον κομμάτι σε αυτό είναι το πόσο γρήγορα κατάφεραν να εξαγάγουν και να αφαιρέσουν ένα μεγάλο μέρος της λογικής του παιχνιδιού, καθώς και των γραφικών και ηχητικών στοιχείων του (assets). Το να το κάνουν να σκρολάρει σε έναν CPC ήταν πιθανότατα ανέκαθεν υπερβολική απαίτηση (υπάρχει λόγος που το πρωτότυπο δεν το κάνει), αλλά το ότι μπόρεσαν να φτάσουν σε αυτό το σημείο τόσο γρήγορα σημαίνει ότι μπορεί να είναι πιο εφικτό να στοχεύσουν το υλικό του Plus, το οποίο είναι παραπάνω από ικανό, χωρίς τεράστια προσπάθεια επαναϋλοποίησης.

1 «Μου αρέσει»

To sprite του ήρωα φαίνεται να τρέμει όταν γίνεται το scrolling. Αυτό θα μου προκαλούσε πονοκέφαλο.
Ίσως ένα pushscroll να ήταν καλύτερο, όπως στο Ghosts’n’Goblins; Δεν είμαι σίγουρος.

Στον CPC ο ρυθμός ανανέωσης πλαισίων (frame rate) είναι αυτός που βάζει το όριο (στην περίπτωση του software scroll, ο ταχύτερος τρόπος που έχω ερευνήσει είναι η μέθοδος της Ocean όπως χρησιμοποιήθηκε στο Batman, 2 εικονοστοιχεία οριζόντια, 2 γραμμές κατακόρυφα), και αυτό απαιτεί περίπου 2 frames για τη σχεδίαση των tiles. Στη συνέχεια, τα sprites και το gameplay προστίθενται στον χρόνο επεξεργαστή για κάθε ενημέρωση. Το scroll στο Shinobi είναι παρόμοιο αλλά όχι τόσο γρήγορο, το Extreme είναι καλό αλλά επίσης όχι τόσο γρήγορο, ενώ άλλα παιχνίδια είναι είτε συχνά πιο αργά είτε/και επιλέγουν να μειώσουν την περιοχή σχεδίασης για να διατηρήσουν κάποια fps.

Τα software scrolls φαίνεται να γίνονται όλα byte προς byte και ορισμένα, όπως το Golden Axe, κάνουν ακόμα και scroll βασισμένο σε χαρακτήρες (char based scroll).

Η μέθοδος της Ocean καλύπτει συχνά και μεγαλύτερο μέρος της οθόνης. Το μέγεθος του πίνακα (panel) είναι επίσης τέτοιο ώστε να περιορίζεται ο χρόνος σχεδίασης των tiles και να χωράει μέσα σε 2 frames :wink:

Δεν πρόκειται να εξηγήσω εδώ πώς το κάνει η Ocean, επειδή η Τεχνητή Νοημοσύνη (AI) δεν γνωρίζει πώς γίνεται και δεν θέλω να το αποκαλύψω· πρόκειται για έξυπνο ανθρώπινο κώδικα (αλλά με τον τρόπο που το κάνουν, δεν μπορούν να έχουν έναν πίνακα σε διαφορετικό mode από την κύρια περιοχή του παιχνιδιού…). Και όταν λέω Ocean, εννοώ την εσωτερική ομάδα της Ocean, όχι κάποια τρίτη εταιρεία στην οποία ανέθεσαν το έργο.

Με το software scroll μπορείς να σχεδιάσεις sprites πάνω από τα tiles και δεν χρειάζεται να ανησυχείς για την επαναφορά του υποβάθρου (background) από πίσω, όπως πρέπει να κάνεις με το hardware scroll.

Φαίνεται ότι αυτή η έκδοση του Gryzor χρησιμοποιεί hardware scrolling, αλλά με αυτόν τον ρυθμό είναι πάρα πολύ γρήγορο για την κίνηση των sprites, η οποία γίνεται pixel προς pixel. Επομένως, πάντα θα υπάρχει τρέμουλο (wobble) — ή, αν δεν θέλεις να τρέμει έτσι, κάνεις αυτό που κάνει το Ghosts and Goblins: καθώς πλησιάζεις στην άκρη, κάνεις scroll σε ένα μεγάλο τμήμα για να ελαχιστοποιήσεις τη συχνότητα που «πηδάει» η οθόνη.

Η κλασική απάντηση από το AI είναι «μετακινήσου pixel προς pixel έτσι και άφησέ το να τρέμει», λέγοντας ότι είναι αποδεκτό και δεν φαίνεται, όπως ακριβώς έχουμε κι εδώ… Στον MSX1 και σε συνεχές scroll όπως στο Salamander, ναι, είναι εντάξει επειδή τα sprites συνεργάζονται καλά με αυτό, αλλά όχι έτσι.

Με το software scroll μπορεί επίσης να κάνει μικρά «πηδήματα», επειδή συχνά γίνεται byte προς byte οριζόντια. Θα μπορούσες να φτιάξεις ένα software scroll pixel προς pixel, αλλά ελάχιστα παιχνίδια το κάνουν αυτό και είμαι σίγουρος ότι δεν θα είναι γρήγορο. (Για την ακρίβεια, δεν το έχω δοκιμάσει ακόμα, είναι κάτι που πρέπει να προσθέσω στη λίστα με όσα έχω δοκιμάσει).

Με το οριζόντιο hardware scroll, ο καταχωρητής CRTC R3 σου δίνει τον ίδιο ρυθμό με το software (αλλά τώρα έχεις τρεμόπαιγμα/flicker στις άκρες), κι αυτό και πάλι δεν είναι αρκετά ομαλό όταν τα sprites κινούνται pixel προς pixel. Μπορείς να κάνεις pixel προς pixel με hardware και με double buffering (για να αποφύγεις το flicker), αλλά πρέπει να μειώσεις το μέγεθος της οθόνης για να χωρέσουν όλες οι οθόνες στην κύρια μνήμη — εκτός αν το φτιάχνεις αποκλειστικά για το Plus.

Έτσι, στο Gryzor επέλεξαν την καλύτερη λύση για την εποχή, ώστε να πετύχουν ένα λογικό fps, κίνηση pixel προς pixel και ένα διασκεδαστικό παιχνίδι.

(Ναι, έχω δοκιμάσει πολλούς διαφορετικούς τρόπους με scrolling, συμπεριλαμβανομένων software και hardware. Αν η κίνηση του χαρακτήρα γίνεται με τον ρυθμό του hardware scrolling —συμπεριλαμβανομένου του R3— τότε δεν έχεις «πηδήματα» και το scroll μπορεί να είναι συνεχές και όχι όπως στο Ghosts and Goblins. Αλλά μόλις επιβραδύνεις τον χαρακτήρα πιο αργά από τον ρυθμό του hardware scroll, τότε πρέπει να συμβιβαστείς, όπως κάνει το G&G).

9 «Μου αρέσει»

Αυτό με έβαλε σε σκέψεις: αν θέλει ο κόσμος, θα μπορούσαμε να φτιάξουμε μια κλειστή κατηγορία, μη προσβάσιμη από bots, για τέτοιου είδους συζητήσεις.

1 «Μου αρέσει»

Panagía mou, ti xerei o @Arnoldemu, eímai entypōsiasménos, ti mathaínei kaneís :distorted_face::distorted_face::distorted_face::distorted_face: