background image

 

 

 

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