ALIEN 3 IA του DEVILSYSTEM (Markus Hohmann)

Συμμετοχή σε Κώδικα & Λογική

Υβριδική (βασικές ρουτίνες δημιουργημένες από AI· σύνθεση/επεξεργασία από άνθρωπο)

Συμμετοχή σε Στοιχεία & Διαδικασία Παραγωγής (Assets & Pipeline)

Άγνωστη (τρίτος προγραμματιστής

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

ChatGPT

Το ALIEN 3 στη σειρά PLUS ήταν κάτι που δεν περιμέναμε. Ο Markus Hoffman, γνωστός και ως DEVILMARKUS, γνωστός και ως DEVIL SYSTEM, μαζί με την αγαπημένη του τεχνητή νοημοσύνη μάς φέρνουν νέα σχετικά με το έργο.

https://alien3.devil-system.de/index.html?lang=en

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

Alien3_6128Plus.cpr (512,3 KB)

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

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

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

Στο διάστημα κανείς δεν μπορεί να ακούσει τις κραυγές σου… :alien:

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

Είναι ωραίο, αλλά ένα καλό port του «ALIEN NEOPLASMA» για τα AMSTRAD μας θα ήταν όλα τα λεφτά.

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

Η κύλιση (scrolling) είναι απίστευτα καλή!

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

Πολλά συγχαρητήρια.

Χαιρετισμούς,
S.D.

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

Ο Markus είναι πάντα προσιτός. Ο σύνδεσμος οδηγεί στο έργο, εκεί βρίσκονται τα στοιχεία επικοινωνίας. Νομίζω ότι χρησιμοποιεί μια συγκεκριμένη τεχνητή νοημοσύνη με την οποία αναπτύσσει εδώ και χρόνια. Μερικές φορές περνάει και από το FACEBOOK https://www.facebook.com/devilmarkus

μια παρατήρηση μόνο @RETO_AMSTRAD, το επίθετο είναι «Hohmann» χεχε

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

ευχαριστώ

Μπορεί και να πραγματοποιηθούν τα όνειρά σου ,:alien::alien:

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

«Ε; Πες και τίποτα από αυτό το στοματάκι, εξωγήινο σαγόνι που μου κουβαλάς. :smiley: Ετοιμάζεται δηλαδή μετατροπή; Εγώ θέλω το 1 και το 2.

Πλάκα κάνω, μακάρι να γίνει γιατί είναι μία από τις πιο καθηλωτικές ΒΙΝΤΕΟ-ΠΕΡΙΠΕΤΕΙΕΣ στη σκηνή των microcomputers.»

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

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

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

Δεδομένου ότι είναι για Plus, υποθέτω ότι χρησιμοποιεί απλώς το hardware scrolling, το οποίο είναι πολύ πιο απλό από το να προσπαθείς να πετύχεις έστω και σχετικά ομαλό scrolling σε έναν τυπικό CPC. Υπάρχουν ακόμα κάποια κόλπα που μπορείς να κάνεις για να βελτιώσεις τα πράγματα, αλλά αν όλα όσα κινούνται ελέγχονται από sprites, ως επί το πλείστον δεν τα χρειάζεσαι καν.

Επιβεβαιώθηκε ότι πρόκειται για ομαλή κύλιση μέσω υλικού (hardware soft scroll) με sprites.

Το βασικό είναι να ορίσεις τους καταχωρητές R12 και R13 του CRTC στην αρχή της οθόνης. Μπορείς να το κάνεις αυτό από τη BASIC ως εξής:
OUT &BC00,12:OUT &BD00,&30:OUT &BC00,13:OUT &BD00,10

Το σημαντικό που πρέπει να θυμάσαι εδώ είναι ότι αν πληκτρολογήσεις πολλές τέτοιες εντολές, η BASIC θα κάνει scroll στην οθόνη, οπότε μπορεί να είναι δύσκολο να δεις τι συμβαίνει. Επομένως, βάλε αυτή τη γραμμή σε ένα πρόγραμμα BASIC και άλλαξε την τελευταία τιμή εκεί, το «10», ώστε να καταλάβεις λίγο καλύτερα πώς λειτουργεί.

Αλλάζοντας τα R12 και R13, αλλάζεις το σημείο από το οποίο εμφανίζεται η απεικόνιση της οθόνης. Στη συνέχεια, με βάση το πλάτος της οθόνης, αναδιπλώνεται στην επόμενη γραμμή και ούτω καθεξής. Όταν φτάσει στο τέλος της οθόνης, αναδιπλώνεται ξανά στην αρχή, οπότε αν αυξήσεις τον αριθμό για τα R13 και R12 (αλλά θυμήσου να προσθέσεις +&30 εδώ για να παραμείνει στην περιοχή &c000-&ffff), τότε μπορείς να δεις πώς λειτουργούν οι αριθμοί. Πρόσθεση, αφαίρεση, πόσο να μετακινήσεις ολόκληρες γραμμές κ.λπ.

Αυτό που κάνει στη συνέχεια το Plus είναι να παρέχει δύο ακόμη καταχωρητές. Έτσι, μπορείς να μετατοπίσεις την οθόνη σε pixel οριζόντια και κάθετα. Ουσιαστικά αλλάζεις την τιμή μετατόπισης από 0 έως 15. Μετά την επαναφέρεις στο 0 και ενημερώνεις τα R12 και R13. Κάνοντας αυτό, πετυχαίνεις ομαλό pixel scroll (soft pixel scroll). Το ίδιο μοτίβο μπορεί να χρησιμοποιηθεί και κατακόρυφα με την τιμή του vertical soft scroll.

Μόλις το καταφέρεις αυτό, έχεις κάνει scroll στην οθόνη. Το επόμενο βήμα είναι να ενημερώσεις τα γραφικά.

Όταν κάνεις οριζόντιο scroll, ενημερώνεις μια στήλη γραφικών στη μία πλευρά της οθόνης —κάτι που δεν έχει ιδιαίτερη σημασία ποια θα είναι, λόγω του τρόπου με τον οποίο αναδιπλώνεται η οθόνη— και εισάγεις τα νέα γραφικά εκεί. Αν κάνεις scroll και εισάγεις νέα γραφικά, μπορείς στη συνέχεια να κάνεις scroll σε έναν ολόκληρο χάρτη.

Αν θέλεις να κάνεις κάθετο scroll, ενημερώνεις πάλι μία μόνο γραμμή, είτε στο επάνω είτε στο κάτω μέρος —και πάλι δεν έχει τόση σημασία ποια— και εισάγεις νέα γραφικά για να κάνεις scroll στον χάρτη.

Οπότε, μόλις τα κάνεις όλα αυτά, στο Plus μπορείς ελεύθερα και χωρίς κανένα πρόβλημα να τοποθετήσεις hardware sprites όπου θέλεις από πάνω.

Αν γράφεις για CPC, τότε υπολογίζεις με βάση τη βάση της οθόνης (screen base) και τις συντεταγμένες x,y του sprite σου το πού θα το σχεδιάσεις. Το σχεδιάζεις όπως θα έκανες για μια στατική οθόνη (αν και υπάρχει ένα σημείο όπου το INC HL δεν προχωράει στο επόμενο byte της οθόνης όπως αναμένεται· μπορείς να μελετήσεις το disassembly του SCR_NEXT_BYTE στο firmware για να δεις μία μέθοδο, ενώ μια άλλη είναι να σχεδιάσεις το sprite σε στήλες και να το αποφύγεις, υπάρχουν διάφοροι τρόποι).

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

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

Υπάρχουν συγκεκριμένα σημεία στα οποία χρειάζεσαι βοήθεια; Πες μου και ελπίζω να βρούμε μια άκρη ώστε να γίνουν όλα ξεκάθαρα.

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

Το δοκίμασα μερικές φορές χρησιμοποιώντας τον ενσωματωμένο emulator στη σελίδα του παιχνιδιού. Από ό,τι βλέπω είναι απευθείας μεταφορά (port) της έκδοσης για C64, οπότε δεν έγινε καθόλου δουλειά για να απαλλαγούν τα γραφικά από τον περιορισμό των 3+1 χρωμάτων. Αλλά φαντάζομαι ότι δεν μπορείς να ζητήσεις ακόμα από μια AI να το κάνει αυτό. :stuck_out_tongue:

Έτρεξε κανείς το παιχνίδι σε κάποιον από τους συνηθισμένους emulators ή έστω σε πραγματικό Plus; Αναρωτιέμαι αν αυτά τα κολλήματα στην κίνηση των sprites είναι θέμα του ίδιου του παιχνιδιού ή του ενσωματωμένου emulator.

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

Ευχαριστώ για την επισήμανση με το «PLUS». Μου είχε διαφύγει και είχα ήδη μείνει άφωνος από την έκπληξη. Άδικα, όπως αποδεικνύεται τελικά.

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

Σε ευχαριστώ πολύ για την προσφορά σου! Θα επανέλθω.
(Κάποτε είχα προσπαθήσει να προγραμματίσω ένα παιχνίδι παρόμοιο με το ZAXXON στον CPC 6128 (χωρίς Plus). Είχα αποτύχει παταγωδώς ήδη από τη μηχανή του παιχνιδιού…)

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

Αυτό μου θυμίζει το demo «Isometrikum» από τη Vanity:

https://www.youtube.com/watch?v=T5SACesODy8

Γρήγορο και ομαλό, διαγώνιο scrolling σε ένα μη-Plus σύστημα. Αλλά το να το προγραμματίσεις αυτό δεν είναι καθόλου εύκολο.

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

ΕΥΧΑΡΙΣΤΩ για τον σύνδεσμο! Είναι πραγματικά εξαιρετικά φτιαγμένο! Δεν έχω την παραμικρή ιδέα για το πώς προγραμματίζει κανείς κάτι τέτοιο στον CPC 6128.