Hero (WIP)

Λοιπόν, επέστρεψα πάλι στο platform παιχνίδι αποκλειστικά για 128k* (ή περισσότερα), εμπνευσμένο από τα γραφικά του δικού μας @TITAN και την πλοκή με τις σκανδαλιές στην Αρχαία Ελλάδα. Υλοποιήθηκε χρησιμοποιώντας το εξαιρετικό CPCTeleraNext του αγαπητού @Arnaud6128.

Έχω εγκαταλείψει την προσπάθεια να κάνω το ομαλό scrolling πλήρους οθόνης βασισμένο σε CRTC/μνήμη να λειτουργεί τόσο ομαλά και απλά όσο θέλω σε μηχάνημα εκτός Plus, παρά τη χειροκίνητη ανάλυση των συγχρονισμών και τη βοήθεια από LLM, οπότε το γύρισα σε Flick Screen (αλλαγή οθόνης). Έτσι ώστε να μπορέσω να τελειώσω το ρημάδι και να το κυκλοφορήσω.

Αυτό όμως σημαίνει ότι μπορώ να εστιάσω στο να κάνω την κίνηση του sprite του παίκτη όσο το δυνατόν πιο κοντά σε αυτό που κάνουν παιχνίδια κονσόλας όπως το SMB κ.λπ. Ναι, αντιγράφω τη φυσική και το μοντέλο κίνησης/χειρισμού του Mario, γιατί γιατί όχι:

Μερικά screenshots, και ναι, το μενού/intro demo είναι σε overscan. Αυτή τη στιγμή υπάρχουν ΤΡΙΑ διαφορετικά κομμάτια χάρη στον δικό μας @Targhan, και θα υπάρχει υποστήριξη για πολλές γλώσσες (μέχρι στιγμής σχεδιάζω Αγγλικά/Ισπανικά/Γαλλικά/Γερμανικά και φυσικά Ελληνικά για τον Μεγάλο Πούμπα του Φόρουμ μας).

Στη συνέχεια έχουμε την κίνηση σε σκάλα, τη διαχείριση θανάτου από αγκάθια/λάσπη, και τους εχθρούς.

Το tileset/γραφικά είναι όλα από εδώ: AmstradMuseum TITAN : Devilry III

Χρησιμοποιώ το Tiled για τις πίστες. Και ναι, χρησιμοποιώ ένα LLM (ChatGPT) ως σύμβουλο προγραμματισμού και βοηθό για τη συγγραφή εργαλείων, τη βελτιστοποίηση κώδικα, τις αγγαρείες και πάει λέγοντας. Επειδή είμαι επαγγελματίας προγραμματιστής λογισμικού εδώ και 30 τόσα χρόνια και έχω βαρεθεί τη ζωή μου να ανακαλύπτω ξανά τον τροχό με τους υπολογιστές πλέον. Παρόλα αυτά, γράφω C ευκαιριακά από το 1997, οπότε ναι, ξέρω τι κάνω.

Παρακαλώ προωθήστε όλα τα παράπονα στο μεγάλο AI Thread. Όμως όλα τα γραφικά και η μουσική είναι από ανθρώπους!

Θα χρησιμοποιήσω αυτό το thread για να σας κρατάω όλους ενημερωμένους για την πρόοδο.

* Όχι, δεν θα τρέχει σε 64K, θα χρειαστείτε 128K (τουλάχιστον) και drive δισκέτας. Ναι, είναι σκόπιμο. Ημουν κολλημένος με έναν μη αναβαθμισμένο 464 τότε, και ο 6128 παραμένει το υπολογιστής των ονείρων μου.

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

Αυτό φαίνεται εκπληκτικό! Το άλμα του χαρακτήρα φαίνεται λίγο… υπερβολικά δυνατό… για την ώρα ίσως, αλλά λατρεύω τα γραφικά, το σκηνικό και τις υπόλοιπες οθόνες!

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

Το περίμενα πώς και πώς αυτό, και πράγματι φαίνεται φανταστικό.

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

Η οριζόντια κίνηση του sprite γίνεται ανά pixel ή ανά byte; Είναι δύσκολο να πει κανείς χωρίς να το παίξει φυσικά, αλλά βλέποντας το βίντεο φαίνεται σαν να χρειάζεται λίγη οριζόντια ορμή, και υποθέτω ακρίβεια συντεταγμένων 2 byte για να ταιριάζει, αν προσπαθείτε πραγματικά να πετύχετε την αίσθηση του Mario.

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

Ναι, η οριζόντια κίνηση γίνεται ανά byte. Δεν τολμώ καν να σκεφτώ την κίνηση ανά pixel, παρόλο που ξέρω ότι μπορεί να γίνει.

Οι τιμές βαρύτητας/πτώσης/επιτάχυνσης για τον υπολογιστή είναι αυτές που έβαλα αρχικά όταν εμπνεόμουν από τις διάφορες αναλύσεις των συστημάτων χειρισμού του SMB που κυκλοφορούν στο διαδίκτυο, αλλά φυσικά με την τεχνική flick screen του CPC, όπως αναφέρθηκε και παραπάνω, είναι λίγο πιο νευρικές από όσο πρέπει.

Για να είμαι ειλικρινής, ήμουν απλά κατενθουσιασμένος που το άτιμο κινούνταν έστω και κατά προσέγγιση σαν παιχνίδι κονσόλας. Αυτό που δεν βοηθάει προς το παρόν είναι ότι οι πίστες δημιουργούνται χειροκίνητα. Έχω αρκετή διαθέσιμη μνήμη για κάθε πίστα (φορτώνεται 1 κάθε φορά) ώστε να είναι μόνο 8 οθόνες πλατιά, ακόμα και με 128k! Και έτσι, με τις τρέχουσες ρυθμίσεις κίνησης, μπορεί να φαίνονται στριμωγμένες.

Ίσως τελικά να το γυρίσω σε πίστες που αποτελούνται από πολύ μεγαλύτερα δομικά στοιχεία. Ή ακόμα και σε procedural generation. Είδα μια εξαιρετική ανάλυση για το πώς έγινε αυτό σε ένα παιχνίδι του BBC στο YouTube:

Αλλά το πρόβλημα με αυτού του είδους τα πράγματα είναι ότι οι πίστες μοιάζουν όλες πολύ μεταξύ τους. Από την άλλη, θα μπορούσα να κάνω αυτό που έκανα με το Reginald: να κρατάω κάθε οθόνη συμπιεσμένη μέχρι να χρειαστεί και να αποθηκεύω μόνο τα μόνιμα sprite των εχθρών. Με αυτόν τον τρόπο αποθηκεύεται μόνο η τρέχουσα οθόνη (40 x 22 tiles). Και αυτό είναι εύκολο να γίνει με το Flick Screen, σε αντίθεση με το παλιό Scrolling που χρησιμοποίησα προηγουμένως.

Ειλικρινά είμαι εντελώς αναποφάσιστος για όλα αυτά. Ένας από τους λόγους που δημοσίευσα εδώ ήταν για να ακούσω σκέψεις πάνω σε αυτές τις ιδέες.

Το τρέχον σχέδιο είναι, μόλις έχω μία playable πίστα, να τη διαθέσω σε μορφή που να μπορεί να παιχτεί απευθείας — δηλαδή χωρίς μενού, εισαγωγή κ.λπ. — για να πάρω feedback για τον χειρισμό και το gameplay, ώστε ελπίζω να γίνουν σταδιακές βελτιώσεις.

Και φυσικά, όλος ο κώδικάς μου θα διατεθεί υπό την άδεια GPL2 στο Github όταν τελειώσω.

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

Μήπως οι (πανέμορφες) οθόνες σας κατασκευάζονται από πλακίδια (tiles);

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

Ακόμα καλύτερα, μπορείτε να ορίσετε μεγαλύτερα αντικείμενα («supertiles»), όπως κολόνες.

Ο ορισμός της οθόνης σας μπορεί να περιλαμβάνει δεδομένα που λένε «στη θέση (x,y) υπάρχει μια κολόνα», κάτι που μπορεί να γίνει μόλις σε 3 bytes. Ο κώδικας που συνθέτει την οθόνη σας μπορεί στη συνέχεια να αναγνωρίσει ότι πρέπει να σχεδιαστεί μια κολόνα και να ανατρέξει σε έναν ξεχωριστό πίνακα που περιέχει τις πληροφορίες των πλακιδίων για την κολόνα.

Ας υποθέσουμε ότι μια κολόνα αποτελείται από ένα πάνω πλακίδιο, μια σειρά από πανομοιότυπα μεσαία πλακίδια και ένα κάτω πλακίδιο.
Ο ορισμός της κολόνας μπορεί να συνταχθεί με διάφορους τρόπους.

Θα μπορούσε να είναι απλώς μια λίστα με αριθμούς πλακιδίων, ή ένας αριθμός πλακιδίου ακολουθούμενος από τον αριθμό των φορών που χρησιμοποιείται. Και μετά θα χρειαστείτε ένα σύστημα για να καθορίσετε αν τα πλακίδια είναι αποθηκευμένα σε κατακόρυφη σειρά, ή από αριστερά προς τα δεξιά και μετά από πάνω προς τα κάτω κ.λπ.

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

Αυτή τη στιγμή κατασκευάζονται στο χέρι, πλακίδιο-πλακίδιο, και είναι πραγματικός παιδεμός να τα φτιάξεις!

Παρακολουθώ το παιχνίδι από την αρχή και είναι ένα πολύ ωραίο εγχείρημα. Είναι το τυπικό παιχνίδι που θα μπορούσε να είχε κυκλοφορήσει τη χρυσή εποχή του CPC, διαφημιζόμενο τα Χριστούγεννα, με ένα καταπληκτικό εξώφυλλο, στο περιοδικό που αγόραζα πάντα από το περίπτερο —το Micromania στην περίπτωσή μου— και θα το είχα αγοράσει οπωσδήποτε.

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

Ενδιαφέρουσα δουλειά μέχρι στιγμής. Κοιτάζοντας τα γραφικά του παιχνιδιού, θα σας πρότεινα να ξανασκεφτείτε τα μαύρα περιγράμματα που κάνουν λίγο-πολύ κάθε αντικείμενο να φαίνεται δύσκαμπτο και τετραγωνισμένο, ειδικά εφόσον επιλέξατε το φόντο να είναι πιο φωτεινό από το προσκήνιο.

Επίσης, ποιος είναι ο τύπος στο πρώτο screenshot σε σχέση με τον τύπο στο τελευταίο screenshot;

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

Εννοείς τον Δία να πηδάει ό,τι κινείται;

Φαίνεται απίθανο!

Το μεταφέρω στην κατηγορία Games πάντως.

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

Αυτός είναι ο ήρωάς μας, ο Ήλιος. Ο οποίος ήταν λιγάκι άτακτος και τιμωρείται από τους Θεούς, αφού τον αναγκάζουν να κάνει το Θεϊκό Παιδί για θελήματα.

Όσο για τα γραφικά, δεν είμαι καθόλου καλλιτέχνης, οπότε θα παραπέμψω στον Αξιότιμο Φίλο μου @TITAN@Titan. Εγώ απλώς προσπαθώ να κάνω τα pixel να κάνουν βρουμ.

Πίστεψέ με, μπορείς να μπλέξεις την ιστορία του με οποιονδήποτε πιθανό τρόπο έχει σχέση με το σεξ. Ίσως έβαλε στο μάτι κάποιο φτωχό θνητό κορίτσι, οπότε ο Δίας τον καταδίκασε να γίνει χελώνα ή κάτι τέτοιο, αλλά η Ήρα επενέβη και τον μεταμόρφωσε πριν τον βρει ο Δίας, κι έτσι τώρα είναι αγνώριστος, αλλά τον έθεσε και υπό την προστασία της, οπότε τώρα ζει ανάμεσα στον Όλυμπο και τον κανονικό κόσμο τρέχοντας για θελήματα.

Λέω εγώ τώρα.

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

Λοιπόν, βλέποντας πόσο εντελώς διαφορετικός φαίνεται ο Ήλιος ανάμεσα στις δύο εικόνες (στην πρώτη δεν φοράει καν κάτι που να θυμίζει ελληνική πανοπλία, και η αρχαία ελληνική τέχνη ήταν μέρος των σπουδών μου), υποψιάζομαι ότι αυτές οι εικόνες ήταν πιθανότατα «δανεισμένες» από άλλες πηγές και μεταφέρθηκαν/επαναχρωματίστηκαν για τον CPC. Για την ακρίβεια, αυτή στην οθόνη τίτλου, το στυλ της, φαίνεται υπερβολικά οικείο· αλλά δεν μπορώ να θυμηθώ πού έχω δει μια παρόμοια εικονογράφηση.

Ο λόγος που δεν υποψιάζομαι τεχνητή νοημοσύνη (AI) σε αυτή την περίπτωση είναι ότι, στις μέρες μας, μπορείς να ζητήσεις από το AI να σχεδιάσει ξανά το ίδιο πράγμα σε διαφορετικές στάσεις και κάνει αρκετά καλή δουλειά χωρίς να κάνει πολλά «παραισθητικά» λάθη (hallucinations).

Όταν σχολιάζω γραφικά, έχω μια μάλλον αρνητική στάση απέναντι σε εικόνες που είναι αντίγραφα χωρίς να αναφέρονται οι αρχικοί δημιουργοί, και ο Titan βάζει την υπογραφή του σε πολλές εικόνες που δεν είναι δικές του. Οπότε, υποθέτω ότι η εύκολη λύση θα ήταν να είναι κανείς γενναίος, να το αποκαλύψει και να προχωρήσει. Δεν είναι αμαρτία να δανείζεσαι πράγματα ή να χρησιμοποιείς AI, αρκεί να είσαι ειλικρινής γι’ αυτό· πολλοί άνθρωποι το κάνουν αυτό στον CPC (αλλά την ίδια στιγμή, άλλοι όχι· ακόμα και μερικοί πραγματικά διάσημοι, πράγμα που είναι ντροπιαστικό και ανήθικο ταυτόχρονα).

Εγώ ένας απλός προγραμματιστής είμαι, αφεντικό. Αφήνω τέτοιες διαφωνίες σε εσάς τους καλλιτεχνικούς τύπους. :joy:

Τι είδος πίστες θα θέλατε να δείτε στο Hero;
  • Μικρότερες πίστες σχεδιασμένες στο χέρι
  • Μεγαλύτερες πίστες με έτοιμα δομικά στοιχεία (Building-Blocks)
  • Τεράστιες πίστες αυτόματης παραγωγής (Proc-Gen)
0 voters

Δεν θεωρώ ότι το «guv’nor» μου ταιριάζει, αλλά μπορείς να με φωνάζεις θεό αν θέλεις.

NαΙ, Μεγάλε Aρχηγέ μου

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

Kαλύτερα. Συνέχισε έτσι.

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

Ένα γρήγορο παιχνίδι για να μπεις αμέσως στο ψητό, παρακαλώ. Αν είναι δυνατόν, με αποθήκευση της προόδου.

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

Ναι. Το σχέδιο είναι να υπάρχει, στη δεύτερη πλευρά της FSK, μια έκδοση που θα σε βάζει απευθείας στο παιχνίδι, χωρίς μενού, χωρίς εισαγωγή, χωρίς οθόνη τίτλου, χωρίς τίποτα. Μόνο το gameplay.

Και σχεδιάζω να χρησιμοποιήσω κωδικούς πρόσβασης ώστε να μπορεί, ας πούμε, να αποθηκεύεται η πρόοδος.

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