55
ΑΝΑΠΤΥΞΗ 3D ΣΚΟΠΕΥΤΙΚΟΥ ΠΑΙΧΝΙΔΙΟΥ ΤΡΙΤΟΥ ΠΡΟΣΩΠΟΥ ΠΟΛΛΑΠΛΩΝ
ΠΑΙΚΤΩΝ ΤΥΠΟΥ ROGUELITE
Κεφάλαιο 4: Υλοποίηση
Στο κεφάλαιο αυτό γίνεται η ανάλυση των σύνθετων προβλημάτων που αντιμετωπίστηκαν
κατά την υλοποίηση του παιχνιδιού. Αυτό συμπεριλαμβάνει τον κώδικα για την διασύνδεση των
παικτών, τον συγχρονισμό των μεταβλητών στο δίκτυο, την βελτιστοποίηση της απόδοσης του
παιχνιδιού, την μείωση του αποθηκευτικού χώρου και την διαχείριση του φωτισμού. To παιχνίδι
περιέχει δύο σκηνές, μία για το αρχικό μενού και μία για την αρένα. Στο αρχικό μενού μπορεί να
γίνει η εύρεση και διασύνδεση των παικτών (matchmaking).
4.1 Matchmaking
Τα scripts που χρησιμοποιήθηκαν για την διασύνδεση των παικτών είναι τα:
MatchmakingLobbyController.cs, MatchmakingRoomController.cs, RoomButton.cs, Menu.cs και
RegionScript.cs. Το script Menu.cs είναι υπεύθυνο για τις λειτουργίες του αρχικού μενού και την
σύνδεση στο δίκτυο. Με το MatchmakingLobbyController.cs γίνεται η εύρεση και με το
RoomButton.cs η εμφάνιση των δωματίων. Στο MatchmakingRoomController.cs γίνεται η
διαχείριση του δωματίου. To RegionScript.cs είναι υπεύθυνο μόνο για την οπτική εμφάνιση των
διαθέσιμων διακομιστών.
4.1.1 Διαχείριση Μενού
Το πακέτο της Photon παρέχει την μεταβλητή OfflineMode για να ορίσουμε αν το παιχνίδι
χρειάζεται να συνδεθεί στους διακομιστές της Photon, ή αν ο παίκτης θα παίξει μόνος του. Στην
περίπτωση που ο παίκτης θελήσει να παίξει χωρίς να συνδεθεί με άλλους παίκτες, τότε μόλις
πατήσει το κουμπί “Singleplayer” (Εικόνα 8) ορίζουμε την μεταβλητή OfflineMode σε true,
ενεργοποιούμε την μπάρα φόρτωσης, και ξεκινά το παιχνίδι (Εικόνα 34). Άμα όμως αποφασίσει
να διασυνδεθεί με άλλους παίκτες, τότε όταν πατήσει το κουμπί “Multiplayer” (Εικόνα 8)
εκτελείται ο κατάλληλος κώδικας για να οριστεί η μεταβλητή OfflineMode σε false, γίνεται η
σύνδεση με τον διακομιστή της Photon με την εντολή PhotonNetwork.ConnectUsingSettings(), και
αρχίζουμε την χρονομέτρηση σε περίπτωση που είναι αδύνατη η επικοινωνία με τον διακομιστή
για να εμφανίσουμε το κατάλληλο μήνυμα (Εικόνα 35).
Εικόνα 34 Αρχή του παιχνιδιού σε Singleplayer
Εικόνα 35 Σύνδεση στον διακομιστή της Photon