Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run Καλώς ήλθες. Στο προηγούμενο μάθημα είδαμε τις λειτουργίες του μενού File του Editor της Unity. Όπως είπαμε οι δύο επιλογές που διαφέρουν από τις άλλες εφαρμογές είναι οι επιλογές Build Settings και Build & Run. παρακάτω παράθυρο. Επιλέγοντας Build Settings ανοίγει το
Η νέα έννοια που εμφανίζεται εδώ είναι το Build. Με απλά λόγια, όταν λέμε ότι «χτίζουμε» ( build ) μια εφαρμογή, εννοούμε ότι την προετοιμάζουμε για να την δώσουμε στον τελικό χρήστη. Στην περίπτωση μας, που φτιάχνουμε παιχνίδια, εννοούμαι ότι ετοιμάζουμε το παιχνίδι μας για να το δώσουμε στους παίχτες. Το κακό είναι ότι η διαδικασία είναι αρκετά πολύπλοκη για να την εξηγήσουμε εδώ, το καλό είναι ότι τα αναλαμβάνει όλα το περιβάλλον ανάπτυξης, στην περίπτωση μας η Unity. Εμείς αυτό που πρέπει να κάνουμε είναι να δώσουμε στη Unity τις απαραίτητες πληροφορίες. Ευτυχώς αυτό είναι εύκολο. Ας τα δούμε αναλυτικά. Στο επάνω μέρος βλέπουμε την περιοχή Scenes in Build. Εδώ ενημερώνουμε τη Unity ποιες σκηνές θέλουμε να συμπεριλάβει στο Build. Όσες σκηνές περιλαμβάνονται σε αυτή τη λίστα και είναι τσεκαρισμένες θα συμπεριληφθούν στο Build. Η σειρά καθορίζει τη σειρά με την οποία θα «φορτωθούν» ( load ), όταν ξεκινήσει το παιχνίδι. Επίτρεψε μου μια παρέκβαση. Χρησιμοποιήσαμε την έννοια «φορτώνεται» και νομίζω ότι καλό είναι να πούμε δυο πράγματα για το πώς δουλεύει ο υπολογιστής. Υπόσχομαι να το περιορίσω στα απολύτως απαραίτητα. Ο υπολογιστής
αποτελείται από πολλά μέρη. Τα σημαντικότερα είναι ο επεξεργαστής και η μνήμη. Ένα πρόγραμμα αποτελείται στην ουσία από εντολές και δεδομένα. Ο επεξεργαστής διαβάζει τις εντολές και τα δεδομένα από τη μνήμη και μετά εκτελεί τις εντολές χρησιμοποιώντας τα απαραίτητα δεδομένα. Για παράδειγμα εκτελεί στην εντολή «Εμφάνισε το κόκκινο σπιτάκι». Η εντολή είναι το «εμφάνισε» και τα δεδομένα είναι το «κόκκινο σπιτάκι». Προφανώς δεν θα το πούμε έτσι στον υπολογιστή, αλλά ελπίζω ότι κατάλαβες τι είναι εντολή και τι είναι δεδομένα. Είναι μια πολύ απλοϊκή περιγραφή αλλά μας βοηθά να καταλάβουμε τι εννοούμε με την έννοια «φορτώνεται». Όταν «χτίζουμε» ( build ) το παιχνίδι μας δημιουργούμε ένα «πακέτο» με τις εντολές και τα δεδομένα του. Κατόπιν τα δίνουμε στον παίχτη με ένα cd, ένα USB «φλασάκι», μέσω internet ή με οποιονδήποτε άλλο τρόπο επιθυμούμαι. Ο παίχτης παίρνει το «πακέτο» και το μεταφέρει στον μόνιμο αποθηκευτικό χώρο του υπολογιστή του, π.χ. τον σκληρό δίσκο. Κάτι αντίστοιχο γίνεται και στο tablet ή το κινητό. Όταν «τρέξει» το παιχνίδι, όταν δηλαδή κάνει διπλό αριστερό κλικ στο εικονίδιο του παιχνιδιού, ο υπολογιστής μεταφέρει τις εντολές και τα δεδομένα από τον μόνιμο αποθηκευτικό χώρο στη μνήμη και ο επεξεργαστής αρχίζει να εκτελεί τις εντολές. Ελπίζω ότι τώρα είναι πιο ξεκάθαρο τι είναι το build. Είναι η διαδικασία δημιουργίας του «πακέτου» εντολών και δεδομένων που θα δώσουμε στον παίχτη για να απολαύσει το παιχνίδι μας στον υπολογιστή του, το tablet του ή το κινητό του κλπ. Επομένως αυτό που λέμε στη Unity στην περιοχή Scenes in Build είναι ποιες σκηνές θέλουμε να συμπεριληφθούν σε αυτό το πακέτο και τη σειρά που θέλουμε με την οποία θέλουμε να «φορτωθούν» στη μνήμη. Επίσης αυτές είναι και οι σκηνές που μπορούμε να χρησιμοποιήσουμε στον κώδικα μας, αλλά θα πούμε περισσότερα για αυτό σε άλλο μάθημα. Για να προσθέσουμε μια σκηνή στη λίστα πατάμε το κουμπί Add Open Scenes για να προστεθούν οι σκηνές που έχουμε ανοιχτές στον Editor ή «σέρνουμε» ( drag & drop ) κατευθείαν από τον editor στη λίστα. Το επόμενο που πρέπει να καθορίσουμε είναι το Target Platform. Άλλος ένας όρος που δεν είναι εύκολο να μεταφραστεί. Ευτυχώς είναι εύκολο να εξηγηθεί. Απλά λέμε στη Unity που θα «τρέχει» ( εκτελείτε», run ) το παιχνίδι μας. Θα τρέχει σε υπολογιστή με Windows, σε Macintosh ή σε υπολογιστή με Linux, σε συσκευή με IOS ή σε συσκευή με Android. Ένα από τα πλεονεκτήματα της Unity είναι ότι υποστηρίζει πολλές πλατφόρμες. Δες της εικόνα παρακάτω για τις
διαθέσιμες πλατφόρμες και αν θες περισσότερες πληροφορίες μπορείς να δεις στο site της Unity στο link https://unity3d.com/unity/multiplatform. Επιλέγοντας από τη λίστα μια πλατφόρμα εμφανίζονται μια σειρά από επιλογές. Κάθε πλατφόρμα έχει τις δικές τις επιλογές. Δυστυχώς πρόκειται για αρκετά προχωρημένη ύλη και θα έπρεπε να εξηγήσω πάρα πολλά πράγματα για την αρχιτεκτονική του υπολογιστή και δεν μπορώ να το κάνω εδώ. Εμείς, ούτως ή άλλως, θα δουλεύουμε στον υπολογιστή μας, επομένως οι προεπιλογές μας καλύπτουν. Όταν θα φτάσουμε στο σημείο να «δημοσιεύουμε» ( publishing, deploying ) τα παιχνίδια θα δούμε αναλυτικά τις διαδικασίες. Σημείωσε πάντως πως αν, όταν έκανες την εγκατάσταση της Unity, δεν επέλεξες μια πλατφόρμα, όταν επιλέξεις την πλατφόρμα αυτή στη λίστα, θα σου ζητήσει να την εγκαταστήσεις.
Για να εξηγήσω τις επόμενες επιλογές πρέπει να μιλήσουμε για «ζουζούνια». Ίσως η πιο γνωστή έννοια σε όλους τους προγραμματιστές κάθε είδους είναι η έννοια του bug, του «ζουζουνιού». Πριν πάρετε το εντομοκτόνο, να σας πως ότι bug είναι απλά ένα σφάλμα, ένα λάθος, στον κώδικα, το οποίο δεν μπορούμε να βρούμε πριν «τρέξει» το παιχνίδι μας, η οποιοδήποτε πρόγραμμα. Συνήθως το αποτέλεσμα είναι «καταστροφικό». Το παιχνίδι σταματάει ( crash ) και ο παίχτης εξοργίζεται, ιδίως αν χάσει εκείνο το υπέροχο αντικείμενο που προσπαθούσε να αποκτήσει τις τελευταίες τρεις ώρες ή αν πρέπει να νικήσει ξανά εκείνο το απαίσιο ζόμπι. Η διαδικασία λοιπόν που ακολουθεί ο προγραμματιστής για να καθαρίσει το πρόγραμμα του από τα σφάλματα του κώδικα λέγεται «απεντόμωση» ( debugging ). Ο πιο αποδοτικός τρόπος είναι ο εντατικός και συνεχής έλεγχος, το testing. Υπάρχουν μάλιστα ειδικοί επαγγελματίες, οι οποίοι λέγονται «ελεγκτές» ( testers ), και η δουλειά του είναι ακριβώς να ψάχνουν να βρουν τα «ζουζούνια» και να το πουν στους προγραμματιστές για να τα πετάξουν έξω από το παιχνίδι. Οι προγραμματιστές, για να βοηθήσουμε τους testers, πρέπει να τους δώσουμε
περισσότερες πληροφορίες. Αυτό κάνουν οι επόμενες τρεις επιλογές. Η πρώτη, Development Build δηλώνει στη Unity ότι το πακέτο προορίζεται για έλεγχο και έτσι ενεργοποιούνται και οι επόμενες δύο επιλογές: το Auto-connect Profiler και το Script Debugging. Η πρώτη συνδέει τον Profiler, τον οποίο θα δούμε σε άλλο μάθημα, και η δεύτερη επιτρέπει να κάνουμε debugging, να βλέπουμε δηλαδή μίαμία τις εντολές που εκτελούνται και να τις ελέγχουμε. Όμως αυτά θα τα δούμε σε άλλα μαθήματα. Κάτω από τη λίστα με τις πλατφόρμες υπάρχουν δύο κουμπιά. Το Switch Platform κάνει τις απαραίτητες αλλαγές για να αλλάξεις πλατφόρμα και το Player Settings ανοίγει στον Inspector στον Editor διάφορες ιδιότητες που μπορούμε να ορίσουμε για το παιχνίδι μας. Θα τα δούμε και αυτά στην ώρα τους. Δεξιά υπάρχουν τα κουμπιά Build, που τρέχει τη διαδικασία του build και Build & Run που τρέχει τη διαδικασία του build και αμέσως μετά τρέχει το παιχνίδι. Όπως θα έχεις καταλάβει η επιλογή του μενού File Build & Run κάνει ακριβώς το ίδιο. Πάνω από αυτά τα κουμπιά υπάρχει ένας σύνδεσμος ( link ) που μας πάει στην
σελίδα της Unity, στην οποία μπορούμε να ενεργοποιήσουμε τις υπηρεσίες cloud build. Αυτές είναι, εν ολίγοις, υπηρεσίες που μας βοηθούν να δώσουμε πρόσβαση στο παιχνίδι μας σε πολλούς testers για να κάνουμε πιο αποδοτικό έλεγχο. Αυτή τη στιγμή δεν το χρειαζόμαστε αλλά αργότερα σίγουρα θα ασχοληθούμε με αυτό. Προς το παρόν σε χαιρετώ. Και όπως είπαμε. Μην κάθεσαι συνέχεια μπροστά στον υπολογιστή. Κάνε καμιά βόλτα. Ξεκουράσου. Σε περιμένω στο επόμενο μάθημα, στο οποίο θα μιλήσουμε για το μενού Edit.