Ανάπτυξη Android παιχνιδιού πραγματικού χρόνου με την χρήση Firebase και της ασαφούς λογικής
Real-time Android game development using Firebase and fuzzy logic
Προβολή/ Άνοιγμα
Λέξεις κλειδιά
Real-time ; Android game development ; Firebase ; Fuzzy logic ; AES ; ChatΠερίληψη
Η παρούσα διπλωματική εργασία εκπονήθηκε στα πλαίσια του Προγράμματος
Μεταπτυχιακών Σπουδών “Προηγμένα Συστήματα Πληροφορικής - Ανάπτυξη Λογισμικού
και Τεχνητής Νοημοσύνης”, και έχει ως στόχο την υλοποίηση μιας εφαρμογής Android και
συγκεκριμένα ενός παιχνιδιού λέξεων, σε πραγματικό χρόνο και για πολλαπλούς παίκτες με
την χρήση του Firebase. Το παιχνίδι αυτό αφορά τον ανταγωνισμό 2 παικτών ως προς την
δημιουργία λέξεων. Συγκεκριμένα, στους 2 παίκτες μοιράζεται ένας αριθμός ιδίων γραμμάτων,
και οι παίκτες καλούνται να δημιουργήσουν όσες περισσότερες λέξεις μπορούν με τα
γράμματα, στην διάρκεια ενός γύρου. Η κάθε παρτίδα περιλαμβάνει 3 γύρους και νικητής είναι
αυτός που θα έχει κερδίσει τους περισσότερους γύρους. Ο κάθε χρήστης συνδέεται στην
εφαρμογή, κάνοντας Login μέσω του προσωπικού του λογαριασμού που μπορεί να διαθέτει
(Facebook ή Google). Επιπλέον παρέχεται στον χρήστη η δυνατότητα της προσθήκης άλλων
χρηστών στην λίστα φίλων του, η δυνατότητα να συνομιλήσει (chat) με τους φίλους του ή και
με τους τυχαίους αντιπάλους που μπορεί να συναντήσει, η δυνατότητα να προσκαλεί και να
προκαλέσει τους φίλους σε παιχνίδι (αγώνα παίκτης εναντίον παίκτη) καθώς και η δυνατότητα
να μπορεί να παίξει με τυχαίο αντίπαλο εκτός της λίστας φίλων του. Για την τελευταία, κρίθηκε
απαραίτητη η χρήση ενός μηχανισμού ΑΙ (bot) για εκείνες τις χρονικές στιγμές που μπορεί να
μην υπάρχουν συνδεδεμένοι και διαθέσιμοι χρήστες ως τυχαίοι αντίπαλοι. Το bot
προσαρμόζεται στο επίπεδο του χρήστη και έτσι δημιουργείται στον χρήστη η ψευδαίσθηση
ότι παίζει με αληθινό αντίπαλο. Φυσικά όταν υπάρχουν συνδεδεμένοι χρήστες και είναι
διαθέσιμοι ως τυχαίοι αντίπαλοι, ο μηχανισμός του bot δεν χρησιμοποιείται. Η υλοποίηση του
παραπάνω μηχανισμού γίνεται με την χρήση μιας δομής δεδομένων Prefix Tree (Trie) και της
ασαφής λογικής με την οποία το bot αποφασίζει πότε να παίξει και πόσες λέξεις να
δημιουργήσει. Επιπλέον, η εφαρμογή παρέχει ένα σύστημα επιπέδου (Level System) καθώς
με αυτόν τον τρόπο γίνεται η επιβράβευση αλλά και η αξιολόγηση του επιπέδου του χρήστη η
οποία είναι ανάλογη των παιχνιδιών που έχει παίξει και των αντίστοιχων αποτελεσμάτων τους
(νίκες, ήττες, ισοπαλίες). Επιπρόσθετα η εφαρμογή διαθέτει και άλλους τρόπους
επιβράβευσης, όπως, επιτεύγματα (achievements), τα οποία προκύπτουν από τα κατορθώματα
του χρήστη κατά την διάρκεια του παιχνιδιού, πίνακας με τους καλύτερους παίκτες (Top
Players), ο οποίος βρίσκεται στην αρχική οθόνη της εφαρμογής, και είναι ένας τρόπος όπου
υποσυνείδητα δημιουργεί την ανάγκη στον χρήστη να εξελιχθεί και να γίνει καλύτερος ώστε,
κάποια μέρα, να υπάρξει και το δικό του όνομα στον πίνακα με τους καλυτέρους παίκτες.
Τέλος, η εφαρμογή διαθέτει επιβράβευση με καθημερινά δώρα, όπως δωρεάν εισιτήρια (για
Τσελεπατιώτης Μιχαήλ Μεταπτυχιακή Διατριβή
Ανάπτυξη Android παιχνιδιού πραγματικού χρόνου με την χρήση Firebase και της Ασαφούς Λογικής 10
προσκλήσεις φίλων σε παιχνίδι), βοήθειες για μέσα στο παιχνίδι, εμπειρίες επιπέδου (Level
XP) καθώς και αλλά πολλά. Τέλος, όπως αναφέρθηκε και παραπάνω, η εφαρμογή διαθέτει
έναν μηχανισμό συνομιλίας (chat) ώστε οι παίκτες να μπορούν να επικοινωνούν και να
ανταλλάζουν μηνύματα. Για την καλύτερη ασφάλεια τόσο των χρηστών όσο και των
προσωπικών τους δεδομένων, (ιδιωτικές πληροφορίες, ευαίσθητα δεδομένα κ.α) έχει
υλοποιηθεί ένας μηχανισμός κρυπτογράφησης από άκρο σε άκρο (End-to-end encryption)
όπου μόνο οι χρήστες που επικοινωνούν μπορούν να διαβάσουν τα μηνύματα. Έτσι τα
μηνύματα και οι επιπλέον πληροφορίες διαχείρισης που τα συνοδεύουν αποθηκεύονται και
ανακτώνται σε κρυπτογραφημένη μορφή, και ο κάθε client αντίστοιχα τα αποκωδικοποιεί.
Παρόλο που ο πιο σύνηθες αλγόριθμος κρυπτογράφησης εφαρμογών συνομιλίας είναι ο RSA
(ασύμμετρου κλειδιού) εντούτοις στην παρούσα διπλωματική υλοποιήθηκε ο AES
(Συμμετρικού Κλειδιού)