我正在使用Unity引擎开发基本的MMORPG。 我需要一个简单的解决方案(库,框架)来创建一个高效的服务器。 完成此任务的最佳方法是什么?
答案 0 :(得分:8)
原帖是here。
具体来说,您可以连接到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 可能是第三选择,但表现可能不明确。
<强> 4。其他(OpenSpace,RedDwarf,ElectroServer,Player.IO,Red5,Mesmotronic多用户服务器等)
有关详细信息,请参阅此great post。