Μετάβαση στο περιεχόμενο

Ανάπτυξη βιντεοπαιγνιδιών

Επίσημο περίγραμμα μαθήματος του ΤΜΗΥΠ (Πανεπιστήμιο Πατρών), όπως δημοσιεύεται στη σελίδα του μαθήματος και στο συνημμένο αρχείο «Περίγραμμα Μαθήματος». Το κείμενο παρατίθεται αυτούσιο, χωρίς τα πρότυπα οδηγιών του εντύπου.

Στόχοι

Με την ολοκλήρωση της διδασκαλίας του μαθήματος οι φοιτητές θα είναι ικανοί να: Κατανοούν έννοιες σχετικές με την ανάπτυξη ΒιντεοΠαιχνιδιών (ΒΠ): Οι φοιτητές θα πρέπει να είναι σε θέση να κατανοούν θεμελιώδεις έννοιες που σχετίζονται με την ανάπτυξη ΒΠ, όπως ο σχεδιασμός ΒΠ, οι μηχανισμοί στα ΒΠ, το πως ο παίκτης αντιλαμβάνεται το ΒΠ και η διαδικασία ανάπτυξης του ΒΠ. Χρησιμοποιούν τη μηχανή ΒΠ Unity: Οι φοιτητές θα πρέπει να μπορούν να χρησιμοποιούν το Unity και να δημιουργούν και να αναπτύσσουν ΒΠ. Αυτό περιλαμβάνει τη δημιουργία στοιχείων (assets) ΒΠ, την υλοποίηση μηχανισμών και το σχεδιασμό επιπέδων. Αποκτήσουν σχετικές δεξιότητες προγραμματισμού: Οι φοιτητές θα πρέπει να έχουν βασική κατανόηση των εννοιών προγραμματισμού και να μπορούν να χρησιμοποιούν την C#, η οποία χρησιμοποιείται ως γλώσσα σεναρίου (script language) στο Unity. Κατανοούν την καλλιτεχνική και σχεδιαστική διάσταση των ΒΠ: Οι φοιτητές θα πρέπει να κατανοούν τις καλλιτεχνικές και σχεδιαστικές αρχές των ΒΠ. Αυτές περιλαμβάνουν τη δημιουργία δισδιάστατων και τρισδιάστατων στοιχείων, το σχεδιασμό επιπέδων παιχνιδιού και τη δημιουργία διεπαφών. Συνεργάζονται στα πλαίσια μίας ομάδας: Οι φοιτητές θα πρέπει να μπορούν να συνεργάζονται μεταξύ τους για να σχεδιάσουν, να αναπτύξουν και να δοκιμάσουν ΒΠ. Εμπλέκονται στον έλεγχο και την αποσφαλμάτωση ΒΠ: Οι φοιτητές θα πρέπει να μπορούν να δοκιμάζουν και να ελέγχουν ΒΠ καθώς και να αναγνωρίζουν σφάλματα και να χρησιμοποιούν εργαλεία και τεχνικές εντοπισμού σφαλμάτων για να τα διορθώνουν.

Με την ολοκλήρωση της διδασκαλίας του μαθήματος οι φοιτητές θα έχουν αναπτύξει τις ακόλουθες δεξιότητες: Δεξιότητες ανάπτυξης παιχνιδιών: Οι φοιτητές θα πρέπει να μπορούν να σχεδιάζουν, να αναπτύσσουν και να δημοσιεύουν παιχνίδια χρησιμοποιώντας το Unity. Θα πρέπει έχουν εξοικειωθεί με τη χρήση της C# και να μπορούν να δημιουργούν στοιχεία ΒΠ, να υλοποιούν μηχανισμούς και να σχεδιάζουν επίπεδα ΒΠ. Ομαδική εργασία και συνεργασία: Η ανάπτυξη ΒΠ συχνά περιλαμβάνει εργασία σε ομάδες και άρα οι φοιτητές θα πρέπει να είναι σε θέση να συνεργάζονται αποτελεσματικά με άλλους, να επικοινωνούν με σαφήνεια τις ιδέες τους και να εργάζονται για κοινούς στόχους. Δημιουργικότητα και καινοτομία: Η ανάπτυξη ΒΠ απαιτεί υψηλό βαθμό δημιουργικότητας και καινοτομίας και άρα οι φοιτητές θα πρέπει να μπορούν να σκέφτονται καινοτόμα και να βρίσκουν νέες ιδέες αναφορικά με τους μηχανισμούς σε ΒΠ, τις ιστορίες και τον οπτικό σχεδιασμό. Επίλυση προβλημάτων και κριτική σκέψη: Η ανάπτυξη ΒΠ περιλαμβάνει επίλυση προβλημάτων και κριτική σκέψη και άρα οι φοιτητές θα πρέπει να είναι σε θέση να αναλύουν σύνθετα προβλήματα και να βρίσκουν αποτελεσματικές λύσεις. Τεχνικές γνώσεις και επάρκεια: Οι φοιτητές θα πρέπει να έχουν ισχυρή κατανόηση των εννοιών της επιστήμης των υπολογιστών, όπως οι αλγόριθμοι και οι δομές δεδομένων, καθώς και εμπειρία με εργαλεία και πλατφόρμες ανάπτυξης λογισμικού. Διαχείριση και οργάνωση έργου: Τα έργα ανάπτυξης παιχνιδιών μπορεί να είναι εξαιρετικά πολύπλοκα και να περιλαμβάνουν πολλούς ενδιαφερόμενους και άρα οι φοιτητές θα πρέπει να είναι σε θέση να διαχειρίζονται τα χρονοδιαγράμματα των έργων, να παρακολουθούν την πρόοδο και να διασφαλίζουν ότι τηρούνται οι προθεσμίες.

Περιεχόμενο (ύλη)

Εισαγωγή στην Ανάπτυξη ΒιντεοΠαιχνιδιών (ΒΠ) και στη μηχανή Unity Σχεδιαστικές Αρχές και Μηχανισμοί Τεκμηρίωση του Σχεδιασμού ΒΠ Βασικά Μαθηματικά για Ανάπτυξη ΒΠ Γραφικά – Φωτισμός (ακτίνες, υφές, υλικά, shaders) Η Φυσική στην Ανάπτυξη ΒΠ (έλεγχος σύγκρουσης, δυνάμεις, συστήματα σωματιδίων) Βασικές αρχές AI – Εύρεση Διαδρομών Δισδιάστατα ΒΠ και Σχετικές Έννοιες (sprites, κάμερα) Κίνηση Ήχος Βασικές Αρχές του Συστήματος Αλληλεπίδρασης με τον Χρήστη (σύστημα διαχείρισης συμβάντων) Τρισδιάστατα ΒΠ και Σχετικές Έννοιες (πρώτο/τρίτο πρόσωπο, πλέγματα) Δικτύωση για Πολλούς Παίκτες Εργαστήριο: Σύντομη Εισαγωγή στη γλώσσα C# για Unity Το Περιβάλλον του Unity και Βασικές Λειτουργίες Δημιουργία Βασικών Στοιχείων ΒΠ Φυσική Δύο και Τριών Διαστάσεων σε Unity Δημιουργία Περιβάλλοντος Αλληλεπίδρασης με τον Χρήστη σε ΒΠ Διαχείριση Ήχου σε Unity Υλοποίηση Κίνησης σε Unity ΑI και Εύρεση Διαδρομών σε Unity Υλοποίηση Δικτύωσης Πολλαπλών Παικτών σε Unity

Αξιολόγηση

Γλώσσα αξιολόγησης: Ελληνική (Αγγλικά αν χρειαστεί)

Αξιολόγηση: Προγραμματιστικές ασκήσεις (50%-70% του τελικού βαθμού). Τελική εξέταση (30%-50% του τελικού βαθμού).

Τελική εξέταση: Εξέταση προφορική/γραπτή σε προγραμματιστική εργασία που ανατίθεται ατομικά σε κάθε φοιτητή καθώς και σε ομαδική προγραμματιστική εργασία. Εξέταση στον κώδικα καθώς στην τεκμηρίωση του ΒΠ που θα περιέχει και τις λεπτομέρειες υλοποίησης.

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

Βιβλιογραφία

Basic Math for Game Development with Unity 3D. K. Sung and G. Smith. 2019. (Κωδικός στον Εύδοξο: 91687538) Learn Unity for Windows 10 Game Development. S. Blackman and A.Tuliper. 2016. (Κωδικός στον Εύδοξο: 75488229) Beginning 3D Game Development with Unity 4. S. Blackman. 2013. (Κωδικός στον Εύδοξο: 73230284) Βιντεοπαιχνίδια – Βιομηχανία και Ανάπτυξη. Κώστας Αναγνώστου. Εκδόσεις Κλειδάριθμος, 2009. (Κωδικός στον Εύδοξο: 13626) Game Engine Architecture. J. Gregory. CRC Press, 3rd Edition, 2019. Unity in Action: Multiplatform Game Development in C#. J. Hocking. Manning Publications, 3rd edition, 2022. Game Design: Theory & Practice. R. Rouse. Wordware Publishing, 2nd edition, 2005. Διδακτικές σημειώσεις και διαφάνειες που αναρτώνται στην ιστοσελίδα του μαθήματος.

-Συναφή επιστημονικά περιοδικά: The Computer Games Journal IEEE Transaction on Games International Journal of Computer Games Technology https://www.gamedev.net/