Ανάπτυξη βιντεοπαιχνιδιού πολλαπλών παικτών σε μεταβαλλόμενο περιβάλλον με το Unity
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Στο χώρο των σύγχρονων βιντεοπαιχνιδιών, η δυνατότητα ταυτόχρονης σύνδεσης πολλαπλών παικτών, οι οποίοι είτε συναγωνίζονται είτε ανταγωνίζονται μεταξύ τους, αποτελεί ένα χαρακτηριστικό το οποίο συχνά καθορίζει την πορεία και την δημοτικότητα ενός παιχνιδιού. Οι σύγχρονες μηχανές ανάπτυξης παιχνιδιών είναι αρκετές και πανίσχυρες, προσφέροντας στους προγραμματιστές μια πληθώρα εργαλείων, ικανών να συμβάλλουν σε όλη την διαδικασία ανάπτυξης του παιχνιδιού. Εξίσου πανίσχυρες είναι και οι τεχνολογίες υλοποίησης της ταυτόχρονης σύνδεσης πολλών παικτών (multiplayer), με την επιλογή της καταλληλότερης να αποτελεί ιδιαίτερα δύσκολη απόφαση.
Στα πλαίσια της παρούσας διπλωματικής εργασίας εξετάζεται εις βάθος η μηχανή παιχνιδιών Unity σε συνδυασμό με τα βασικά χαρακτηριστικά που τη διέπουν. Το Unity, αποτελεί μια εκ των δημοφιλέστερων και πληρέστερων μηχανών ανάπτυξης παιχνιδιών, με μερικά από τα πιο επιτυχημένα παιχνίδια των τελευταίων ετών, να έχουν βασιστεί σε αυτή. Το Unity παρέχει επίσης τα εργαλεία και τη λογική για την ανάπτυξη παιχνιδιών πολλαπλών παικτών μέσω του Netcode for GameObjects, το οποίο συμβάλλει στην ανάπτυξη συναρπαστικών παιχνιδιών. Για την περαιτέρω ανάλυση και παρουσίαση των παραπάνω, υλοποιήθηκε ένα Multiplayer Third Person Shooter παιχνίδι, δηλαδή ένα παιχνίδι πολλαπλών παικτών τρίτου προσώπου για υπολογιστή, όπου οι παίκτες θα μπορούν να αλληλεπιδρούν με το ευρύτερο περιβάλλον τους, έχοντας την ικανότητα καταστροφής των αντικειμένων της πίστας. Για την υλοποίηση και δημιουργία καταστρέψιμων αντικειμένων, αξιοποιήθηκε το πακέτο RayFire, οι υπηρεσίες του οποίου ήταν πολύτιμες για την επίτευξη του τελικού αποτελέσματος. Επιπρόσθετα, τα περισσότερα εκ των αντικειμένων που απαρτίζουν την πίστα, σχεδιάστηκαν εξ ολοκλήρου στα πλαίσια της παρούσας διπλωματικής εργασίας, με στόχο να προσδώσουν το στοιχείο της ρεαλιστικότητας στο τελικό αποτέλεσμα.
Στα πρώτα κεφάλαια της εργασίας γίνεται αναφορά στα βασικά χαρακτηριστικά και εργαλεία του Unity, εστιάζοντας ιδιαίτερα σε αυτά που χρησιμοποιήθηκαν περισσότερο για την ανάπτυξη του παιχνιδιού. Ύστερα, αναλύεται σε βάθος η φιλοσοφία και τα επιπρόσθετα χαρακτηριστικά του παιχνιδιού, εστιάζοντας κυρίως στον τρόπο ανάπτυξης της πίστας, των αντικειμένων, του χαρακτήρα και των διεπαφών που θα έχουν στη διάθεσή τους οι παίκτες. Παράλληλα, γίνεται εκτενής αναφορά στις μεθόδους υλοποίησης του multiplayer καθώς και στον τρόπο που αυτά αναπτύχθηκαν στα πλαίσια του παιχνιδιού. Εντός του παιχνιδιού, παρέχεται η δυνατότητα στους παίκτες να συνδέονται μεταξύ τους είτε μέσω dedicated server είτε να δημιουργούν οι ίδιοι δωμάτια (host), τα οποία φιλοξενούνται στους υπολογιστές τους και είναι διαθέσιμα προς σύνδεση για όλους τους υπόλοιπους παίκτες. Για όλα τα παραπάνω, παρέχονται οι αλγόριθμοι που υλοποιήθηκαν σε συνδυασμό με την επεξήγηση της λειτουργίας του καθενός. Οι τελικές ενότητες, αφορούν τη διαδικασία δημιουργίας των εκτελέσιμων αρχείων των παικτών και των servers.
Απώτερος στόχος της παρούσας εργασίας είναι η παρουσίαση και ανάλυση ολόκληρης της πορείας ανάπτυξης ενός βιντεοπαιχνιδιού για ηλεκτρονικό υπολογιστή μέσω της ενδελεχούς περιγραφής αρκετών πτυχών αυτής. Η ανάπτυξη παιχνιδιών αποτελεί ένα αρκετά πολυσύνθετο αντικείμενο και η δημιουργία ενός ολοκληρωμένου βιντεοπαιχνιδιού αποτελεί απόρροια της συνεργασίας διαφόρων ειδικών. Πιο συγκεκριμένα, ένα πλήρες παιχνίδι, κατά το ταξίδι ανάπτυξης του, περνά από στάδια όπως ο σχεδιασμός επιπέδων (level design), ο σχεδιασμός γραφικών και τέχνης (art design), η ανάπτυξη της λειτουργικότητας (development, coding), η δυνατότητα ύπαρξης πολλαπλών παικτών (multiplayer), η ηχητική σχεδίαση (sound design), οι δοκιμές και αποσφαλμάτωση (testing, debugging), η βελτιστοποίηση (optimization) και αρκετά άλλα. Στόχος λοιπόν της παρούσας διπλωματικής εργασίας, ήταν η ανάδειξη και η όσο το δυνατόν, βαθύτερη εντρύφηση με τα προαναφερθέντα αντικείμενα. Μεγάλης σημασίας επίσης, αποτέλεσε η παρουσίαση και ανάδειξη των τεχνικών υλοποίησης της δυνατότητας σύνδεσης πολλαπλών παικτών (multiplayer), αναλύοντας παράλληλα τα βασικά τους χαρακτηριστικά. Το multiplayer, αποτελεί ένα αντικείμενο που χρήζει ιδιαίτερου χειρισμού, καθώς σε περίπτωση λανθασμένης μεταχείρισής του, το αποτέλεσμα δεν θα είναι ελκυστικό προς τους παίκτες, κάνοντας το παιχνίδι να αποκλίνει από τον αρχικό του στόχο, αυτόν δηλαδή της διασκέδασης των χρηστών. Τελικά, καθώς τα αρχεία κώδικα (scripts) που αναπτύχθηκαν στα πλαίσια της παρούσας διπλωματικής εργασίας είναι αρκετά, ο συνολικός κώδικας στον οποίο βασίστηκε το παιχνίδι που θα περιγράφει στη συνέχεια, βρίσκεται στην παρακάτω διεύθυνση.

