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

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

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

Λεπτομέρειες βιβλιογραφικής εγγραφής
Κύριος συγγραφέας: Μουτάκης, Δημήτριος
Άλλοι συγγραφείς: Moutakis, Dimitrios
Γλώσσα:Greek
Έκδοση: 2024
Θέματα:
Διαθέσιμο Online:https://hdl.handle.net/10889/26694
id nemertes-10889-26694
record_format dspace
institution UPatras
collection Nemertes
language Greek
topic Παιχνίδια φυλλομετρητή
Παιχνίδια πολλών χρηστών
Απεικόνιση γραφικών
Τεχνικές αντιστάθμισης της καθυστέρησης δικτύου
Εμπειρία παίκτη
Client-server architecture
Web browser games
Multiplayer games
Animation
Lag compensation techniques
Player experience
spellingShingle Παιχνίδια φυλλομετρητή
Παιχνίδια πολλών χρηστών
Απεικόνιση γραφικών
Τεχνικές αντιστάθμισης της καθυστέρησης δικτύου
Εμπειρία παίκτη
Client-server architecture
Web browser games
Multiplayer games
Animation
Lag compensation techniques
Player experience
Μουτάκης, Δημήτριος
Σχεδίαση ενός διαδικτυακού εξυπηρετητή παιχνιδιών πολλαπλών χρηστών
description Η παρούσα διπλωματική εργασία αφορά τον σχεδιασμό και την υλοποίηση ενός βιντεοπαιχνιδιού του 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. Θα γίνει λεπτομερής παρουσίαση όλων των σταδίων υλοποίησης, του τεχνολογικού υποβάθρου, της σχεδίασης και της ανάπτυξης κώδικα και τέλος θα παρουσιαστούν τα αποτελέσματα της αξιολόγησης του παιχνιδιού από χρήστες η οποία έγινε με τις μεθόδους παρατήρησης χρηστών, συνεντεύξεων και συμπλήρωση ερωτηματολογίων.
author2 Moutakis, Dimitrios
author_facet Moutakis, Dimitrios
Μουτάκης, Δημήτριος
author Μουτάκης, Δημήτριος
author_sort Μουτάκης, Δημήτριος
title Σχεδίαση ενός διαδικτυακού εξυπηρετητή παιχνιδιών πολλαπλών χρηστών
title_short Σχεδίαση ενός διαδικτυακού εξυπηρετητή παιχνιδιών πολλαπλών χρηστών
title_full Σχεδίαση ενός διαδικτυακού εξυπηρετητή παιχνιδιών πολλαπλών χρηστών
title_fullStr Σχεδίαση ενός διαδικτυακού εξυπηρετητή παιχνιδιών πολλαπλών χρηστών
title_full_unstemmed Σχεδίαση ενός διαδικτυακού εξυπηρετητή παιχνιδιών πολλαπλών χρηστών
title_sort σχεδίαση ενός διαδικτυακού εξυπηρετητή παιχνιδιών πολλαπλών χρηστών
publishDate 2024
url https://hdl.handle.net/10889/26694
work_keys_str_mv AT moutakēsdēmētrios schediasēenosdiadiktyakouexypēretētēpaichnidiōnpollaplōnchrēstōn
AT moutakēsdēmētrios designofamultiplayeronlinegamingserver
_version_ 1799945004846678016
spelling nemertes-10889-266942024-03-05T05:06:42Z Σχεδίαση ενός διαδικτυακού εξυπηρετητή παιχνιδιών πολλαπλών χρηστών Design of a multiplayer online gaming server Μουτάκης, Δημήτριος Moutakis, Dimitrios Παιχνίδια φυλλομετρητή Παιχνίδια πολλών χρηστών Απεικόνιση γραφικών Τεχνικές αντιστάθμισης της καθυστέρησης δικτύου Εμπειρία παίκτη Client-server architecture Web browser games Multiplayer games Animation Lag compensation techniques Player experience Η παρούσα διπλωματική εργασία αφορά τον σχεδιασμό και την υλοποίηση ενός βιντεοπαιχνιδιού του 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. Θα γίνει λεπτομερής παρουσίαση όλων των σταδίων υλοποίησης, του τεχνολογικού υποβάθρου, της σχεδίασης και της ανάπτυξης κώδικα και τέλος θα παρουσιαστούν τα αποτελέσματα της αξιολόγησης του παιχνιδιού από χρήστες η οποία έγινε με τις μεθόδους παρατήρησης χρηστών, συνεντεύξεων και συμπλήρωση ερωτηματολογίων. The present thesis focuses on the design and implementation of a video game called Jimmys.io and the server that will support it. Jimmys.io is classified under casual video games and is inspired by the already known game Agar.io. It is a multiplayer online game with real-time action that has the browser tab as its platform. The main purpose of this game is for the player to manage with proper manipulations to make his character, which is a supposed circular shaped micro-organism to grow and prevail against the characters of the other players who are in the game world. As a web application Jimmys.io is a competitive action game and its purpose is through the short game sessions it offers to satisfy the natural need for fun. During the implementation, in addition to the design of the script and game rules, emphasis was placed on the technical aspects involved in creating an online multiplayer game. These are the way in which the 2 parties, server and client, communicate, the tasks they perform and the content of the packets they exchange in the context of the game sessions. Also, the architecture was properly structured to prevent rule violations and latency compensation techniques were implemented to render real-time action with a smooth visual effect on the user's screen even in non-ideal network conditions. Finally, the implementation of the server was done in such a way as to provide a "play as guest" service to the users, while it was also studied how the system architecture could be scaled to a first degree to serve more simultaneous users. The technologies used are Node.js for programming the back-end part and for the front-end HTML, CSS and Javascript technologies were used, while for the display mechanism the HTML canvas element and its interface were used to create one frame per second display. The communication between these two parties during the game sessions was based on the Websocket protocol, while it was studied how the utilization of NGINX technology might contribute to the expansion of the system architecture. There will be a detailed presentation of all the stages of implementation, the technological background, design and code development, and finally the results of the user evaluation of the game will be presented, which was done with the methods of user observation, interviews and completing questionnaires. 2024-03-04T08:51:51Z 2024-03-04T08:51:51Z 2024-02-26 https://hdl.handle.net/10889/26694 el application/pdf