【发布时间】:2015-12-31 18:04:49
【问题描述】:
我正在使用 Unity 引擎开发一个基本的 MMORPG。 我需要一个简单的解决方案(库、框架)来制作高效的服务器。 完成这项任务的最佳方法是什么?
【问题讨论】:
我正在使用 Unity 引擎开发一个基本的 MMORPG。 我需要一个简单的解决方案(库、框架)来制作高效的服务器。 完成这项任务的最佳方法是什么?
【问题讨论】:
原帖是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 从头开始或在源代码中包含的几个演示应用程序之上构建您自己的自定义逻辑。这使您可以快速轻松地获得出色的结果。
用于设置连接的代码 sn-p:
using UnityEngine;
public class RandomMatchmaker : MonoBehaviour
{
void Start() {
PhotonNetwork.ConnectUsingSettings("0.1");
}
void OnGUI(){
GUILayout.Label(PhotonNetwork.connectionStateDetailed.ToString());
}
}
加入房间/大厅的代码 sn-p:
public override void OnJoinedLobby()
{
PhotonNetwork.JoinRandomRoom();
}
用于设置日志记录的代码 sn-p:
PhotonNetwork.logLevel = PhotonLogLevel.Full;
用于错误处理的代码 sn-p:
void OnPhotonRandomJoinFailed()
{
Debug.Log("Can't join random room!");
PhotonNetwork.CreateRoom(null);
}
可以在here找到关于这个主题的一个很好的教程。
3. Firebase 可能是第 3 选择,尽管性能尚不清楚。
4.其他(OpenSpace、RedDwarf、ElectroServer、Player.IO、Red5、Mesmotronic Multiuser Server 等)
详情请见great post。
【讨论】: