2015-12-31 32 views
5

के लिए बैकएंड सर्वर मैं यूनिटी इंजन का उपयोग कर एक बुनियादी एमएमओआरपीजी विकसित कर रहा हूं। मुझे एक कुशल सर्वर बनाने के लिए एक सरल समाधान (पुस्तकालय, ढांचा) की आवश्यकता है। इस कार्य को पूरा करने का सबसे अच्छा तरीका क्या है?यूनिटी 3 डी एमएमओआरपीजी

उत्तर

8

मूल पोस्ट here है।

  1. आप कोशिश SmartFox, इस link आप के लिए एक अच्छी शुरुआत हो सकता है हो सकता है। ट्यूटोरियल नीचे एक जल्दी शुरू करने के लिए भी सहायक होते हैं:

विशेष रूप से, आप smartfox सर्वर से कनेक्ट कर सकते हैं और कनेक्शन पर सूचित किया जाए:

private SmartFox client; 
private string serverIP = "127.0.0.1"; 
private int serverPort = 9933; 
private string zone = "BasicExamples"; 

client = new SmartFox();   
client.ThreadSafeMode = false; //true for Unity3D 
client.AddEventListener(SFSEvent.CONNECTION, (evt) => 
     { 
      bool bSuccess = (bool)evt.Params[“success”]; 
      Console.WriteLine(client.IsConnected ? 
       “Successfully connected to SmartFox Server” : 
       “Failed to connect to SmartFox Server”); 
     });   
client.Connect(serverIP, serverPort);    

लॉगिन करने के लिए और झुका हो तो लॉगिन सफल होता है:

var request = new LoginRequest("UserName", "Password", zone); //[1] 
client.Send(request);           //[2] 

client.AddEventListener(SFSEvent.LOGIN, (evt) => {    //[3] 
      Console.WriteLine("The User login success");  
}); 

client.Connect(serverIP, serverPort); 

2. Photon एक और लोकप्रिय बैकएंड सर्वर/सेवा है।

फोटॉन सर्वर आपको मल्टीप्लेयर गेम के लिए टर्नकी फ्रेमवर्क प्रदान करता है। मुक्त सर्वर एसडीके के साथ स्रोत कोड में शामिल कई डेमो अनुप्रयोगों के शीर्ष पर स्क्रैच से शुरू करें या अपना खुद का कस्टम तर्क बनाएं। इससे आपको तेजी से और आसान परिणाम मिल सकते हैं। सेटअप कनेक्शन के लिए

कोड स्निपेट: के लिए

PhotonNetwork.logLevel = PhotonLogLevel.Full; 

कोड स्निपेट: सेटअप प्रवेश के लिए

public override void OnJoinedLobby() 
{ 
    PhotonNetwork.JoinRandomRoom(); 
} 

कोड स्निपेट: कमरा/लॉबी में शामिल होने के लिए

using UnityEngine; 

public class RandomMatchmaker : MonoBehaviour 
{ 
    void Start() { 
     PhotonNetwork.ConnectUsingSettings("0.1"); 
    } 

    void OnGUI(){ 
     GUILayout.Label(PhotonNetwork.connectionStateDetailed.ToString()); 
    } 
} 

कोड स्निपेट त्रुटि प्रबंधन:

void OnPhotonRandomJoinFailed() 
{ 
    Debug.Log("Can't join random room!"); 
    PhotonNetwork.CreateRoom(null); 
} 

इस विषय पर एक अच्छा ट्यूटोरियल here पाया जा सकता है।


3. Firebase, 3 विकल्प हो सकता है, हालांकि प्रदर्शन यकीनन स्पष्ट नहीं है।

  • उदाहरण के तौर पर, roll20.net में, आपको फ़िरबेस द्वारा संचालित एमएमओ गेम मिल सकता है।
  • दूसरों के बीच, FireSharp आपकी त्वरित शुरुआत के लिए एक बहुत ही उपयोगी ओपन सोर्स प्रोजेक्ट हो सकता है।

4. अन्य (OpenSpace, RedDwarf, ElectroServer, Player.IO, Red5, Mesmotronic समर्थ सर्वर आदि)

जानकारी के लिए इस great post देखें।

+0

धन्यवाद, मैं कोशिश करूँगा –

+0

Firebase कुछ खेल के लिए भयानक है, लेकिन उनकी सहायता टीम से परामर्श के बाद, वे यह है कि वास्तविक समय स्थिति डेटा की आवश्यकता खेल या लोगों फायरिंग के लिए डिज़ाइन नहीं किया गया पुष्टि की। यदि आपको रीयल-टाइम स्थिति डेटा की आवश्यकता नहीं है, हालांकि, निश्चित रूप से फ़ायरबेस का प्रयास करें। बहुत सरल एपीआई और उत्तरदायी समर्थन। – Crashalot

संबंधित मुद्दे