Construct 2 Τι είναι Βασικές έννοιες Παραδείγματα χρήσης Βασίλης Κούρτης vkourtis@di.uoa.gr
Τι είναι το Construct 2 Framework για κατασκευή παιχνιδιών βασισμένα σε HTML5 2D παιχνίδια μόνο Οπτικός προγραμματισμός Δεν απαιτείται γνώση προγραμματισμού, αλλά δε βλάπτει κιόλας Event based Objects Conditions (ή triggers) Actions https://www.scirra.com/
Σε ποιους απευθύνεται (σύμφωνα με την Scirra) Ερασιτέχνες Εισαγωγή στον κόσμο των παιχνιδιών Σχεδιαστές/Καλλιτέχνες Παραγωγή παιχνιδιών χωρίς την ανάγκη προγραμματισμού Δασκάλους και Μαθητές Εκμάθηση αρχών προγραμματισμού με διασκεδαστικό τρόπο Επαγγελματίες προγραμματιστές Γρήγορη παραγωγή πρωτοτύπων (σε περίπτωση που αργότερα χρειαστεί coding) Γρήγορη εναλλακτική του coding (όταν καλύπτει τις ανάγκες μας)
Παραδείγματα παιχνιδιών Mortar Melon Airscape: Fall of Gravity Super Ubie Land Remix
Παράδειγμα: Στα ίχνη της γραφής https://www.makebelieve.gr/mb/projects/grafi/ Εκπαιδευτικό παιχνίδι Μαθητές δημοτικού & γυμνασίου 9 mini games 1 κεντρικό storyline
Παράδειγμα 2: Τι τύπος ταξιδιώτη είσαι Εκπαιδευτικό παιχνίδι Μαθητές δημοτικού & γυμνασίου Χάρτης με σημεία πολιτισμικού ενδιαφέροντος Ερωτήσεις για κάθε σημείο Σύστημα πόντων και badges https://www.makebelieve.gr/mb/projects/taxidiotis/
Τι να διαλέξω; VS
Προτεινόμενο σύστημα Windows 7 ή νεότερα 2 GB RAM 2 GHz διπύρηνο επεξεργαστή Μία nvidia ή AMD κάρτα γραφικών με πρόσφατους drivers Ακόμα καλύτερα: SSD 4 GB RAM 512 MB RAM GPU Browser συμβατός με HTML5
Export
Free to try Δωρεάν Αρκετοί περιορισμοί στη χρήση Personal license ($100) Καθόλου περιορισμοί στη χρήση Δεν μπορείς να έχεις σοβαρό εισόδημα Business license ($330) Κανένας περιορισμός
Οργάνωση project Layouts Ότι έχει προετοιμαστεί να φανεί στην οθόνη: levels, menus, title screens, Σε άλλες μηχανές αναφέρονται ως: scenes, rooms, frames, ή stages Layers Τρόπος δόμησης των Layouts π.χ. ένα layer για το UI (σκορ, κλπ.) και άλλο για το κυρίως παιχνίδι Event Sheets Η λογική του παιχνιδιού Συνήθως ένα Event Sheet αντιστοιχεί σε ένα Layout (όχι πάντα) Μπορούν να επαναχρησιμοποιηθούν (include)
Layout
Event Sheet
Οργάνωση project Object types Τύποι αντικειμένων που δημιουργούνται από εμάς π.χ. TrollEnemy, OgreEnemy Έχουν ένα σύνολο από χαρακτηριστικά που καθορίζουν τις ιδιότητές του System object Περιλαμβάνει γενικές δυνατότητες του Construct 2 π.χ. σύγκριση 2 τιμών, έλεγχος για το αν φαίνεται ή όχι ένα layer, αλλαγή βαρύτητας, Εμπεριέχεται σε κάθε project by default Δεν μπορεί να αφαιρεθεί ή να ξαναπροστεθεί
Οργάνωση project Sounds and Music Ηχητικά αρχεία που χρησιμοποιούνται στο παιχνίδι ogg, m4a: παράγονται αυτόματα Sounds: κατεβαίνουν πλήρως κατά τη φόρτωση Music: streaming Project files Άλλα εξωτερικά αρχεία που μπορεί να περιέχονται στο project π.χ. αρχεία κειμένου, JSON, XML,
Οργάνωση project Μονάδες μέτρησης Θέση pixels (To (0,0) είναι στην πάνω αριστερή γωνία του layout) Μεγέθη pixels Γωνίες μοίρες (Αυξάνονται κατά τη φορά του ρολογιού) Χρόνοι seconds Ταχύτητες pixels/second Επιταχύνσεις pixels/second/second Zero-based indexing Πίνακες αρχίζουν από το 0
Objects Καθετί που «συμμετέχει» στο παιχνίδι είναι ένα αντικείμενο Αντικείμενα που είναι ορατά και τοποθετούνται στο Layer π.χ. Sprite, Particles, Text, Button, Βοηθητικά αντικείμενα που είναι αόρατα π.χ. Array, Dictionary, Function, Keyboard
Objects Plugin: Το είδος ενός object π.χ. Button, Audio, Sprite, Πληκτρολόγιο, Mouse Object type: Η κλάση ενός object π.χ. Troll, βελανιδιά, τραπέζι, μπάλα Instance: Μια έκφανση ενός object type μέσα στο παιχνίδι π.χ. μπορεί να έχουμε 2 trolls σε μία πίστα Instance variable: Δημιουργείται για κάθε object type και έχει ανεξάρτητη τιμή για κάθε instance (Number, Text, Boolean) π.χ. η ενέργεια (ζωή) ενός troll
Objects Behaviors: Προκατασκευασμένες συμπεριφορές που τοποθετούνται σε Object types και υπάρχουν σε κάθε instance π.χ. Platform, Physics, Drag & Drop, Solid Effects: Ιδιότητες που αφορούν την οπτική εμφάνιση των objects π.χ. Blur, Tint Families: Ομάδες objects με κοινές ιδιότητες και δυνατότητα κοινών conditions-actions π.χ. Family Enemies με μέλη τα TrollEnemy και OgreEnemy Containers: Σύνθετα αντικείμενα ομάδα αντικειμένων τα οποία αντιμετωπίζονται σαν ένα π.χ. ένα άρμα αποτελείται από το όχημα και το πολυβόλο του
Events Conditions: Φιλτράρουν τα instances που πληρούν τις προϋποθέσεις Actions: Εκτελούνται για τα instances που επιλέχθηκαν Υπάρχουν ωστόσο και τρόποι να εκτελέσουμε ενέργειες για ΟΛΑ τα instances Expressions: «πράξεις» πάνω σε τιμές (variables, object properties, κλπ.) π.χ. Ball.X = Ball.X + 100 Sub-events: Επιπλέον conditions που φιλτράρουν περεταίρω
Events Groups Οργάνωση events Comments Includes Ενσωμάτωση events από άλλα event sheets Event variables Μεταβλητές ανεξάρτητες από τα objects Global ή Local
Plugins Προκατασκευασμένοι τύποι αντικειμένων Κάθε plugin Έχει μία γενικευμένη παραμετροποιήσιμη χρήση Διαθέτει ένα σύνολο από ιδιότητες Υποστηρίζει μία σειρά από actions, conditions και expressions Σχεδόν όλα διαθέτουν κάποια γενικά κοινά χαρακτηριστικά Unique IDs (UIDs) Index IDs (IIDs) Conditions/action/expressions που αφορούν τη θέση, τη γωνία, την ταχύτητα, κ.α.
Plugins: General Sprite 9-patch Particles Text Sprite font Tiled Background Tilemap Shadow Light Function
Sprites Απλές εικόνες Χρησιμοποιούνται για τα περισσότερα objects που προσθέτουμε στο παιχνίδι Παίκτες Εχθροί Σφαίρες Εκρήξεις Σκηνικό (background) όταν αυτό δεν επαναλαμβάνεται (tiled)
Sprite animations
9-patch Sprite με προσαρμόσιμο μέγεθος
Sprite fonts Προκατασκευασμένες γραμματοσειρές σε μορφή εικόνας (+) Δουλεύουν παντού (-) Πρέπει να προβλέψουμε όλους τους χαρακτήρες που θα χρησιμοποιήσουμε (-) Έχουν fixed μέγεθος (αλλάζει μόνο με scale) Πώς να φτιάξω τι δική μου; https://www.scirra.com/forum/spritefont-generator-v2_t86546
Tiles Tile background Για επαναλαμβανόμενα μοτίβα στο background Tilemap Χάρτης βασισμένος σε επαναχρησιμοποιήσιμα μοτίβα Μπορούμε «ζωγραφίσουμε» χρησιμοποιώντας τα tiles Μπορούμε να εντοπίσουμε collisions με κάθε tile ξεχωριστά
Particles Γρήγορος τρόπος να δημιουργούμε οπτικά εφέ Ένα sprite Δημιουργείται Εκτοξεύεται προς κάποια κατεύθυνση Καταστρέφεται μετά από κάποιο χρόνο Παραμετροποίηση Αλλαγή μεγέθους Βαρύτητα Επιτάχυνση Προσθήκη τυχαιότητας στα παραπάνω
Image & animation editor
Plugins: Other Input Form Controls Media Data & Storage Web Gamepad Button Audio Array AJAX Keyboard Text box Video Dictionary Browser Mouse Progress bar Geolocation Local storage Multiplayer Touch Slider bar User Media XML WebSocket List Monetization File chooser Platform Specific
Behaviors Τοποθετούνται στα plugins και τους προσδίδουν ιδιότητες που έχουν να κάνουν με τη συμπεριφορά τους μέσα στο παιχνίδι π.χ. 8-direction: Ο παίκτης μπορεί να κινηθεί προς όλες τις κατευθύνσεις χρησιμοποιώντας τα βελάκια του πληκτρολογίου Physics: Ένα αντικείμενο αποκτά φυσικές ιδιότητες Σύγκρουση με άλλα αντικείμενα Επιτάχυνση βαρύτητας κλπ.
Behaviors Ιδιότητες Γενικά Addon Κίνηση
Χρήσιμα links Κατασκευή SpriteFont: https://www.scirra.com/forum/sprite-font-generatorv2_t86546 Δημιουργία global user interface https://www.scirra.com/tutorials/594/building-a-global-userinterface-ui Παιχνίδια κατασκευασμένα με Construct 2 https://www.makebelieve.gr/mb/projects/grafi/ https://www.makebelieve.gr/mb/projects/taxidiotis/ Sample project (παραδείγματα που χρησιμοποιήθηκαν στο μάθημα) https://dl.dropboxusercontent.com/u/1254600/exampleproject.capx