2015-12-31 30 views
5

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

8

Il post originale è here.

  1. 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.

+0

Grazie, cercherò –

+0

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