2017-12-01 5 views
0

Unityマルチプレーヤーのサポートを検討しています。すべてのドキュメントから、メインモデルのように見えるのは、ゲームがサーバーとクライアントの両方になり、同じバイナリが両方のために使用できるということです。Unityマルチプレイヤー:スタンドアロンクライアント

クライアントとサーバーが2つの異なるバイナリであるゲームを作成することは可能でしょうか?クライアントはより軽量で、クライアント部分のみを行い、サーバーはオープンワールド/ゲームプレイ/状態を処理するために重い作業を行います。 ?

単純な例として、キャラクターによって人口が集中する巨大な世界を想像してみましょう。クライアントは、自分の健康状態や統計情報を表示してアバターをレンダリングするだけのモバイルアプリです。サーバー上にあるキャラクターは、大きな環境で複雑な生活を送っています。

+0

はい、UNET(Unityマルチプレイヤーサービス)を使用することもできますし、ユニティに公式ではない別のサービスを使用することもできます。 – Lestat

+0

これは素晴らしいことです。このアプローチを開始するのに役立つリソースを教えてください。 –

答えて

1

クライアント側のロジックとは完全に独立して、サーバー操作にSmartFoxServer(unity3dをサポート)のようなものを使用できます。これは、クライアントではC#Unity、SmartFoxServerではJavaになります。拡張機能を設定し、部屋、ロビー、ユーザーイベント、チャットなどをサーバーで管理し、クライアント側でイベントを取得するのはかなり簡単です。完全なMMOシステムを構築し、それをモバイル上で実行することもできます。

+0

これは、組み込みのNetworkManager/Identityなどを使用しない完全なカスタムネットワーキング実装であることを意味しますか? –

+0

サーバ側では、Unity3Dには何も関係ありません。 SmartFoxServerが提供する基本拡張機能を継承する必要がありますが、必要に応じてカスタマイズすることができます。 – Ajjo

0

私は方法を見つけたと思うので、少なくとも私のために働いています。 NetworkClientクラスとNetworkServerクラスを使用して必要なのは可能です。だから私は2つの別々のプロジェクト、サーバーとクライアントがあります。 サーバーはかなりあるスクリプトを持っています

public class Server : MonoBehaviour { 
public Text text; 
public class HelloMessage : MessageBase 
{ 
    public string helloText; 
} 

void Start() { 
    NetworkServer.Listen(4444); 
    NetworkServer.RegisterHandler(333, onHelloMessage); 

} 

public void onHelloMessage(NetworkMessage msg) 
{ 
    text.text = msg.ReadMessage<HelloMessage>().helloText; 
} 
} 

これは、ポート4444

上のメッセージをリッスンし、クライアント側はこのようなものです: パブリッククラスのNetworkManager:MonoBehaviour { NetworkClientクライアント。

public class HelloMessage : MessageBase 
{ 
    public string helloText; 
} 

// Use this for initialization 
void Start() { 
    client = new NetworkClient(); 
    client.Connect("127.0.0.1", 4444); 

} 

public void SendNetworkMessage() 
{ 
    HelloMessage msg = new HelloMessage(); 
    msg.helloText = "Hello"; 
    client.Send(333, msg); 
} 

}

今サーバー側で、私たちは、ボタンにラベルに、クライアント側SendNetworkMessagetextをフックすることができますし、我々は、サーバー上で表示されるように、クライアントからメッセージを送信することができます。

これでプロトコルを定義し、オフにするだけです。

関連する問題