Το νέο μας demo Star Trip με την πρώτη μου realtime 3D engine σε CPC!!!

Optimus

RetroActive
Joined
9 Δεκ 2006
Μηνύματα
484
Αντιδράσεις
202
Μετά από 2.5 μήνες συνεχής δουλειά, μπόλικη pure z80 assembly που έκαψε το μυαλό μου, δάκρεια και υδρώτα, έφτασε η ώρα να βγάλω όλη αυτή τη προσπάθεια σε ένα demo που συμμετείχε στο Demosplash 2024 combined demo compo!

Scripted ιστορία με διαστημικές μάχες, πάνω από ένα 3d object την ίδια στιγμή με z-sorting, non convex complex objects όπως ένα lowpoly torus, το πρώτο ίσως Glenz και μια φανταστική ρουτίνα για true antialiased lines στον CPC! Είχα και άλλες ιδέες και σχέδια, το μέλλον είναι να κάνω και έναν gouraud shader που είναι το όνειρο μου. Έπεσε πολύ optimize και με πολύ γνώση και σε αλγοριθμικά 3d tricks και z80 assembly optimize. Και υπάρχουν περιθώρια για άλλο optimize στο μέλλον, φαντάσου τι μπορεί να κάνει ο z80 και ο Amstrad αν προσπαθήσουμε.

Εμπνευσμένος από ένα παλιό demo, το Face Hugger Ultimate Megademo του 1992, αναρωτιόμουνα γιατί κανένας δεν ξαναέκανε τέτοιου είδους realtime 3D engine. Υπήρχαν δηλαδή demos με flat πολύγωνα αλλά η τεχνική από πίσω είχε πολλά precalculations ή animations (π.χ. Batman Forever) αλλά τίποτα που να προσπαθεί να το κάνει realtime. Με αυτήν την engine, μπορώ να τοποθετώ αντικείμενα σε position/rotation και να λέω render. Έχει κάποιους περιορισμούς για την ώρα, αλλά θα βελτιωθούν. Σκέφτομαι θα μπορούσα να κάνω και κανά mini game που χειρίζεσαι το διαστημοπλιάκι και έρχονται από το βάθος πράγματα αν και όπως θα δείτε πέφτει γρήγορα το frame rate. Ίσως κάνω και ένα write up ή video για το τι είδους optimizations έκανα και πως κάταφερα σε 8/16bit values να χωρέσω όλο το precision για fixed point math και διάφορα μαθηματικά tricks.

https://www.pouet.net/prod.php?which=101163


p.s. Το demo τρέχει και σε 64k CPC, ο φίλος μου με έπεισε να προσπαθήσω να υποστηρίξω και τον 64k (ίσως ο 128k να μου έδεινε πιο άνεση για περισσότερα precalculated tabs για λίγο παραπάνω ταχύτητα αλλά και πιο πολλά parts για ένα μεγαλύτερο demo) και υπάρχει στο pouet zip archive και CDT (cassette) version εκτός από DSK.
 
Πολύ ωραίο demo! Τα σχέδια μου θυμίζουν κάτι απο αυτά που βλέπαμε σε demos για την Amiga.
 
Τελευταία επεξεργασία:
καλή φάση το έτρεξα στο SYMB CPC (c-one) σε ταχύτητα 80Mhz!! Amiga-like-quality :)

Wow.
Αυτό το C-one το πουλάνε κάπου; Η δεν παίζει να βρω;
Αναρωτιέμαι πως πάει, αν αποσυχρονίζεται, αν και είχα φροντίσει με interrupts να συγχρονίζω όλη την κίνηση με χρόνο που πέρασε ώστε και με variable framerate να είναι σωστό. Αλλά σε 80mhz δεν ξέρω πως πάει, θα ήθελα να το δω (κάνα video παίζει;).
 
Wow.
Αυτό το C-one το πουλάνε κάπου; Η δεν παίζει να βρω;
Αναρωτιέμαι πως πάει, αν αποσυχρονίζεται, αν και είχα φροντίσει με interrupts να συγχρονίζω όλη την κίνηση με χρόνο που πέρασε ώστε και με variable framerate να είναι σωστό. Αλλά σε 80mhz δεν ξέρω πως πάει, θα ήθελα να το δω (κάνα video παίζει;).

μάλλον πρέπει να υπάρχουν μερικά σε stock απο Individual Computers, αλλά δεν το προτείνω, γιατι είναι παλιο FPGA και τα cores έχουν τα προβλήματα τους, καλύτερα πάρε Mister ή συμβατό με αυτό.
Δυστυχώς δεν έχω capture card και επιπλέον δεν είμαι σίγουρος αν αυτά που κυκλοφορούν θα παίξουν, η έξοδος VGA στο c-one είναι τελείως "picky" και διαφορετικά cores έχουν διαφορετικά αποτελέσματα με την ίδια οθόνη, να φανταστείς μέχρι τώρα και για χρόνια είχα κάπως "χάλια" fonts στο cpc core με διάφορες οθόνες, και όταν πριν λίγους μήνες πήρα νέα HDMI/VGA οθόνη, την δοκίμασα και όλα καλά - τουλάχιστόν σε μερικά cores πάλι, ειδικά στο SYMB-CPC. Είναι σεδον χαοτική η κατάσταση με αυτό το FPGA.

να προσθέσω , νομίζω δεν αποσυχρονίζεται το demo, απλά καλύτερο framerate, με εξαίρεση να υπάρχει κάποιο μικρό flicker όπωτε άλλαζα ταχύτητα (4/24/80Mhz) στο στατικό logo (top screen) , αν θες κανονίζουμε μια μέρα video-chat να δεις.
 
Τελευταία επεξεργασία:
Το flicker στο logo είναι επείδη αλλάζω την παλέτα σε συγκεκριμένο interrupt που σκάει λίγο πριν το logo. Και με λίγη καθυστέρηση από τον music player, κατεβαίνει το timing μερικά raster lines κάτω και το αποφεύγει νωρίς σε κανονικό CPC. Εεε,. σε overclocked είναι τόσο γρήγορο που δεν το γλυτώνει.
 
Πίσω
Μπλουζα