Σχεδίαση ενός διαδικτυακού εξυπηρετητή παιχνιδιών πολλαπλών χρηστών

Η παρούσα διπλωματική εργασία αφορά τον σχεδιασμό και την υλοποίηση ενός βιντεοπαιχνιδιού του Jimmys.io και του εξυπηρετητή ο οποίος θα το υποστηρίζει. Το Jimmys.io κατατάσσεται στα casual βιντεοπαιχνίδια και είναι εμπνευσμένο από το ήδη γνωστό παιχνίδι Agar.io. Πρόκειται για ένα διαδικτυακό παιχνίδ...

Πλήρης περιγραφή

Λεπτομέρειες βιβλιογραφικής εγγραφής
Κύριος συγγραφέας: Μουτάκης, Δημήτριος
Άλλοι συγγραφείς: Moutakis, Dimitrios
Γλώσσα:Greek
Έκδοση: 2024
Θέματα:
Διαθέσιμο Online:https://hdl.handle.net/10889/26694
Περιγραφή
Περίληψη:Η παρούσα διπλωματική εργασία αφορά τον σχεδιασμό και την υλοποίηση ενός βιντεοπαιχνιδιού του Jimmys.io και του εξυπηρετητή ο οποίος θα το υποστηρίζει. Το Jimmys.io κατατάσσεται στα casual βιντεοπαιχνίδια και είναι εμπνευσμένο από το ήδη γνωστό παιχνίδι Agar.io. Πρόκειται για ένα διαδικτυακό παιχνίδι πολλών χρηστών με δράση πραγματικού χρόνου το οποίο έχει ως πλατφόρμα την καρτέλα του φυλλομετρητή. Βασικός σκοπός αυτού του παιχνιδιού είναι να καταφέρει ο παίκτης με κατάλληλους χειρισμούς να κάνει τον χαρακτήρα του, ο οποίος είναι ένας υποτιθέμενος κυκλικού σχήματος μικροοργανισμός να μεγεθυνθεί και να επικρατήσει ενάντια στους χαρακτήρες των υπόλοιπων παικτών που βρίσκονται στον κόσμο του παιχνιδιού. Ως Web εφαρμογή το Jimmys.io αποτελεί ένα ανταγωνιστικό παιχνίδι δράσης και σκοπός του είναι μέσα από τις σύντομες συνεδρίες παιχνιδιού που προσφέρει να καλύψει την φυσική ανάγκη για διασκέδαση. Κατά την υλοποίηση εκτός από τον σχεδιασμό του σεναρίου και των κανόνων του παιχνιδιού δόθηκε έμφαση στις τεχνικές πτυχές που περιλαμβάνει η δημιουργία ενός διαδικτυακού παιχνιδιού πολλών παικτών. Αυτές αποτελούν τον τρόπο με τον οποίο επικοινωνούν τα 2 μέρη, εξυπηρετητής (server) και πελάτης (client), τις εργασίες που εκτελούν και το περιεχόμενο των πακέτων που ανταλλάσσουν στα πλαίσια της πραγματοποίησης των συνεδριών παιχνιδιού. Επίσης η αρχιτεκτονική δομήθηκε με κατάλληλο τρόπο ώστε να αποτρέπονται οι παραβιάσεις κανόνων και έγινε εφαρμογή τεχνικών αντιστάθμισης καθυστέρησης ώστε να αποδίδεται η δράση πραγματικού χρόνου με ένα ομαλό οπτικό αποτέλεσμα στην οθόνη του χρήστη ακόμη και σε μη ιδανικές συνθήκες δικτύου. Τέλος η υλοποίηση του εξυπηρετητή έγινε με τέτοιο τρόπο ώστε να παρέχεται μια “play as guest” υπηρεσία στους χρήστες ενώ επίσης μελετήθηκε το πως θα μπορούσε να κλιμακωθεί η αρχιτεκτονική του συστήματος σε ένα πρώτο βαθμό ώστε να εξυπηρετούνται περισσότεροι ταυτόχρονοι χρήστες. Οι τεχνολογίες που αξιοποιήθηκαν είναι το Node.js για τον προγραμματισμό του back-end μέρους και για το front-end χρησιμοποιήθηκαν οι τεχνολογίες HTML, CSS και Javascript ενώ για τον μηχανισμό απεικόνισης χρησιμοποιήθηκε το HTML στοιχείο canvas και η διεπαφή του για δημιουργία μιας καρέ ανά δευτερόλεπτο απεικόνισης. Η επικοινωνία των δύο αυτών μερών κατά την διάρκεια των συνεδριών παιχνιδιού βασίστηκε στο πρωτόκολλο Websocket ενώ μελετήθηκε πως μπορεί να συμβάλλει στην επέκταση της αρχιτεκτονικής του συστήματος η αξιοποίηση της τεχνολογίας NGINX. Θα γίνει λεπτομερής παρουσίαση όλων των σταδίων υλοποίησης, του τεχνολογικού υποβάθρου, της σχεδίασης και της ανάπτυξης κώδικα και τέλος θα παρουσιαστούν τα αποτελέσματα της αξιολόγησης του παιχνιδιού από χρήστες η οποία έγινε με τις μεθόδους παρατήρησης χρηστών, συνεντεύξεων και συμπλήρωση ερωτηματολογίων.