Εκπαιδευτικά παιχνίδια φυσικής, ανεπτυγμένα στο Unity

Σχετικά έγγραφα
Texturing, Animation, Lighting, Rendering

Φτιάξε ένα απλό παιχνίδι

Slalom Race Computer Game on Scratch

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

Tank Rescue Computer Game σε Scratch

Breakdance Computer Game σε Scratch.

Unity Μια Πρώτη Ματιά

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

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

Αγώνες αυτοκινήτου Παιχνίδι για 2 παίκτες

Το δεύτερο παιχνίδι ΤΟΥΒΛΑΚΙΑ

Πώς το λένε Computer game στο Scratch

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

Σχετική κίνηση αντικειμένων

Εισαγωγή στο 3DS Max 2009

Ταυτότητα εκπαιδευτικού σεναρίου

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences

Λεπτομέριες τοιχοποιίας Σχεδίαση κάτοψης

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

αντίστοιχο γεγονός. Όταν όντως το κουμπί

Η εργασία που επέλεξες θα σου δώσει τη δυνατότητα να συνεργαστείς με συμμαθητές σου και να σχεδιάσετε μια εικονική εκδρομή με το Google Earth.

Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run

3 ο εργαστήριο Scratch for NinjaCoders

Copyright 2017 HP Development Company, L.P.

Οδηγίες Χρήσεως Ψηφιακού Αποθετηρίου Ιστοριών στην Ελληνική Νοηματική Γλώσσα (ΕΝΓ)

Ανακύκλωσε το Computer Game σε Scratch

Δραστηριότητα 1 Σχεδιασμός σκηνικού

Προγραμματισμός. Το περιβάλλον του scratch

Εγκατάσταση της Unity

Μάθημα 1: Εισαγωγή. Κάνε κλικ την εντολή "κινήσου" και με το ποντίκι πατημένο μετέφερε τη στη περιοχή σεναρίων.

Εμφανίζονται 3 επιλογές με 3 εικονίδια, η «ζωγραφική», η «εισαγωγή» και η «κάμερα».

Τα Φύλλα Εργασίας αφορά την εκμάθηση της εκτέλεσης της δομής επιλογής μέσα από το περιβάλλον του SCRATCH.

Φώτα - Εκτύπωση Αποθήκευση εικόνας

ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ. Εργαλειοθήκη Παρουσιάζετε το έργο σας Εκκινείτε τα σενάριά σας Σταματάτε όλα τα σενάρια. Οι 8 ομάδες της Παλέτας εντολών

ΣΚΗΝΙΚΟ ΥΠΟΒΑΘΡΑ ΑΡΧΙΚΗ

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48

Άλλαξε Χρώμα. Άλλαξε Χρώμα ΠΡΟΕΤΟΙΜΑΣΙΑ. Κάνε κλικ για να αλλάξεις το χρώμα ενός αντικειμένου. Διάλεξε ένα αντικέιμενο από τη βιβλιοθήκη.

Κατερίνα Χατζηφωτεινού. Αλγοριθμικά παιχνίδια & Kodu

Δημιουργία ιστοσελίδας με. Wordpress - Βασικές λειτουργίες

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Αναπαραγωγή και stop/pause έτοιμων ηχητικών clips

Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape

Asylum, the Escape. Game Manual

ΕΡΓΑΛΕΙΑ ΚΑΤΑΣΚΕΥΗΣ ΠΑΙΧΝΙΔΙΩΝ: Εργασία με το λογισμικό Valve Editor

Εξοικείωση με το NXT-G

Το Κ2 είναι ένα παιχνίδι για 1 έως 5 παίκτες, ηλικίας 8 ετών και άνω, με διάρκεια περίπου 60 λεπτά.

Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER. Ονοματεπώνυμο:

1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω:

1ο Φύλλο Εργασίας. της παλέτας Ήχος. Πώς μπορούμε να εισάγουμε και να αναπαράγουμε έναν ήχο;

x = r cos φ y = r sin φ

Άσκηση 6 Ώθηση δύναμης Μεταβολή ορμής

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch

Μεταβλητές. Για περισσότερες λεπτομέρειες πάνω στις μεταβλητές θα ήταν χρήσιμο να διαβάσεις το

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE

Βαγγέλης Τσιλιγωνέας. Διατμηματικό Πρόγραμμα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήματα M.Sc. In Information Systems

Άσκηση 8 Ελαστικές και μη ελαστικές κρούσεις Αρχή διατήρησης της ορμής

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE. ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»...

Δομή Επιλογής. 1. Αν ο σκύλος ακουμπήσει ένα κόκαλο τότε το κόκαλο εξαφανίζεται και ο παίκτης κερδίζει 10 πόντους.

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

«Προγραµµατισµός του LEGO Mindstorm NXT για το διαγωνισµό "Move the Ball!"»

Κεφάλαιο 2.3: Ρυθμίσεις των Windows

Το σκηνικό μας είναι πλέον έτοιμο για εισάγουμε τα υπόλοιπα αντικείμενα του έργου μας.

River IQ Game Computer Game σε Scratch

Unity Editor #03 Κεντρικό Μενού: Edit

Εισαγωγή στην επανάληψη

ΟΔΗΓΟΣ ΔΗΜΙΟΥΡΓΙΑΣ ΤΡΙΣΔΙΑΣΤΑΤΩΝ ΓΡΑΦΙΚΩΝ ΜΕ ΧΡΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ POVRAY MODELER ΣΤΟ LINUX

Πτυχιακή Εργασία Οδηγώντας ένα Ρομποτικό Αυτοκίνητο με το WiFi. Η Ασύρματη Επικοινωνία, χρησιμοποιώντας

Computer Games-Edutainment Design document

ΠΡΟΕΤΟΙΜΑΣΙΑ ΠΑΡΑΔΕΙΓΜΑ ΠΡΟΕΤΟΙΜΑΣΙΑΣ ΓΙΑ 4 ΠΑΙΚΤΕΣ: 1. ΠΡΟΕΤΟΙΜΑΣΙΑ ΤΩΝ ΝΗΣΙΩΝ

Παραδείγματα μεταβλητών

Το τρίτο παιχνίδι ΛΑΒΥΡΙΝΘΟΣ ΜΕ ΕΜΠΟΔΙΑ

Εφαρμογή δημιουργίας σεναρίων Sctatch

Άσκηση 13 η Ειδικά Εφέ. Στόχος της άσκησης

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Καροτοκυνηγός. Αντικείμενα

Scratch 2.0 Προκλήσεις

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος.

Γνωριμία με το περιβάλλον

Βιωματικό εργαστήριο ηλεκτρονικών υπολογιστών. Οργάνωση εκπαιδευτικού υλικού με Η/Υ από δραστηριότητες στο Δημοτικό και στο Νηπιαγωγείο.

Το φτερό του αεροπλάνου

Εγχειρίδιο Χρήσης του «Μαθη.Συ.»

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού

Unity editor. Μέρος 2ο

Εκπαιδευτικό λογισμικό «Παίξε με τις λέξεις 1» Παγκράτιος Παυλίδης Χρίστος Μπίτσης Δήμου Ιουλία Δάσκαλοι Ειδικής Αγωγής

2. Κάντε κλικ στο παράθυρο όψης Top για να το ενεργοποιήσετε, ώστε να σχεδιάσετε το πάτωµα του δωµατίου.

Ιπτάμενες Μηχανές. Οδηγός για το Μαθητή

Vodafone Business Connect

18.ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 Δραστηριότητα 1

Τα στοιχεία του παιχνιδιού : Σκηνικό

ΣΧΗΜΑΤΑ-ΕΙΚΟΝΕΣ-ΕΞΙΣΩΣΕΙΣ

HomeWork. Οδηγίες Χρήσης. Ένας δάσκαλος στο σπίτι.

Εκκίνηση προγράμματος

Σενάριο 16: Ο κόσμος του Robby

Ενδυμασίες. Μετονομάζουμε την νέα ενδυμασία του αντικείμενου μας και έχουμε ολοκληρώσει τη δημιουργία της.

Transcript:

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εκπαιδευτικά παιχνίδια φυσικής, ανεπτυγμένα στο Unity Αντώνιος Α. Αραβαντινός Επιβλέπων : Δημήτριος Βαρουτάς, Επίκουρος Καθηγητής ΑΘΗΝΑ ΙΑΝΟΥΑΡΙΟΣ 2017

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εκπαιδευτικά παιχνίδια φυσικής, ανεπτυγμένα στο Unity Αντώνιος Αραβαντινός Α.Μ.: 1115200500241 ΕΠΙΒΛΕΠΟΝΤΕΣ: Δημήτριος Βαρουτάς, Επίκουρος Καθηγητής

ΠΕΡΙΛΗΨΗ Σκοπός αυτής της πτυχιακής εργασίας είναι η γνωριμία με Unity. Το Unity είναι μια μηχανή ανάπτυξης ηλεκτρονικών παιχνιδιών, δισδιάστατων ή τρισδιάστατων, συμβατών με πολλές πλατφόρμες, όπως υπολογιστές, κινητά με λογισμικό Android ή ios κλπ. Αυτή η γνωριμία, επιτυγχάνεται μέσω της σχεδίασης και ανάπτυξης δύο εκπαιδευτικών παιχνιδιών, που αφορούν τον επιστημονικό τομέα της φυσικής. Το ένα παρουσιάζει την έννοια της τριβής, ενώ το δεύτερο ασχολείται με τον μαγνητισμό. Στόχος ήταν μέσα από την εξοικείωσή μου με το Unity να δημιουργήσω παιχνίδια, τα οποία να είναι απλά στη χρήση και την κατανόηση, ώστε να μπορούν να χρησιμοποιηθούν σε σχολικό περιβάλλον. ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ: Ανάπτυξη 3D παιχνιδιών και εφαρμογών εκπαιδευτικού χαρακτήρα. ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: Unity, παιχνίδια φυσικής, μαγνητισμός, τριβή, ανάπτυξη εφαρμογών

ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ... 7 1. ΕΙΣΑΓΩΓΗ... 8 1.1 Εισαγωγή στο Unity... 8 1.2 Περιβάλλον εργασίας... 8 1.3 Λειτουργίες... 9 2. ΠΑΙΧΝΙΔΙ ΜΕ ΤΗΝ ΤΡΙΒΗ... 10 2.1 Εισαγωγή στο παιχνίδι... 10 2.2 Σκοπός του παιχνιδιού... 10 2.3 Ιδιότητες αντικειμένων... 10 2.4 Δέσμες εντολών... 13 2.5 Λοιπά στοιχεία... 17 3. ΠΑΙΧΝΙΔΙ ΜΕ ΜΑΓΝΗΤΕΣ... 19 3.1 Εισαγωγή στο παιχνίδι... 19 3.2 Σκοπός του παιχνιδιού... 19 3.3 Στήσιμο του σκηνικού... 20 3.4 Ιδιότητες αντικειμένων... 20 3.5 Δέσμες εντολών... 22 3.6 Λοιπά στοιχεία... 28 4. ΣΥΜΠΕΡΑΣΜΑΤΑ... 29 ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ... 30

ΣΥΝΤΜΗΣΕΙΣ ΑΡΚΤΙΚΟΛΕΞΑ ΑΚΡΩΝΥΜΙΑ... 31 ΑΝΑΦΟΡΕΣ... 32

ΚΑΤΑΛΟΓΟΣ ΕΙΚΟΝΩΝ Εικόνα 1.1 : Το περιβάλλον εργασίας του Unity... 8 Εικόνα 2.1 : Περιβάλλον του παιχνιδιού τριβής... 10 Εικόνα 2.2 Ιδιότητες αντικειμένου... 11 Εικόνα 2.3 Ρύθμιση τριβής αντικειμένου... 12 Εικόνα 2.4 Ρυθμίσεις κάμερας... 12 Εικόνα 2.5 Ρυθμίσεις φωτισμού... 13 Εικόνα 2.6 Κώδικας κίνησης της κάμερας... 14 Εικόνα 2.7 Κώδικας για την εκτόξευση του αντικειμένου... 15 Εικόνα 2.8 Κώδικας μετρητή τριβής... 16 Εικόνα 2.9 Κώδικας πλήκτρων εντός του παιχνιδιού... 17 Εικόνα 3.1 Γενική εικόνα του παιχνιδιού... 19 Εικόνα 3.2 Ιδιότητες κάμερας παρασκηνίου... 20 Εικόνα 3.3 Μαγνητικό πεδίο... 21 Εικόνα 3.4 Κώδικας καταστροφέα... 22 Εικόνα 3.5 Κώδικας μαγνητικής έλξης... 23 Εικόνα 3.6 Κώδικας μαγνητικής έλξης καροτσιού... 24 Εικόνα 3.7 Κώδικας κίνησης μαγνήτη... 25 Εικόνα 3.8 Κώδικας προσθήκης πόντων στο σκορ... 26 Εικόνα 3.9 Κώδικας τέλους παιχνιδιού... 27 Εικόνα 3.10 Σκηνή τέλους παιχνιδιού... 27

ΠΡΟΛΟΓΟΣ Η παρούσα εργασία εκπονήθηκε στην Αθήνα το Χειμερινό εξάμηνο του 2016-2017. Μετά από μακρά αναζήτηση θέματος πτυχιακής εργασίας και έπειτα από επικοινωνία με τον κύριο Βαρουτά, καταλήξαμε στο συγκεκριμένο θέμα. Ήδη είχα μια μικρή προγενέστερη εμπειρία στο εργαλείο Unity, η οποία σε συνδυασμό με περαιτέρω μελέτη εκ μέρους μου, οδήγησε στο αποτέλεσμα που παρουσιάζω εδώ. Η μεγαλύτερη πρόκληση που είχα να αντιμετωπίσω ήταν η εύρεση ιδέας για τα παιχνίδια που θα υλοποιούσα και σε δεύτερο στάδιο η πρακτική υλοποίηση αυτής της ιδέας. Κατά κύριο λόγο η παρούσα πτυχιακή εργασία αποτελείται από την υλοποίηση του πρακτικού κομματιού και όχι τόσο από βιβλιογραφικά στοιχεία.

1.1 Εισαγωγή στο Unity 1. ΕΙΣΑΓΩΓΗ Το Unity είναι ένα εργαλείο για την ανάπτυξη ηλεκτρονικών παιχνιδιών. Προσφέρει γραφικό περιβάλλον, έτσι ο χρήστης μπορεί να βλέπει και να ελέγχει σε πραγματικό χρόνο όσα υλοποιεί. Με αυτό τον τρόπο γίνεται πιο εύκολη η δημιουργία του κόσμου του παιχνιδιού, όπως και η σωστή τοποθέτηση των αντικειμένων. Ένα ακόμα μεγάλο του πλεονέκτημα, είναι ότι προσφέρει πληθώρα επιλογών και δυνατοτήτων, ώστε τα αντικείμενα και οι χαρακτήρες να αποκτήσουν συμπεριφορά, σύμφωνη με τους νόμους της φυσικής. Επίσης η άμεση σύνδεσή του με επεξεργαστές κώδικα (code editors) όπως το Visual Studio ή ο ενσωματωμένος MonoDevelop προσφέρει ευκολία στη εγγραφή κώδικα, απαραίτητου για τη λειτουργία του παιχνιδιού. Ένα ακόμα σημαντικό στοιχείο του Unity είναι η ύπαρξη του Asset Store, απ όπου μπορεί ο καθένας να κατεβάσει δωρεάν ή επί πληρωμή αντικείμενα, χαρακτήρες, στοιχεία του περιβάλλοντος και άλλα, που θα βοηθήσουν στην υλοποίηση του παιχνιδιού. 1.2 Περιβάλλον εργασίας Εικόνα 1.1 : Το περιβάλλον εργασίας του Unity Στην Εικόνα 1.1 βλέπουμε το περιβάλλον εργασίας του Unity. Στ αριστερά πάνω βρίσκεται η σκηνή του παιχνιδιού, όπου και μπορούμε να εισαγάγουμε, να τοποθετήσουμε και να τροποποιήσουμε αντικείμενα του παιχνιδιού. Κάτω αριστερά είναι η εικόνα που θα παίρναμε σαν χρήστης αν τρέχαμε το παιχνίδι. Στο δεξί μισό της οθόνης έχουμε τα μενού περιήγησης, απ όπου μπορούμε να προσπελάσουμε γρήγορα τα διάφορα κομμάτια του σχεδίου (project), αλλά και να τροποποιήσουμε πολλές παραμέτρους αντικειμένων. Στο πάνω αριστερό κομμάτι είναι η ιεραρχία της ενεργής σκηνής του παιχνιδιού που φτιάχνουμε. Ακριβώς από κάτω βρίσκεται το μενού περιήγησης, απ όπου έχουμε πρόσβαση στα αρχεία του project μας. Στο δεξί μέρος, ανάλογα το αντικείμενο που έχουμε επιλέξει, υπάρχουν όλες οι επιλογές, στις οποίες μπορούμε να παρέμβουμε. Στο πάνω μέρος της οθόνης και ακριβώς στη μέση, έχουμε τις επιλογές ροής για το τρέξιμο του παιχνιδιού. Υπάρχουν τρία πλήκτρα, της Α. Αραβαντινός 8

αναπαραγωγής του παιχνιδιού, της παύσης και της προόδου σε βήματα. Με αυτά ελέγχουμε τη δοκιμαστική εκτέλεση του παιχνιδιού. 1.3 Λειτουργίες Στο Unity ο χρήστης μπορεί να επιλέξει από ένα πλήθος επίλογων για την κάμερα, για τον φωτισμό της σκηνής του παιχνιδιού, αλλά και για διάφορες ιδιότητες αντικειμένων. Έτσι το να αλλάξει η τριβή ενός υλικού ή η ελαστικότητα ενός αντικειμένου, γίνεται πολύ εύκολα και σε ελάχιστο χρόνο. Η συμπεριφορά τον αντικειμένων και του περιβάλλοντος, πέρα από το γραφικό περιβάλλον, καθορίζεται και από δέσμες εντολών (scripts), όπου ο σχεδιαστής μπορεί με την χρήση, τις περισσότερες φορές, απλού κώδικα, να κάνει τα πάντα να συμπεριφέρονται όπως ακριβώς επιθυμεί. Α. Αραβαντινός 9

2.1 Εισαγωγή στο παιχνίδι 2. Παιχνίδι με την τριβή Εικόνα 2.1 : Περιβάλλον του παιχνιδιού τριβής Στην Εικόνα 2.1 βλέπουμε πλήρως ανεπτυγμένο το παιχνίδι στο Unity. Πάνω αριστερά, όπως ανέφερα και πριν, είναι η σκηνή του παιχνιδιού. Βλέπουμε σε διάφορες στρώσεις (layers) το περιβάλλον και τα αντικείμενα του παιχνιδιού. Το μεγάλο ορθογώνιο που ξεχωρίζει στο βάθος, είναι ο καμβάς. Στον καμβά περιλαμβάνονται κουμπιά, κείμενο ή και διάφορα άλλα βοηθητικά αντικείμενα. Στο κάτω αριστερό μέρος είναι η τελική εικόνα που θα λαμβάνει ο παίκτης, ανάλογα και με τις ρυθμίσεις της κάμερας που έχουν γίνει. 2.2 Σκοπός του παιχνιδιού Ο σκοπός του συγκεκριμένου παιχνιδιού είναι να κάνει εύκολα κατανοητή στα παιδιά την έννοια της τριβής. Βασικός στόχος είναι να καταφέρει ο παίκτης, επιλέγοντας την κατάλληλη δύναμη που θα ασκήσει στο κυκλικό αντικείμενο, να το φέρει όσο το δυνατόν πιο κοντά στο στόχο, που βρίσκεται στο τέλος του διαδρόμου. Στ αριστερά υπάρχει η μπάρα της δύναμης, η οποία γεμίζει και αδειάζει συναρτήσει του χρόνου. Πατώντας το πλήκτρο Space το αντικείμενο εκτοξεύεται με την ανάλογη δύναμη. Στο πάνω αριστερό μέρος υπάρχουν τα πλήκτρα αλλαγής επιπέδου και επανεκκίνησης. Με την επανεκκίνηση, απλά ξεκινάει απ την αρχή το επίπεδο με τις ίδιες τιμές τριβής. Επιλέγοντας την αλλαγή επιπέδου, οι τιμές της τριβής αλλάζουν τυχαία, οπότε ο παίκτης πρέπει να προσαρμόσει τη δύναμη που ασκεί στο αντικείμενο ώστε να φτάσει στο στόχο. Το επίπεδο της τριβής σε κάθε επίπεδο φαίνεται από την μπάρα τριβής, που είναι τοποθετημένη στην πάνω δεξιά γωνία της οθόνης. 2.3 Ιδιότητες αντικειμένων Α. Αραβαντινός 10

Εικόνα 2.2 Ιδιότητες αντικειμένου Στην Εικόνα 2.2 βλέπουμε τις ιδιότητες ενός επιλεγμένου αντικειμένου. Στη συγκεκριμένη περίπτωση, του δίσκου που εκτοξεύουμε προς το στόχο. Θα σταθώ λίγο σε δύο κομμάτια. Στο Rigidbody και στο Mesh Collider. Το Rigidbody δίνει ουσιαστικά στο αντικείμενο φυσικές ιδιότητες. Από εδώ μπορούμε να καθορίσουμε τη μάζα, το αν θα έχει βαρύτητα και αν θα κινείται ένα αντικείμενο. Επίσης υπάρχει και η Collision Detection που αφορά τον τρόπο που θα γίνεται ο έλεγχος συγκρούσεων με άλλα αντικείμενα. Ο Mesh Collider και γενικότερα οι Colliders στο Unity είναι ο τρόπος με τον οποίο δίνουμε φυσικά όρια στα αντικείμενα. Με τους Colliders ο κόσμος αποκτά όρια, τα αντικείμενα μπορούν να συγκρουστούν, να ισορροπήσουν και γενικότερα να σταθούν στο περιβάλλον. Στο κάτω μέρος υπάρχει, όπως βλέπουμε το Shoot το οποίο είναι η δέσμη εντολών για την εκτόξευση του αντικειμένου. Με τις δέσμες εντολών θα ασχοληθώ εκτενέστερα στη συνέχεια. Α. Αραβαντινός 11

Εικόνα 2.3 Ρύθμιση τριβής αντικειμένου Πως καθορίζουμε και αλλάζουμε όμως τις φυσικές ιδιότητες; Στην Εικόνα 2.3 έχουμε δημιουργήσει μία υφή για αντικείμενα, που εξ ορισμού έχει τις εξής ιδιότητες : τριβή, στατική τριβή και ελαστικότητα. Αλλάζοντας τις τιμές αλλάζει και η φυσική συμπεριφορά των αντικειμένων. Εικόνα 2.4 Ρυθμίσεις κάμερας Α. Αραβαντινός 12

Στην Εικόνα 2.4 βλέπουμε τις ρυθμίσεις της κεντρικής κάμερας του παιχνιδιού. Εδώ ρυθμίζουμε τη θέση της, τη φορά της και το πεδίο που θα καλύπτει. Επίσης καθορίζουμε και το φόντο που θα έχουμε στην εικόνα με τη ρύθμιση του Background. Επίσης παρατηρούμε και τα δύο script, το Camera Controller Script και το Friction Meter Script τα οποία και θα δούμε στη συνέχεια. Εικόνα 2.5 Ρυθμίσεις φωτισμού Στο Unity μπορούμε να χρησιμοποιήσουμε διάφορες πηγές φωτισμού, ώστε να φωτίσουμε το περιβάλλον του παιχνιδιού. Στην Εικόνα 2.5 έχουμε την πηγή φωτισμού που χρησιμοποιήθηκε στο συγκεκριμένο παιχνίδι. Στο τμήμα Transform καθορίζουμε τη θέση, το ύψος και της κατεύθυνση του φωτός. Παρακάτω στο τμήμα Light υπάρχουν διάφορες παράμετροι που μπορούν να αλλαχτούν για να επιτευχθεί το επιθυμητό αποτέλεσμα. Κάποιες απ αυτές είναι το χρώμα που θέλουμε το φως να έχει, η έντασή του, αλλά και οι σκιές που αυτό θα δημιουργεί. 2.4 Δέσμες εντολών Με τις δέσμες εντολών καθορίζουμε τη συμπεριφορά των αντικειμένων και του περιβάλλοντος. Έτσι η κίνηση, η περιστροφή, η δημιουργία ή η καταστροφή, μεταξύ άλλων, των αντικειμένων στον κόσμο του παιχνιδιού, καθορίζεται από εντολές κώδικα. Ας δούμε τις πιο σημαντικές αυτού του παιχνιδιού. Α. Αραβαντινός 13

Εικόνα 2.6 Κώδικας κίνησης της κάμερας Στην Εικόνα 2.6 βλέπουμε τον κώδικα για την κίνηση της κάμερας. Το GameObject τύπου αντικείμενο player, θα είναι το κεντρικό σημείο για την κάμερά μας. Στο συγκεκριμένο παιχνίδι, αυτό το ρόλο τον έχει το κυκλικό αντικείμενο που θέλουμε να φτάσει στο στόχο. Με τον παραπάνω κώδικα, λέμε στην κάμερα να ακολουθεί αυτό το αντικείμενο κρατώντας απ αυτό μια σταθερή απόσταση μεγέθους offset. Α. Αραβαντινός 14

Εικόνα 2.7 Κώδικας για την εκτόξευση του αντικειμένου Στην Εικόνα 2.7 έχουμε τον κώδικα για την εκτόξευση του αντικειμένου προς το στόχο. Το τύπου GameObject αντικείμενο ball είναι το αντικείμενο στο οποίο θα ασκηθεί η δύναμη. Το Slider powerslider αντικείμενο είναι η μπάρα δύναμη που έχουμε φτιάξει, για την επιλογή της κατάλληλης κάθε φορά δύναμης. Η τελευταία ιf ελέγχει όταν πατηθεί το πλήκτρο Space στο πληκτρολόγιο, αν το αντικείμενο έχει εκτοξευθεί ήδη. Αν όχι του ασκεί δύναμη όση δείχνει ο μετρητής δύναμης τη συγκεκριμένη στιγμή, μέσω του RigidBody του αντικειμένου. Α. Αραβαντινός 15

Εικόνα 2.8 Κώδικας μετρητή τριβής Στην Εικόνα 2.8 βλέπουμε τον κώδικα του μετρητή τριβής του διαδρόμου. Εδώ παίρνουμε σαν είσοδο phmaterial την υφή του διαδρόμου, της οποίας την τιμή τριβής θέλουμε να ξέρουμε. Επίσης το αντικείμενο frictionslider είναι ο μετρητής όπου θα οπτικοποιούμε την τιμή της τριβής. Στην γραμμή κώδικα εντός της Update κάνουμε ακριβώς αυτό. Δίνουμε στον μετρητή την τριβή του υλικού. Α. Αραβαντινός 16

Εικόνα 2.9 Κώδικας πλήκτρων εντός του παιχνιδιού Όπως είδαμε παραπάνω μέσα στο παιχνίδι υπάρχουν δύο πλήκτρα. Της επανεκκίνησης και της αλλαγής επιπέδου. Στην Εικόνα 2.9 βλέπεται τον κώδικα που καθορίζει τη συμπεριφορά των πλήκτρων. Στη συνάρτηση RestartButtonClicked() που αντιστοιχεί στο κουμπί επανεκκίνησης με την εντολή που δίνουμε, απλά γίνεται μια επανεκκίνηση της σκηνής χωρίς να αλλάξει κάτι άλλο. Από την άλλη, στη συνάρτηση NextLevelButtonClicked() που αντιστοιχεί στο κουμπί αλλαγής επιπέδου πριν κάνουμε επανεκκίνηση της σκηνής, πρώτα αλλάζουμε την τιμή της τριβής με τυχαία επιλογή νέας. 2.5 Λοιπά στοιχεία Για το αρχικό μενού όπως και για το μενού κατά την παύση χρησιμοποίησα ένα έτοιμο πακέτο από το Asset store με κάποιες τροποποιήσεις ώστε να προσαρμοστεί στις ανάγκες μου. Επίσης η μουσική που ακούγεται στο παιχνίδι, ανήκει στο συγκεκριμένο Α. Αραβαντινός 17

πακέτο. Το πακέτο είναι το Game jam menu template και μπορεί να βρεθεί σε αυτή τη διεύθυνση : https://www.assetstore.unity3d.com/en/#!/content/40465 Επιπλέον διάφορες υφές που χρησιμοποιήθηκαν για το σκηνικό του παιχνιδιού, είναι από το πακέτο Tangy textures material pack από την ακόλουθη διεύθυνση : https://www.assetstore.unity3d.com/en/#!/content/19225 Α. Αραβαντινός 18

3.1 Εισαγωγή στο παιχνίδι 3. ΠΑΙΧΝΙΔΙ ΜΕ ΜΑΓΝΗΤΕΣ Εικόνα 3.1 Γενική εικόνα του παιχνιδιού Για το παιχνίδι με τους μαγνήτες επέλεξα μια διαφορετική προσέγγιση χρησιμοποιώντας δύο κάμερες αντί για μία, με την καθεμιά απ αυτές να προβάλει συγκεκριμένα πράγματα.. Μία ακόμα διαφορά είναι ότι αυτό το παιχνίδι είναι ανεπτυγμένο σε δισδιάστατο (2D) περιβάλλον. Σαν παιχνίδι έχει τη λογική του συνεχόμενου σκηνικού (infinite runner) με το περιβάλλον και τα αντικείμενα να κινούνται συνεχώς. 3.2 Σκοπός του παιχνιδιού Σκοπός του συγκεκριμένου παιχνιδιού είναι να κατανοήσει ο παίκτης κάποιες βασικές έννοιες που σχετίζονται με τους μαγνήτες. Κάποιες απ αυτές είναι η πολικότητα, τα μαγνητικά και μη μαγνητικά αντικείμενα, αλλά και η έννοια του μαγνητικού πεδίου. Αντικειμενικός στόχος είναι να μαζέψει ο παίκτης όσο το δυνατόν περισσότερους πόντους συλλέγοντας μαγνητικά αντικείμενα με τον μαγνήτη στο καρότσι του. Ο μαγνήτης έχει δύο χρώματα, μπλε και κόκκινο. Μπορεί να αλλάξει η φορά του μαγνήτη, άρα και η πολικότητά του με το κάτω βελάκι του πληκτρολογίου. Επίσης με τα αριστερό και το δεξί βελάκι κινείται ο μαγνήτης δεξιά και αριστερά αντίστοιχα. Όταν το μπλε μισό του μαγνήτη είναι στραμμένο προς τα κάτω ο μαγνήτης μπορεί να σηκώνει τα μαγνητικά αντικείμενα που έρχονται. Αντίθετα όταν το κόκκινο μισό είναι προς τα κάτω, ο μαγνήτης μπορεί να σηκώνει μόνο το καρότσι, ώστε να μπορέσει να αποφύγει κάποιο εμπόδιο. Όμως η δύναμη του μαγνήτη δεν είναι αστείρευτη. Υπάρχει μια μπάρα δύναμης που όταν αδειάσει ο μαγνήτης χάνει τη δύναμή του. Τέλος, ο μαγνήτης ενεργοποιείται κρατώντας πατημένο το Space στο πληκτρολόγιο. Αφήνοντάς το η δύναμη του μαγνήτη επαναφορτίζεται. Α. Αραβαντινός 19

3.3 Στήσιμο του σκηνικού Όπως είδαμε προηγουμένως στην Εικόνα 3.1 το παιχνίδι έχει στηθεί σε σκηνικό με δύο κάμερες. Στ αριστερά έχουμε το κομμάτι του φόντου. Το φόντο αποτελείται από τρεις μεγάλες εικόνες η μία δίπλα στην άλλη η οποίες προχωρώντας ανακυκλώνονται, για να δοθεί κίνηση στο περιβάλλον. Στα δεξιά υπάρχει ένας καταστροφέας (Destroyer) με τον οποίο κάθε κομμάτι του φόντου που συγκρούεται, καταστρέφεται. Ταυτόχρονα δημιουργείται ένα καινούριο στο spawn point που υπάρχει δεξιά του φόντου. Τα script που εκτελούν αυτή τη διαδικασία θα τα δούμε στη συνέχεια. Στο δεξί μέρος της σκηνής βλέπουμε το περιβάλλον όπου γίνεται η αλληλεπίδραση των αντικειμένων του παιχνιδιού. Εδώ υπάρχει το νοητό έδαφος που πατάνε όλα τα αντικείμενα και επίσης δημιουργούνται και καταστρέφονται τα μαγνητικά και μη αντικείμενα του παιχνιδιού. Αυτό γίνεται με τρόπο παρόμοιο με πριν, δηλαδή με ένα destroyer και ένα spawn point. 3.4 Ιδιότητες αντικειμένων Εικόνα 3.2 Ιδιότητες κάμερας παρασκηνίου Στην εικόνα 3.2 έχουμε επιλέξει και βλέπουμε τις ιδιότητες της κάμερας παρασκηνίου. Θα σταθώ λίγο σε δύο επιλογές. Πάνω δεξιά βλέπουμε τις επιλογές Tag και Layer. Επιλέγοντας Tag σε κάποιο αντικείμενο το κατηγοριοποιούμε ώστε να μπορούμε να αναγνωρίσουμε σε πια κατηγορία αντικειμένων ανήκει, όπως π.χ. μαγνητικά αντικείμενα ή μη μαγνητικά αντικείμενα. Αυτό θα φανεί χρήσιμο αργότερα στα scripts. Επιπλέον, στη συγκεκριμένη κάμερα θα προσέξουμε την επιλογή Culling mask. Εκεί έχουμε επιλέξει να δείχνει μόνο τα αντικείμενα που ανήκουν στο layer Background Item. Layers είναι μία ακόμα κατηγοριοποίηση των αντικείμενων που αφορά κυρίως την γραφική τους αναπαράσταση. Στην κεντρική κάμερα του παιχνιδιού αντίστοιχα έχουμε επιλέξει να αναπαρίστανται αντικείμενα που ανήκουν σε όλα τα υπόλοιπα layers. Α. Αραβαντινός 20

Εικόνα 3.3 Μαγνητικό πεδίο Στην Εικόνα 3.3 έχω επιλέξει μία μεταλλική μπάρα, την οποία μπορεί να έλξει ο μαγνήτης. Ο πράσινος κύκλος γύρω από το αντικείμενο είναι ένας collider που λειτουργεί σαν έναυσμα για κάποιες ενέργειες. Στην παρούσα κατάσταση λειτουργεί σαν το μαγνητικό πεδίο του αντικειμένου. Έτσι όταν μέσα στον κύκλο βρεθεί ο μαγνήτης, τότε μέσω τον script που θα δούμε στη συνέχεια, ο μαγνήτης μπορεί να τραβήξει το αντικείμενο. Α. Αραβαντινός 21

3.5 Δέσμες εντολών Εικόνα 3.4 Κώδικας καταστροφέα Στην Εικόνα 3.4 βλέπετε τον κώδικα που χρησιμοποιούν οι Destroyers για να καταστρέψουν τα αντικείμενα που συγκρούονται μαζί τους. Υπάρχουν τέσσερεις if ώστε ανάλογα με το Tag που έχει το αντικείμενο, να καθοριστεί τι θα κάνει ο destroyer. Στις περιπτώσεις που το αντικείμενο που συγκρούεται έχει Tag Ground ή Magnetic Item αφού καταστραφεί καλείται η συνάρτηση Spawn() η οποία αντίστοιχα δημιουργεί ένα νέο αντικείμενο του ίδιου τύπου, στο καθορισμένο σημείο που έχει δοθεί σαν είσοδος SpawnPos. Α. Αραβαντινός 22

Εικόνα 3.5 Κώδικας μαγνητικής έλξης Α. Αραβαντινός 23

Στην Εικόνα 3.5 παρουσιάζω το script που είναι υπεύθυνο να κάνει τα αντικείμενα να έλκονται από τον μαγνήτη. Στην Start() παίρνω κάποια στοιχεία από άλλα script και ετοιμάζω τις παραμέτρους μου. Στην Update() γίνεται ο έλεγχος αν πατήθηκε το πλήκτρο Space και στη συνέχεια επιπλέον έλεγχοι, αν ο μαγνήτης είναι εντός του μαγνητικού πεδίου, αν υπάρχει δύναμη διαθέσιμη και φυσικά αν ο μαγνήτης είναι σωστά στραμμένος στο αντικείμενο, δηλαδή αν έχει σωστή πολικότητα. Αν όλα αυτά είναι αληθή τότε το αντικείμενο ξεκινά να κινείται προς το μαγνήτη, ενώ παράλληλα μειώνεται η διαθέσιμη δύναμη. Οι επόμενες τέσσερεις συναρτήσεις έχουν να κάνουν με το αν ο μαγνήτης είναι εντός του πεδίου ή όχι και με το αν το αντικείμενο έφτασε στο μαγνήτη, ώστε να σταματήσει να κινείται. Εικόνα 3.6 Κώδικας μαγνητικής έλξης καροτσιού Στην Εικόνα 3.6 έχουμε αντίστοιχα το script για την μαγνητική έλξη που ασκείται στο καρότσι. Η λογική είναι ακριβώς η ίδια με το προηγούμενο script, με μερικές μικρές διαφοροποιήσεις. Α. Αραβαντινός 24

Εικόνα 3.7 Κώδικας κίνησης μαγνήτη Στην Εικόνα 3.7 έχουμε τον κώδικα για την κίνηση και την περιστροφή του μαγνήτη. Αυτό επιτυγχάνεται μέσω των transform.position και transform.rotation. Α. Αραβαντινός 25

Εικόνα 3.8 Κώδικας προσθήκης πόντων στο σκορ Στην Εικόνα 3.9 παρουσιάζεται ο τρόπος με τον οποίο αυξάνεται το σκορ του παίκτη όταν ένα αντικείμενο πέσει μέσα στο καρότσι. Το καρότσι στο πάνω μέρος του έχει έναν collider που λειτουργεί σαν ελεγκτής συγκρούσεων (collision detection). Μόλις ο ελεγκτής εντοπίσει μια σύγκρουση με ένα αντικείμενο με το Tag Magnetic Item το αντικείμενο καταστρέφεται, καλείται η συνάρτηση MagneticSpawn() από το spawnscript, η οποία δημιουργεί ένα αντικείμενο ίδιο με αυτό που καταστράφηκε και προστίθενται 10 πόντοι στο σκορ του παίκτη. Α. Αραβαντινός 26

Εικόνα 3.9 Κώδικας τέλους παιχνιδιού Το καρότσι έχει έναν ακόμα ελεγκτή συγκρούσεων στο δεξί του μέρος. Αν αυτός ο ελεγκτής καταγράψει μια σύγκρουση με οποιοδήποτε αντικείμενο, αυτό σημαίνει και το τέλος του παιχνιδιού. Στην Εικόνα 3.9 βλέπετε τον κώδικα που υλοποιεί αυτή τη λειτουργία. Η συνάρτηση OnCollisionEnter3D() ανιχνεύει πιθανές συγκρούσεις. Στην περίπτωση που ανιχνευθεί μια σύγκρουση το παιχνίδι τελειώνει και φορτώνεται η σκηνή τέλους παιχνιδιού. Εικόνα 3.10 Σκηνή τέλους παιχνιδιού Α. Αραβαντινός 27

3.6 Λοιπά στοιχεία Όπως και στο πρώτο παιχνίδι, για το αρχικό μενού και για το μενού παύσης χρησιμοποιήθηκε το έτοιμο πακέτο από το Asset Store Game menu jam template το οποίο μπορεί να βρεθεί σε αυτή τη διεύθυνση : https://www.assetstore.unity3d.com/en/#!/content/40465 Επιπλέον για το φόντο χρησιμοποίησα με μερικές τροποποιήσεις το πακέτο 2D cartoon forest free : https://www.assetstore.unity3d.com/en/#!/content/66528 Α. Αραβαντινός 28

4. ΣΥΜΠΕΡΑΣΜΑΤΑ Τελειώνοντας αυτή την εργασία κι έχοντας πλέον αποκτήσει μια πιο κοντινή σχέση με το Unity, μπορώ με σιγουριά να πω ότι αποτελεί ένα πολύ εύχρηστο εργαλείο για την σχεδίαση και υλοποίηση 2D και 3D παιχνιδιών. Μετά από μια μικρή περίοδο εξοικείωσης με το περιβάλλον χρήστη, η όλη εμπειρία ήταν και ενδιαφέρουσα και ευχάριστη. Στα συν ότι υπάρχει μεγάλος αριθμός οδηγιών και βίντεο στο διαδίκτυο, ώστε να καλύπτονται τυχόν απορίες. Επιπλέον οι γνώσεις προγραμματισμού που απαιτούνται για τα script δεν θεωρούνται υψηλές. Τα παιχνίδια που δημιούργησα, μπορούν να αποτελέσουν μέρος ενός πλήρους πακέτου εκπαιδευτικών παιχνιδιών, για όλες τις βαθμίδες της εκπαίδευσης. Πρέπει σιγά σιγά η τεχνολογία να εισέλθει σε αυτό το χώρο, ώστε με τη χρήση ενδιαφερόντων παιχνιδιών η διδασκαλία να ξεφύγει από τις παραδοσιακές και ίσως ξεπερασμένες μεθόδους που ακολουθούνται. Τα ηλεκτρονικά παιχνίδια σήμερα δεν πρέπει να αποτελούν ένα προϊόν αποκλειστικά για την ψυχαγωγία του χρήστη. Μπορούν να γίνουν σημαντικά εργαλεία στα χέρια του εκπαιδευτικού για την μετάδοση γνώσης. Α. Αραβαντινός 29

ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ Ξενόγλωσσος όρος Code editor Project Script Layers Infinite runner Destroyer Collision detection Ελληνικός Όρος Επεξεργαστής κώδικα Εργασία Δέσμη εντολών Στρώσεις Συνεχόμενο σκηνικό Καταστροφέας Έλεγχος συγκρούσεων Α. Αραβαντινός 30

ΣΥΝΤΜΗΣΕΙΣ ΑΡΚΤΙΚΟΛΕΞΑ ΑΚΡΩΝΥΜΙΑ ΕΚΠΑ 2D 3D Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών 2-Dimensional 3-Dimensional Α. Αραβαντινός 31

ΑΝΑΦΟΡΕΣ [1] Unity 3D Game Engine https://unity3d.com [2] MonoDevelop (IDE) http://www.monodevelop.com/ [3] Asset Store https://www.assetstore.unity3d.com/ [4] Unity- Answers (Forum) http://answers.unity3d.com Α. Αραβαντινός 32