Faragiri

Εκμάθηση: Ανάπτυξη παιχνιδιών Προγραμματισμός υπολογιστών

Γιατί το ίδιο παιχνίδι τρέχει διπλάσια σε καλύτερο μηχάνημα, τι χωράει σε 16,7 χιλιοστά, και πόσο κοστίζει σε ευρώ κάθε τίτλος που ανεβαίνει σε κατάστημα.

6Ενότητες
6Λεπτά ανάγνωσης
2Βάθος

Εξήντα φορές το δευτερόλεπτο

Πέντε στάδια που είναι μία επιφάνεια, επειδή μοιράζονται έναν προϋπολογισμό

Ακουμπούν μεταξύ τους επειδή δεν είναι πέντε ξεχωριστές δουλειές. Είναι πέντε απαιτήσεις πάνω στα ίδια 16,7 χιλιοστά, και όποια τραβήξει παραπάνω καθυστερεί τις άλλες.

Ένα καρέ
  • Διάβασμα της εισόδουΤι είναι πατημένο τώρα, όχι τι πατήθηκε από την προηγούμενη φορά
  • Προχώρημα του κόσμουΠολλαπλασιασμένο με τα δευτερόλεπτα που πέρασαν, αλλιώς το παιχνίδι τρέχει με την ταχύτητα του μηχανήματος
  • Επίλυση της φυσικήςΣε σταθερές φέτες, αλλιώς ένα γρήγορο αντικείμενο περνάει μέσα από τοίχο στον οποίο δεν βρέθηκε ποτέ
  • Απόφαση για το ορατόΤο μεγαλύτερο μέρος του κόσμου είναι εκτός οθόνης και οφείλει να κοστίζει μηδέν
  • ΣχέδιοΤο μόνο στάδιο που βλέπει ο παίκτης, και σπάνια εκείνο που αργεί
  • Διάβασμα της εισόδουΤι είναι πατημένο τώρα, όχι τι πατήθηκε από την προηγούμενη φορά
  • Προχώρημα του κόσμουΠολλαπλασιασμένο με τα δευτερόλεπτα που πέρασαν, αλλιώς το παιχνίδι τρέχει με την ταχύτητα του μηχανήματος
  • Επίλυση της φυσικήςΣε σταθερές φέτες, αλλιώς ένα γρήγορο αντικείμενο περνάει μέσα από τοίχο στον οποίο δεν βρέθηκε ποτέ
  • Απόφαση για το ορατόΤο μεγαλύτερο μέρος του κόσμου είναι εκτός οθόνης και οφείλει να κοστίζει μηδέν
  • ΣχέδιοΤο μόνο στάδιο που βλέπει ο παίκτης, και σπάνια εκείνο που αργεί

Τα κελιά είναι σχεδιασμένα ίδια και δεν είναι: στα περισσότερα καρέ το σχέδιο και η φυσική παίρνουν σχεδόν όλον τον προϋπολογισμό και η είσοδος σχεδόν τίποτα.

Η Δανάη Σπανού έγραψε ένα μικρό παιχνίδι στη Μυτιλήνη: ένα καΐκι που περνάει ανάμεσα σε νησιά και μαζεύει κάσες. Στον δικό της φορητό, που το έτρεχε στα 60 καρέ το δευτερόλεπτο, το πέρασμα κρατούσε δώδεκα δευτερόλεπτα. Σε φορητό φίλης της, στα 144 καρέ, το ίδιο πέρασμα κρατούσε πέντε, και το καΐκι έμπαινε στα βράχια. Τίποτα δεν ήταν τυχαίο και τίποτα δεν είχε χαλάσει. Είχε γράψει την κίνηση σε εικονοστοιχεία ανά καρέ, και πόσα καρέ υπάρχουν το αποφασίζει η μηχανή.

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

Ο βρόχος, και ο προϋπολογισμός που παραδίδει

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

Το πέρασμα έχει σκληρό ταβάνι. Ο προϋπολογισμός καρέ στα 60 καρέ το δευτερόλεπτο είναι 16,7 χιλιοστά για τα πάντα: η φυσική, οι αποφάσεις των αντιπάλων, ο ήχος, το σχέδιο. Χάστε τον και το καρέ αργεί, πράγμα που ο παίκτης δεν το διαβάζει ως αριθμό αλλά ως τράνταγμα. Αυτή η πειθαρχία κάνει τον Κώδικα παιχνιδιού άλλο θέμα από τον συνηθισμένο προγραμματισμό, όπου μια συνάρτηση των 30 χιλιοστών θεωρείται γρήγορη.

Οι δύο γραμμές που ίσιωσαν τη διαδρομή του καϊκιού

Η επισκευή είναι από τις πιο μεταφέρσιμες ιδέες στα παιχνίδια. Χρόνος δέλτα: πολλαπλασιάστε κάθε κίνηση με τα δευτερόλεπτα από το προηγούμενο καρέ. Αντί να μετακινείται το καΐκι 5 εικονοστοιχεία σε κάθε καρέ, μετακινείται 300 εικονοστοιχεία το δευτερόλεπτο και πολλαπλασιάζεται με το πόσο κράτησε πράγματι το τελευταίο καρέ.

  • x = x + speed * dt όπου το speed είναι 300 και το dt είναι 0,0167 στα 60 καρέ
  • η ίδια γραμμή δίνει 5,0 στον παλιό φορητό και 2,08 στον γρήγορο

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

Τι κάνει στ' αλήθεια μια μηχανή

Μια μηχανή δεν είναι συντόμευση για να φτιαχτεί ένα παιχνίδι. Είναι η απάντηση σε ό,τι μέσα σε ένα παιχνίδι δεν είναι το παιχνίδι: το παράθυρο, το χειριστήριο, η μίξη του ήχου, ο αγωγός του υλικού, η φυσική, η εξαγωγή σε πέντε πλατφόρμες. Οι Μηχανές παιχνιδιών ονομάζονται ακριβώς, και το όνομα είναι το νόημα. Εκείνο που δεν προμηθεύουν είναι ο λόγος για τον οποίο παίζει κάποιος, που είναι ολόκληρο το περιεχόμενο του Σχεδιασμού παιχνιδιού.

Το καΐκι θα είχε χτιστεί γρηγορότερα μέσα σε μηχανή, και η Δανάη δεν θα είχε συναντήσει ούτε τον χρόνο δέλτα ούτε το σταθερό βήμα, πράγμα που για ένα πρώτο έργο είναι επιχείρημα και προς τις δύο κατευθύνσεις. Μια μηχανή αποφασίζει επίσης πολλά που δεν ανακοινώνονται ποτέ ως αποφάσεις: πώς οργανώνεται ο κόσμος στη μνήμη, τι είναι μια σκηνή, και πού πέφτει η ραφή ανάμεσα στον δικό της κώδικα και στον δικό της. Η αλλαγή μηχανής αργότερα δεν είναι μεταφορά, είναι επανεγγραφή των πάντων εκτός από την ιδέα και τα γραφικά.

Ένα παιχνίδι

Τέσσερα κομμάτια, και ένα παιχνίδι που του λείπει ένα είναι επίδειξη

Δεν είναι στάδια και δεν είναι τμήματα. Η αφαίρεση ενός δεν βγάζει μικρότερο παιχνίδι, βγάζει ημιτελές.

  1. Τα συστήματαΟι κανόνες, ο βρόχος, και ο κώδικας που έχει 16,7 χιλιοστά για να τους τρέξει
  2. Ο λόγος να συνεχίσει κανείςΤι αποφασίζει ο παίκτης, και γιατί αξίζει το επόμενο λεπτό
  3. Το υλικό, μέσα σε προϋπολογισμό6.000 τρίγωνα αντί για 60.000, αποφασισμένα με αριθμητική πριν από το γούστο
  4. Το τελευταίο δέκα τοις εκατόΜενού, αποθήκευση, ρυθμίσεις και η έκδοση για το κατάστημα, που είναι μισό ημερολόγιο

Τα κομμάτια δεν είναι ίσα σε ώρες. Το τέταρτο παίρνει τακτικά όσο και τα άλλα τρία μαζί, και είναι εκείνο που λείπει από σχεδόν κάθε εγκαταλειμμένο έργο.

Ο προϋπολογισμός που δεν τον λέει κανείς στον σχεδιαστή

Το ρολόι φτάνει και στα γραφικά. Κάθε στοιχείο έχει κόστος που πληρώνεται σε κάθε καρέ, και τον προϋπολογισμό τον ορίζει η μηχανή και όχι ο καλλιτέχνης. Ένας χαρακτήρας στα 60.000 τρίγωνα και ένας στα 6.000 μοιάζουν σχεδόν ίδιοι στο μέγεθος που βλέπει ο παίκτης, και ο ένας από τους δύο τρώει δέκα φορές περισσότερο από τα 16,7 χιλιοστά. Γι' αυτό τα Γραφικά παιχνιδιών κάθονται κάτω από ένα θέμα προγραμματισμού: ο περιορισμός είναι αριθμητική και φτάνει πριν από κάθε αισθητική απόφαση.

Το ίδιο ρολόι χτυπάει και τα ελληνικά, από άλλη μεριά. Η οθόνη τίτλων της Δανάης λέει Press any key, δεκατρείς χαρακτήρες, και το κουμπί σχεδιάστηκε πάνω σε αυτούς. Στα ελληνικά η ίδια πρόταση είναι «Πατήστε ένα πλήκτρο», δεκαεννιά χαρακτήρες, και το κείμενο βγαίνει έξω από το κουμπί ή σμικρύνεται μόνο του σε μέγεθος που δεν διαβάζεται σε φορητό. Ένα ελληνικό πακέτο γλώσσας κοστίζει ένα απόγευμα και παραλείπεται σχεδόν πάντα, όχι επειδή είναι δύσκολο, αλλά επειδή η διάταξη κλείδωσε πριν υπάρξει δεύτερη γλώσσα.

Πού κολλάνε: το εύρος, και το τελευταίο δέκα τοις εκατό

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

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

Τι ανοίγετε το 2026, και τι κοστίζει ανά τίτλο σε ευρώ

Το Godot είναι η δωρεάν επιλογή χωρίς όρο εσόδων, είναι ανοιχτού κώδικα, και πήρε μεγάλο μερίδιο της δισδιάστατης δουλειάς από το 2023, όταν ο βασικός εμπορικός του αντίπαλος ανακοίνωσε χρέωση ανά εγκατάσταση και ύστερα την απέσυρε. Το Unity παραμένει η ευρύτερη επιλογή σε αριθμό θέσεων εργασίας και σε υποστήριξη πλατφορμών, και είναι δωρεάν κάτω από ένα όριο εσόδων. Το Unreal είναι η απάντηση για τρισδιάστατη δουλειά υψηλού επιπέδου και παίρνει ποσοστό πάνω από ένα όριο αντί για άδεια χρήσης.

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

Η ελληνική γραμμή του προϋπολογισμού είναι παρακάτω, στο κατάστημα. Το τέλος του Steam είναι ανά τίτλο και επιστρέφεται μόνο μετά τα πρώτα 1.000 δολάρια προσαρμοσμένων ακαθάριστων εσόδων. Η χρέωση είναι 100 δολάρια, που φτάνουν στην ελληνική κάρτα σε ευρώ με την ισοτιμία της ημέρας, δηλαδή γύρω στα ενενήντα. Πάνω σε καθαρές αποδοχές κοντά στα 1.000 ευρώ, πληρωμένες δεκατέσσερις φορές τον χρόνο, είναι το ένα δέκατο ενός μισθού ανά τίτλο, και το «ανά τίτλο» είναι η λέξη που κοστίζει: η σωστή συμβουλή, να βγουν τρία μικρά πράγματα αντί για ένα μεγάλο, πληρώνεται εδώ τρεις φορές.

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

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

Δίπλα σε αυτό

Πάνω από αυτό