αυτή την περίοδο προσπαθώ να προγραμματίσω ένα side-scrolling shooter χρησιμοποιώντας την ίδια μηχανή sprite (καθώς και τον sprite editor της) που είχα αναπτύξει για το παιχνίδι μου «Sternenschwarm».
Στην πραγματικότητα, εδώ τρέχουν 2 προγράμματα «παράλληλα». Το κυρίως shooter και το scrolling του φόντου. Επειδή πρόκειται για hardware scrolling, δεν μπορώ να το κάνω πιο αργό χωρίς να αρχίσει να κολλάει.
Σημειώσεις:
ΣΥΜΒΟΥΛΗ: Μην ξεχάσετε να αλλάξετε τον χειρισμό σε πληκτρολόγιο
Έχω υλοποιήσει μόνο 4 από τα 20 επίπεδα μέχρι στιγμής.
Τον ήχο τον απενεργοποίησα ξανά προς το παρόν. Είναι ακόμα απαίσιος.
Κάθε επίπεδο έχει τον δικό του ξεχωριστό σχεδιασμό.
Τα High Scores αποθηκεύονται, εφόσον η δισκέτα είναι εγγράψιμη.
Υπάρχουν «Power Ups» στο παιχνίδι
Η δισκέτα έχει σχεδόν γεμίσει, οπότε μάλλον θα πρέπει να ξανασκεφτώ το παιχνίδι συνολικά. Επίσης, αυτή τη φορά δυσκολεύομαι πάρα πολύ να βρω τη σωστή ισορροπία ανάμεσα στη δυσκολία και τη διασκέδαση. Προς το παρόν δεν έχω συναρπαστικές ιδέες. Πέρα από περισσότερους θεματικούς κόσμους.
Διακόπτω προς το παρόν την περαιτέρω ανάπτυξη αυτού του προγράμματος. Μου τελειώνει ο χώρος και δεν έχω άλλες ιδέες για τον σχεδιασμό των επόμενων επιπέδων.
Γεια σας. Βγάζετε καινούργιο παιχνίδι κάθε δεύτερη μέρα και αρχίζει να δημιουργείται μια συγκεκριμένη «αύρα τεχνητής νοημοσύνης». Οπότε, για να είμαστε ειλικρινείς, πόση τεχνητή νοημοσύνη έχει χρησιμοποιηθεί εδώ;
Ζήτησα από το ChatGPT να μου δώσει και να μου εξηγήσει τον κώδικα για το hardware-scrolling. Στη συνέχεια, τον προσάρμοσα στοχευμένα στις ανάγκες μου (Δείτε τη συνεχή επανασχεδίαση των γραφικών στη δεξιά πλευρά. Σε κάθε frame αντιστοιχούν 2 νέες στήλες pixel (= 1 byte, Mode 0). Δείτε σχετικά και τον sprite editor που έχω δημοσιεύσει, καθώς υποστηρίζει την απαιτούμενη αποθήκευση δεδομένων στη μνήμη ως μορφή εξαγωγής).
Η ακολουθία νοτών για τη μουσική υπόκρουση προέρχεται κατά 100% από την τεχνητή νοημοσύνη (στο mockup όμως είναι απενεργοποιημένη, γιατί ακούγεται ακόμα απαίσια).
Για player χρησιμοποιώ το genial ArkosTracker3. Υπάρχει ήδη, οπότε δεν χρειάστηκε να το γράψω μόνος μου.
Τα υπόλοιπα εργαλεία (ηχητικά εφέ, μηχανή sprites, interrupt handler) είναι δικής μου δημιουργίας. Παρεμπιπτόντως: ο interrupt handler και η διαχείριση στοίβας όλων των αντικειμένων είναι γραμμένα σε C. Προέρχονται από ένα project με μικροελεγκτή (microcontroller). Παντού και πάντα τα ίδια είναι. Αυτή είναι και η ομορφιά του πράγματος.
Ο sprite editor μου (αρχείο HTML, δημοσιευμένο αλλού) δημιουργήθηκε με τη βοήθεια του AI. Χρησιμεύει ωστόσο αποκλειστικά για τη δημιουργία γραφικών. Ιδιαιτερότητα: μπορεί να μετατρέψει οποιεσδήποτε εικόνες σε sprites για CPC. Υποστηρίζει μια διάταξη δεδομένων που επιτρέπει το γρήγορο σχεδιασμό των sprites.
Πόσο AI περιέχει λοιπόν το mockup; Συνολικά, πάρα πολύ. Το AI είναι ένας καλός δάσκαλος και δίνει κίνητρο. Έτσι το χρησιμοποιώ.
Προσέξτε όμως στο τρέχον mockup τις λεπτομέρειες, όπως: η φλόγα του αεροπλάνου κινείται ανάλογα με τη δική του κίνηση. Αυτό είναι χειροποίητο. Αυτό είναι η ψυχή ενός προγράμματος. Ενσωματώνει άραγε ένα AI τέτοιες προσεγμένες λεπτομέρειες; Δεν ξέρω…
Επίσης, τα γραφικά γίνονται χειρότερα από πίστα σε πίστα. Έχασα το κίνητρό μου. Ένα AI θα το είχε ολοκληρώσει άραγε με ένα απλό prompt;!
Δυο λόγια για μένα:
Είμαι 59 ετών και πτυχιούχος πληροφορικής (Diplom-Informatiker, αγγλ.: Computer Scientist).
Το κίνητρό μου είναι να κρατήσω ζωντανό ένα παλιό χόμπι. Βρίσκομαι πλέον σε μια ηλικία όπου οι επαγγελματικές προκλήσεις αρχίζουν να υποχωρούν.
Την εποχή που υπήρχαν ακόμα περιοδικά για τον CPC στα περίπτερα, είχα ήδη δημοσιεύσει εκεί αρκετά πράγματα για τον CPC. Παιχνίδια, προγράμματα αντιγραφής και δισκέτας… Από τότε, η καρδιά μου παραμένει δεμένη με αυτόν τον υπολογιστή. (Σοκ, έχουν περάσει πάνω από 40 χρόνια!)
Είχα επίσης δημοσιεύσεις και σε άλλα φόρουμ (προ κορονοϊού) —δείτε το Asteroids σε μια παλαιότερη έκδοση— δυστυχώς όμως αυτά τα φόρουμ έχουν πια εξαφανιστεί.
Αυτό με οδηγεί στην εξής σκέψη: Θα είχε ενδιαφέρον να δημοσιεύσω εδώ μια σειρά άρθρων σχετικά με το πώς αναπτύσσει κανείς λογισμικό για CPC χρησιμοποιώντας cross-assembler; Αλλά κι αυτό μπορεί να το εξηγήσει ένα AI… Χμμμ… άρα μάλλον όχι;! Εξάλλου υπάρχουν ήδη και μαθήματα στο YouTube…
Είναι γεγονός:
Χωρίς το AI, αυτό το mockup δεν θα υπήρχε.
Με περισσότερο AI, θα ήταν πιο όμορφο οπτικά και πιθανότατα θα είχε ολοκληρωθεί.
Απομένουν ακριβώς τρία / τέσσερα θέματα που με ενδιαφέρουν. Όλα τα μέχρι τώρα mockups και παιχνίδια μου κινούνται ακριβώς προς αυτή την κατεύθυνση:
Μια ιδέα για παιχνίδι βασισμένη στο Elite, αλλά με μια ενσωματωμένη προσομοίωση οικονομίας, στην οποία κάθε απόφαση του παίκτη έχει άμεσο αντίκτυπο σε ολόκληρο το σύστημα. Το παιχνίδι διαδραματίζεται αποκλειστικά στο δικό μας ηλιακό σύστημα (πλανήτες και δορυφόροι).
Μια ιδέα για παιχνίδι βασισμένη στο Bard’s Tale (Μέρος 1). Ωστόσο, με μια μηχανή γραφικών που απεικονίζει τις περιστροφές (όπως στο πρώτο μου mockup). Οι αποστολές θα πρέπει να είναι τόσο δύσκολες, ώστε να χρειάζεται κανείς έρευνα στον πραγματικό κόσμο για να καταφέρει να τερματίσει το παιχνίδι.
Ένα παιχνίδι με συνεχή διαγώνια κύλιση (diagonal scrolling). Παρόμοιο με το παλιό παιχνίδι Zaxxon.
(ενδεχομένως και μια πιο σύνθετη έκδοση του παιχνιδιού της Amiga Carrier Command. Μια εξέλιξη της προσομοίωσης οικονομίας τύπου Elite που σχεδιάζω. Αλλά εδώ βρίσκομαι ακόμα μόνο στον σχεδιασμό σε χαρτί. Επίσης, δεν έχω αποφασίσει ακόμα την πλατφόρμα-στόχο. Ίσως αποκλειστικά για Raspberry Pi (native), γενικά για Linux, παιχνίδι περιηγητή (browser game), CPC 6128, ανάλογα με το τι θα με ενδιαφέρει περισσότερο τότε.)
Βλέπεις, δεν είναι και τόσο δύσκολο. Τόλμησέ το. Τώρα, σχετικά με το παιχνίδι.
Το έχεις παίξει; Κυριολεκτικά το τερμάτισα πατώντας απλώς το κουμπί βολής, χωρίς να μετακινήσω το σκάφος ούτε ένα pixel από την αρχική του θέση. Αστείο δεδομένο: αν έχεις το πρόγραμμα περιήγησης σε λειτουργία παραθύρου και ξεκινήσεις το παιχνίδι με τον ενσωματωμένο εξομοιωτή, πατάς συνεχόμενα το κουμπί βολής μέχρι να πάρεις όλα τα power-up (pickups), μετά κρατάς το κουμπί βολής πατημένο και κάνεις κλικ με το ποντίκι έξω από το παράθυρο περιήγησης του wiki. Μπορείς να κάνεις ό,τι άλλη δουλειά θες στο PC σου, βλέποντας το παιχνίδι να ολοκληρώνεται μόνο του.
Οπότε, μου φαίνεται σαν μια περίπτωση (και αυτό δεν στοχεύει συγκεκριμένα αυτό το παιχνίδι, αλλά είναι μια γενικότερη παρατήρηση) όπου «ο σχεδιασμός του παιχνιδιού αφέθηκε στην τεχνητή νοημοσύνη (AI) και ο χρήστης που δίνει τις εντολές (prompter) δεν έχει ιδέα για το τι συμβαίνει»· ή ακόμα και δεν τον νοιάζει.
Το άλλο πράγμα που με τρελαίνει (πάλι, γενικότερη παρατήρηση) είναι το πόσοι άνθρωποι θα πεταχτούν να πανηγυρίσουν για το πόσο φοβερή είναι μια κυκλοφορία, ενώ στην πραγματικότητα είναι τόσο απερίγραπτα άθλια.
(edit: για να διευκρινίσω απλώς, και οι δύο τελευταίες προτάσεις αναφέρονται γενικά σε κυκλοφορίες με τεχνητή νοημοσύνη (AI), δεν στοχεύουν τη συγκεκριμένη κυκλοφορία)
Για να είμαστε δίκαιοι, είναι ένα πρωτότυπο (prototype).
Και για να είμαι ειλικρινής, οι κυκλοφορίες του αρχίζουν να μου αλλάζουν γνώμη σχετικά με τη χρήση της ΤΝ στα ρετρό παιχνίδια. Είναι σαφώς εμπνευσμένες από κλασικά παιχνίδια – αλλά ταυτόχρονα αποτελούν κατά κάποιον τρόπο μια φρέσκια πηγή έμπνευσης με πεντακάθαρα και πολύχρωμα γραφικά (gfx) και όχι απλώς μια στεγνή αντιγραφή 1:1 από ένα πρωτότυπο arcade.
Σίγουρα, τους λείπει αυτό το τελικό ρετουσάρισμα που μετατρέπει ένα PoC σε ένα διασκεδαστικό και εξαιρετικό παιχνίδι, αλλά κοιτάζοντας το παιχνίδι, βλέπω ήδη τις δυνατότητές του. Θα μου ΑΡΕΣΕ ΠΟΛΥ να παίξω αυτό το παιχνίδι αφού προσαρμοστεί χειροκίνητα ο σχεδιασμός των επιπέδων, ώστε να γίνει μια πραγματική πρόκληση.
Αλλά ναι, όχι με αυτόν τον σχεδιασμό επιπέδων όπως είναι τώρα. Όπως και να 'χει πάντως… λατρεύω το scrolling, λατρεύω τα γραφικά (gFX), λατρεύω τη γενική αίσθηση που αποπνέει – και εκπλήσσομαι που το λέω αυτό για ένα παιχνίδι όπου η ΤΝ έπαιξε τόσο καθοριστικό ρόλο.
Φαίνεται ότι η μη αποκάλυψη της χρήσης ΤΝ είναι ένα ευαίσθητο ζήτημα, οπότε υποθέτω ότι αυτό θα πρέπει να ληφθεί υπόψη. Έπειτα, οι χρήστες μπορούν να σχολιάσουν μόνο ό,τι έχουν στη διάθεσή τους. Δεν είμαι σίγουρος ποιο είναι το νόημα της δημοσίευσης ενός «πρωτοτύπου» αν κάποιος δεν στοχεύει στη λήψη σχολίων.
Δημοσίευσα αυτό το πρωτότυπο για να λάβω σχόλια. Σε οποιαδήποτε μορφή. Μέχρι στιγμής θεωρώ τη συζήτηση εποικοδομητική. Διαβάζω κάθε απάντηση. Σας ευχαριστώ πολύ για τις απόψεις και τις ιδέες σας.
Λοιπόν, φτιάχνω shooters (το κομμάτι των γραφικών), οπότε ξέρω από shooters. Και είμαι πολύ επιλεκτικός όσον αφορά τα shooters. Αυτό που θα πάρεις από εμένα είναι το ίδιο feedback που θα έδινα στον ίδιο μου τον εαυτό.