Unity3D MMORPG的后端服务器

时间:2015-12-31 06:01:25

标签: unity3d server backend

我正在使用Unity引擎开发基本的MMORPG。 我需要一个简单的解决方案(库,框架)来创建一个高效的服务器。 完成此任务的最佳方法是什么?

1 个答案:

答案 0 :(得分:8)

原帖是here

  1. 您可以尝试 SmartFox ,这个link可能是一个很好的开始。下面的教程也有助于快速入门:

  2. 具体来说,您可以连接到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 是另一种流行的后端服务器/服务。

      

    Photon Server为您提供多人游戏的交钥匙框架。从头开始或使用免费服务器SDK在源代码中包含的几个演示应用程序之上构建您自己的自定义逻辑。这使您可以快速轻松地获得出色的结果。

    设置连接的代码段:

    using UnityEngine;
    
    public class RandomMatchmaker : MonoBehaviour
    {
        void Start() {
            PhotonNetwork.ConnectUsingSettings("0.1");
        }
    
        void OnGUI(){
           GUILayout.Label(PhotonNetwork.connectionStateDetailed.ToString());
        }
    } 
    

    加入会议室/大厅的代码段:

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

    设置日志记录的代码段:

    PhotonNetwork.logLevel = PhotonLogLevel.Full;
    

    错误处理的代码段:

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

    可以找到关于此主题的优秀教程here

    第3。 Firebase 可能是第三选择,但表现可能不明确。

    • 例如,在roll20.net中,您可能会发现由Firbase提供支持的MMO游戏。
    • 其中,FireSharp可能是一个非常有用的开源项目,可以让您快速入门。

    <强> 4。其他(OpenSpace,RedDwarf,ElectroServer,Player.IO,Red5,Mesmotronic多用户服务器等)

      

    有关详细信息,请参阅此great post