Sto sviluppando un MMORPG di base utilizzando il motore Unity. Ho bisogno di una soluzione semplice (libreria, framework) per creare un server efficiente. Qual è il modo migliore per eseguire questa attività?Server di backend per MMORPG Unity3D
risposta
Il post originale è here.
si potrebbe provare SmartFox, questo link potrebbe essere un buon inizio per voi. Qui di seguito i tutorial sono anche utili per un avvio rapido:
In particolare, è possibile connettersi al server Smartfox e ricevere una notifica sulla connessione:
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);
per accedere e ottenere agganciato quando login riesce:
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 è un altro server backend/popolare servizio.
Photon Server fornisce framework chiavi in mano per giochi multiplayer. Inizia da zero o crea la tua logica personalizzata su numerose applicazioni demo incluse nel codice sorgente con gli SDK del server gratuito. Questo ti permette di ottenere grandi risultati in modo facile e veloce.
frammento di codice per il collegamento di installazione:
using UnityEngine;
public class RandomMatchmaker : MonoBehaviour
{
void Start() {
PhotonNetwork.ConnectUsingSettings("0.1");
}
void OnGUI(){
GUILayout.Label(PhotonNetwork.connectionStateDetailed.ToString());
}
}
Codice frammento per accedere alla sala/atrio: snippet
public override void OnJoinedLobby()
{
PhotonNetwork.JoinRandomRoom();
}
codice per la registrazione di installazione:
PhotonNetwork.logLevel = PhotonLogLevel.Full;
Codice snippet gestione degli errori:
void OnPhotonRandomJoinFailed()
{
Debug.Log("Can't join random room!");
PhotonNetwork.CreateRoom(null);
}
Un buon tutorial su questo argomento può essere trovato here.
3. Firebase potrebbe essere la terza scelta, anche se la prestazione è senza dubbio chiaro.
- Ad esempio, in roll20.net, è possibile trovare il gioco MMO basato su Firbase.
- Tra gli altri, FireSharp potrebbe essere un progetto open source molto utile per il tuo avvio rapido.
4. Altri (Openspace, RedDwarf, ElectroServer, Player.IO, Red5, Mesmotronic Multiuser Server ecc)
Vai a questa great post per i dettagli.
Grazie, cercherò –
Firebase è impressionante per alcuni giochi, ma dopo aver consultato il loro team di supporto, hanno confermato non è progettato per la cottura di giochi o quelli che richiedono i dati di posizione in tempo reale. Se non hai bisogno di dati di posizione in tempo reale, prova sicuramente Firebase. API molto semplice e supporto reattivo. – Crashalot