Intro to Game Design and Development
Σχεδιασμός και Ανάπτυξη Παιγνίων
Συστάσεις Σταύρος Βάσσος Ηλ. Μηχανικός και Μηχανικός Υπολογιστών, ΕΜΠ M.Sc., Ph.D. in Artificial Intelligence, University of Toronto Postdoc in Semantic Web, ΕΚΠΑ Επίκουρος Καθηγητής, Sapienza University of Rome
Συστάσεις Ερευνητικά ενδιαφέροντα και δραστηριότητα Artificial Intelligence Internet of Things Interaction Design Videogames Conversational Interfaces and Chatbots
Συστάσεις Ερωτήσεις Γλώσσες προγραμματισμού; Εργασίες σε ομάδες; Gamers; Ανάπτυξη παιγνίων; Game jams;
Σχεδιασμός και Ανάπτυξη Παιγνίων Τι είναι τα παίγνια;
Σχεδιασμός και Ανάπτυξη Παιγνίων Παίγνια δεν είναι μόνο τα videogames, πχ επιτραπέζια, παιχνίδια δρόμου, alternative reality games (ARG), κτλ Εδώ θα ασχοληθούμε κυρίως με videogames και θα τα δούμε ως ένα ιδιαίτερο είδος software engineering
Σχεδιασμός και Ανάπτυξη Παιγνίων Πώς φτιάχνουμε ένα videogame;
Σχεδιασμός και Ανάπτυξη Παιγνίων Όπως και στα μεγάλα projects σε software engineering, υπάρχει design, development, testing, project management, κτλ Πολλά εργαλεία στο σχεδιασμό videogames είναι κοινά με το γενικότερα πεδίο του game design, πχ με την ίδια μεθοδολογία μπορούμε να σχεδιάσουμε ένα επιτραπέζιο ή ένα videogame
Σχεδιασμός και Ανάπτυξη Παιγνίων Τι ομάδα/ρόλοι χρειάζονται για να φτιάξουμε ένα videogame;
Σχεδιασμός και Ανάπτυξη Παιγνίων Designer Programmer Visual artist Sound artist Author Project manager Tester Producer
Σχεδιασμός και Ανάπτυξη Παιγνίων Designer Programmer Visual artist Sound artist Author Project manager Tester Producer Για κάθε ρόλο από αυτούς χρειάζεται ένα ξεχωριστό μάθημα Οι ρόλοι είναι ενδεικτικοί και χωρίζονται σε πιο ειδικές κατηγορίες Συχνά ένα άτομο έχει παραπάνω από ένα ρόλους
Σχεδιασμός και Ανάπτυξη Παιγνίων Designer Programmer Visual artist Sound artist Author Project manager Tester Producer Εμείς θα επικεντρωθούμε στους βασικούς ρόλους του designer και του programmer Θα δούμε και τον ειδικό ρόλο του AI programmer που είναι πολύ συνδεδεμένος με το πεδίο της πληροφορικής
Σχεδιασμός και Ανάπτυξη Παιγνίων Designer Programmer Visual artist Sound artist Author Project manager Tester Producer Θα δούμε όμως και λίγο πιο σφαιρικά το ρόλο του project manager και του producer Η ιδέα είναι να πάρουμε μια ιδέα για τα στάδια ανάπτυξης ενός εμπορικού mini-game
Πληροφορίες για το μάθημα Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) Ενότητα Β: Υλοποίηση Παιγνίων (Game Programming) Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) Ενότητα D: Ανάπτυξη Παιγνίων (Game Development) Υλικό μαθημάτων Ασκήσεις
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design)
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) Πριν την υλοποίηση ενός game υπάρχει ο σχεδιασμός Όπως και στα συνηθισμένα software ο σχεδιασμός αφορά σε στόχους, μέσα, διαδικασίες, αλλά και το User Experience (UX) Επιπλέον στα games ο σχεδιασμός του UX αφορά και σε ψυχολογία, συναισθήματα, ψυχαγωγία Χρειάζεται design skills (πχ, όχι απαραίτητα coding)
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) A1. Game Design and Game Designers A2. Game Design Documents A3. Game Elements A4. Game Aesthetics (A5). Designing Games around AI (A6). Planning, Prototyping, Level Design 18
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) A1. Game Design and Game Designers Τι είναι το game design, και τι ο game designer. Μια σύντομη περιγραφή στις ευθύνες και το ρόλο του σε μια ομάδα game development.
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) A2. Game Design Documents Game Design Document (GDD). Τι είναι και γιατί χρειάζεται για την ανάπτυξη ενός game. Ποιοι οι στόχοι του GDD. One-Sheet Document ή Executive Summary Document. Τι άλλα tools και τεχνικές βοηθούν και συνοδεύουν ένα GDD. Moοdboard. Πώς και γιατί φτιάχνουμε Moodboards. Pitch. Τι είναι το elevator pitch και γιατί κάθε game designer χρειάζεται ένα pitch για την ιδέα/game του.
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) A2. Game Design Documents
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) A3. Elements of a Game, Flow Theory Βασικά στοιχειά (elements) ενός game και τι προσφέρουν (game theory) στο game αλλά και τον player. Flow theory του Mihaly Csikszentmihalyi. Λήψη Αποφάσεων Στόχοι Αντίθεση Αντίσταση Διαχείριση Πόρων Πληροφορίες
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) A4. MDA (Mechanics, Dynamics, Aesthetics), Types of Fun Game mechanics. Πώς ο game designer σχεδιάζει τούς μηχανισμούς ενός game. Η μεθοδολογία Mechanics, Dynamics, Aesthetics (MDA). Μέσω του σχεδιασμού των μηχανισμών (mechanics) πρέπει ο game designer να προβλέψει ποιές δυναμικές συμπεριφορές (dynamics) θα προκύψουν μεσώ της χρήσης των μηχανισμών από τον game player ώστε να προκύψει το επιθυμητό αισθητικό αποτέλεσμα (aesthetics), και το είδος διασκέδασης (fun).
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) A4. MDA (Mechanics, Dynamics, Aesthetics), Types of Fun MDA Mechanics Dynamics Aesthetics Kinds of Fun
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) A4. MDA (Mechanics, Dynamics, Aesthetics), Types of Fun Τύποι Παικτών (Player Types ) Gameplay Mechanics Mechanics Interaction Emergence Gameplay Feedback Loops
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) A5. Game Idea, Brainstorming, Planning, Prototyping Ιδέα (concept) για ένα game. Πως την επεξεργαζόμαστε ώστε να πάρει μια πρώτη ποιο ολοκληρωμένη μορφή. Πως τη φιλτράρουμε και την κατευθύνουμε. Brainstrorming. Πώς δουλεύουμε σε ομάδες και τι εργαλεία και τεχνικές μπορούμε να χρησιμοποιήσουμε για brainstorming. Prototyping. Πως προχωράμε σε ένα πρώτο rough planning. Γιατί χρειαζόμαστε να φτιαχτεί πρώτα ένα πρωτότυπο. Τι είναι το prototyping. Τεχνικές για prototyping.
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) A5. Game Idea, Brainstorming, Planning, Prototyping The Game Idea Inspirations / Εμπνεύσεις Generating Ideas / Παραγωγή Ιδεών Brainstorming Filtering Ideas / Φιλτράρισμα Ιδεών Constraints / Περιορισμοί Tools and Tips
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) A5. Game Idea, Brainstorming, Planning, Prototyping Non-Digital Prototyping Iterative with Rapid Prototyping
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) A6. Level Design, Teaching and Rewarding Level design. Πώς από την ιδέα όλα τα στοιχειά του game μεταφέρονται σε ένα level design (περιβάλλον, επίπεδο, πίστα), στο οποίο ο game player θα ζήσει την εμπειρία που ο game designer οραματίστηκε. Πως χτίζουμε το level ώστε ταυτόχρονα να εκπαιδεύουμε, καθοδηγούμε, διασκεδάζουμε και ανταμείβουμε τον παίκτη.
Ενότητα Α: Σχεδιασμός Παιγνίων (Game Design) Flow Charts Mapping Gameplay Guiding and Player Choices Risk vs Reward
Ενότητα Β: Υλοποίηση Παιγνίων (Game Programming)
Ενότητα Β: Υλοποίηση Παιγνίων (Game Programming) Το implementation του game ως software Προγραμματισμός, coding, game engines Αυτό που συνήθως σκέφεται κανείς όταν είναι από το πεδίο της πληροφορικής ή του software engineering Χρειάζεται εξειδίκευση για να υλοποιήσει κάτι σε χαμηλό επίπεδο, αλλά υπάρχουν και έτοιμες λύσεις και εργαλεία
Ενότητα Β: Υλοποίηση Παιγνίων (Game Programming) Graphics Rendering Artificial Intelligence Networking Different platforms
Ενότητα Β: Υλοποίηση Παιγνίων (Game Programming) Game engines
Ενότητα Β: Υλοποίηση Παιγνίων (Game Programming) Game engines Εξαιρετικά έργαλεία διαθέσιμα! Με τα ίδια εργαλεία που μπορεί κανείς να πειραματιστεί δωρεάν, φτιάχνονται εμπορικά videogames Απομπλέκουν κάποια τεχνικά κομμάτια όπως πχ rendering, networking μέσω ενός ενοποιημένου SDK και add-ons
Ενότητα Β: Υλοποίηση Παιγνίων (Game Programming) Game engines
Ενότητα Β: Υλοποίηση Παιγνίων (Game Programming) Β1. Εισαγωγή στα concepts και τον editor της Unity B2. Στοιχεία από αντικειμενοστραφή προγραμματισμό B3. Unity programming (scripting) Μέρος Ι B4. Unity programming (scripting) Μέρος ΙΙ 37
Ενότητα Β: Υλοποίηση Παιγνίων (Game Programming) Β1. Εισαγωγή στα concepts και τον editor της Unity Assets Colliders, rigid bodies Terrain Textures & materials Sprites & animations SFX & music Particle systems UI elements
Ενότητα Β: Υλοποίηση Παιγνίων (Game Programming) B2. Στοιχεία από αντικειμενοστραφή προγραμματισμό Κλάσεις Πεδία, μέθοδοι, ορατότητες, static πεδία Κληρονομικότητα & πολυμορφισμός Abstract κλάσεις και overriding Function overloading Generic functions/templates
Ενότητα Β: Υλοποίηση Παιγνίων (Game Programming) B3. Unity programming (scripting) Μέρος Ι Awake, Start, Update Instantiate, Destroy Vectors, Vector3, Vector2 Quaternions & Euler angles Input από τον παίκτη Κλάσεις GameObject, Transform, Rigidbody Συναρτήσεις Find, GetComponent Colliders & triggers
Ενότητα Β: Υλοποίηση Παιγνίων (Game Programming) B4. Unity programming (scripting) Μέρος ΙΙ IEnumerators & Coroutines Rays & Raycasting Delegates & Lambdas Συναρτήσεις για Animations SFX & μουσική μέσω κώδικα UI μέσω κώδικα Scene management Data persistence & PlayerPrefs
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games)
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) Παραδοσιακές τεχνικές Τεχνητής Νοημοσύνης (AI) σε games Σε Character-based games, βασικές τεχνικές για Pathfinding, όπως παραλλαγές του A* state-based search Σε Turn-based games, βασικές τεχνικές για Decision making, όπως Alpha-beta pruning, Monte-carlo search
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) Ένας βασικος διαχωρισμός σε τεχνικές με βάση πού απευθύνονται Τεχνικές για τη συμπεριφορά (behavior) χαρακτήρων του παιχνιδιού (Non-Player Characters ή NPCs) Τεχνικές για τη δημιουργία και διαχείρηση της ιστορίας του παιχνιδιού (Interactive Storytelling) Αυτά σχετίζονται σε ένα γενικότερο πλαίσιο ανάπτυξης ενός Drama manager που ελέγχει την πορεία και των δυο (story, NPCs)
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C1. Pathfinding for Non-Player Characters (NPCs) C2. Action-driven Behavior of Non-Player Characters (NPCs) C3. Interactive Storytelling C4. Procedural Content Generation (PCG) 45
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C1. Pathfinding for Non-Player Characters (NPCs) Πώς κινούνται στο χώρο;
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C1. Pathfinding for Non-Player Characters (NPCs) Αναπαραστάσεις του χάρτη
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C1. Pathfinding for Non-Player Characters (NPCs) Α*, και πολλές διαφορετικές βελτιώσεις σε μνήμη, ταχύτητα, smoothing
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C2. Action-driven Behavior of Non-Player Characters Οι pathfinding τεχνικές οδηγούν τους χαρακτήρες από το ένα σημείο του χάρτη σε άλλο Πώς όμως αποφασίζουν πού θα πάνε; Πώς αποφασίζουν την επόμενη τους κίνηση, πέρα από τον προορισμό και τη μετακίνηση;
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C2. Action-driven Behavior of Non-Player Characters Finite State Machines
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C2. Action-driven Behavior of Non-Player Characters Behavior Trees
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C2. Action-driven Behavior of Non-Player Characters Goal Oriented Action Planning (GOAP)
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C3. Interactive Storytelling Γραμμικές (linear) ιστορίες
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C3. Interactive Storytelling Open world ιστορίες
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C3. Interactive Storytelling Ιστορίες με διακλαδώσεις (branching)
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C3. Interactive Storytelling Διαχείρηση μιας δομής ιστορίας από έναν drama manager
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C3. Interactive Storytelling Δημιουργία εξατομικευμένης ιστορίας από έναν drama manager
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C4. Procedural Content Generation (PCG) To PCG είναι ένα ενδιαφέρον trend αυτή την εποχή
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C4. Procedural Content Generation (PCG) Η ιδέα του PCG είναι αρκετά παλιά, πχ, 1980, Rogue
Ενότητα C: Τεχνητή Νοημοσύνη για Παίγνια (AI for Games) C4. Procedural Content Generation (PCG) Αρκετές τεχνικές για PCG cities, maps
Ενότητα D: Ανάπτυξη Παιγνίων (Game Development)
Ενότητα D: Ανάπτυξη Παιγνίων (Game Development) Ας θυμηθούμε τους βασικούς ρόλους Designer Programmer Visual artist Sound artist Author Project manager Tester Producer
Ενότητα D: Ανάπτυξη Παιγνίων (Game Development) D1. Ατομική εργασία: One-Sheet Executive Summary D2. Ατομική παρουσίαση: 5-min Pitch και σύσταση ομάδων D3. Ομαδική εργασία: Ten-Sheet Game Design Document D4. Ομαδίκή παρουσίαση: 15-λεπτο Pitch D5. Ομαδική εργασία: Complete Game Design Document D6. Ομαδική εργασία: Ανάπτυξη game prototype 63
Υλικό μαθήματος - Συνεργάτες Game Design Adam (Αδαμάντιος Οικονομόπουλος) adam@artamantium.com
Υλικό μαθήματος - Συνεργάτες Game Programming in Unity Χάρης Αλισαβάκης sdi1300004@di.uoa.gr
Υλικό μαθήματος - Συνεργάτες AI in Games, Game Development Σταύρος Βάσσος stavrosv@di.uoa.gr
Οργανωτικά Χρήση Google Group ως Mailing list Google Drive folder for assignments Trello boards for game projects (trello.com)
Ερωτήσεις?!