問題タブ [photon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unity3d - スポーンが「満たされている」と断言する方法は?
接続時にプレイヤーが現れる 2 つのスポーン スポットがあります。
プレイヤーの 1 人がスポットの 1 つで接続すると、他のプレイヤーは常に他のスポットでスポーンする必要があります。
これが役立つ場合に備えて、いくつかのビジュアルを次に示します: https://goo.gl/Y0ohZC
前もってありがとう、IC
c# - .net ソケット サーバー内の既存のコードを Asp.net REST Web API に移行するにはどうすればよいですか?
ロジックをリアルタイム .NET ベースのソケット サーバーから RESTful ベースの ASP.net Web API に移行しようとしています。その理由は、ゲームの設計が変更され、ソケット サーバーでリアルタイム処理を行う必要がなくなったためです。
移行するには、次のことを行う必要がありますが、Asp.net の経験がないので、誰かが私を正しい方向に向けることができれば幸いです。
1) ソケット サーバーでは、プレーヤーが接続を確立すると、そのプレーヤーのすべてのデータをデータベースから Player クラスのインスタンス (プレーヤーのインベントリなど) に読み込みます。サーバー側の接続オブジェクトでこのインスタンスを維持し、tcp ソケット接続が有効である限り、この Player オブジェクトは、プレイヤーのデータを保持するメモリ内のキャッシュのような役割を果たします。しかし、この Player インスタンスを Asp.net Web API に配置するのに相当する場所がわかりません。これはセッション状態になりますか?
2) ゲームには、武器のダメージ量など、接続されているすべてのクライアントが利用できる静的データがあります。このデータをデータベースからサーバーのアプリケーション インスタンスの StaticData オブジェクトに読み込みます。Asp.net Web APIでアプリケーション全体のデータを保持する場所は何ですか?
3) 私たちは MVC アーキテクチャを使用しておらず、現在、クライアントとサーバーの間で通信する方法は、リクエスト (アイテムの販売など) を行い、サーバーがリクエストを検証して処理し、シリアル化して更新された状態をクライアントに送り返すことです。更新されたデータを object[] 配列に格納します。asp.net MVCでは多くのことが「自動」であり、asp.netで「サーバーにリクエストを送信->サーバープロセスと更新された状態を送り返す->クライアントが状態を逆シリアル化する」ことと同等のものと思われますウェブAPIの世界?
.net - Akka.NET + Photon サーバー
Photon ServerでAkka.NETを使用することは可能ですか?
これに関する情報が見つかりません。
このソリューションのスケーラビリティは? Akka + Scala ゲーム サーバーに関する記事がいくつか見つかりましたが、Photon + Akka の互換性に関する記事はありません。
unity3d - Unity でフォトンを使用して転がるボールにカメラを追従させる方法
Unity で photon を使用してマルチプレイヤー ゲームを作成しました。プレーヤーは転がるボールです。各プレーヤーにカメラを設定したいのですが、ボールの子にすることはできません。それ以外の場合は回転します。フォトンがなければカメラのスクリプトで動作しましたが、マルチプレイヤーではカメラが転がるボールに追従しません。どうすれば修正できますか?
networking - Unity と Photon Networking - 他のプレイヤーを待つ
現在、フォトン ネットワーキングを使用してマルチプレイヤー オプションをユニティ ゲームに統合しようとしています。ただし、いくつか質問があります。Unity の新しい GUI システムで GUI を作成しました。私は OnGui をまったく使用していません。私がやろうとしているのは、ユーザーに部屋を作成させることです。ルームを作成した後、ユーザーは、他のプレイヤーが参加するのを待つある種の「待合室」にリダイレクトされます。そのようなことはどのように行われますか?すべてのチュートリアルは基本的に、ゲームに飛び込む方法を隠しているだけです。しかし、私がやりたいのは、この「待合室」の中に彼らを集めて、最大プレイヤー数に達したら (シーンを切り替えて) ゲームを開始することです。
エディターでルームを作成できます。また、ラップトップでテストできるようにビルドも作成しました。update() 内のすべての部屋を表示しようとしました。しかし、部屋を作成したにもかかわらず、部屋がまったく表示されません。
私は何かを見逃していると思います、何かヒントはありますか?
ありがとう!
c# - サブサーバー(ログイン)をマスターサーバーに登録 - Photon Server -CJR Gaming MMO Framework
Photon Server を使用した MMO 開発に関する Christian Richards のチュートリアルに従っています。それが何であるかを知らない人のために説明すると、MMO タイプのアーキテクチャを使用して、フォトン フレームワークをゼロから書き直すことを本質的にカバーしています。回避策または修正を見つけた多くの問題に遭遇しましたが、このエラーには困惑しています。サーバーが起動し、プロキシ サーバーとログイン サーバーをロードした後、次のエラーが発生します。サーバーは正常に起動し、正常に検索されますが、サブサーバーを登録しようとするとすぐに、プロキシ ログにこのエラーがスローされます。
プロキシ サーバー ログ:
2015-07-22 14:56:10,892 [1] INFO Photon.SocketServer.ApplicationBase [(null)] アプリケーション停止: AppId=Proxy
2015-07-22 14:57:01,913 [1] INFO Photon.SocketServer.ApplicationBase [(null)] - アプリケーションの開始: AppId=Proxy; AppPath=C:\Photon\deploy\ComplexServer、タイプ=ComplexServer.ComplexProxyServer
2015-07-22 14:57:01,968 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - AverageCounter の作成: Name=''
2015-07-22 14:57:01,977 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - NumericCounter の作成: Name=''
2015-07-22 14:57:01,986 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:01,993 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:02,001 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - NumericCounter の作成: Name=''
2015-07-22 14:57:02,008 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:02,017 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - NumericCounter の作成: Name=''
2015-07-22 14:57:02,026 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:02,035 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:02,043 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - NumericCounter の作成: Name=''
2015-07-22 14:57:02,051 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:02,058 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - CountsPerSecondCounter の作成: Name=''
2015-07-22 14:57:02,066 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - NumericCounter の作成: Name=''
2015-07-22 14:57:02,084 [13] DEBUG Photon.SocketServer.ApplicationBase [(null)] - OnInit - ConnID=2、ポート 4520 の IP 127.0.0.1、タイプ = TCPListener
2015-07-22 14:57:02,108 [13] DEBUG Photon.SocketServer.Protocol [(null)] - アプリケーション マスター、クライアント バージョン 3.0.5、プロトコル GpBinaryV2 バージョン 1.6 の解析済み初期化メッセージ
2015-07-22 14:57:02,120 [11] DEBUG MMO.Photon.Application.PhotonConnectionCollection [(null)] - 初期化リクエストを受信しました 127.0.0.1:4520 - Photon.SocketServer.InitRequest
2015-07-22 14:57:02,127 [11] DEBUG MMO.Photon.Application.PhotonApplication [(null)] - サブサーバーからの初期化要求を受け取りました
2015-07-22 14:57:02,154 [11] DEBUG Photon.SocketServer.ApplicationBase [(null)] - OnInit - SendResult Ok で ConnId 2 に送信された応答
2015-07-22 14:57:02,331 [7] エラー Photon.SocketServer.ApplicationBase [(null)] - System.NotImplementedException: メソッドまたは操作が実装されていません。MMO.Photon.Application.PhotonRequest.MMO.Framework.IMessage.get_Code() c:\Programming\SoftwareDevelopment\C#\MMO\MMO.Photon\Application\PhotonRequest.cs:line 48 at MMO.Photon.Server.PhotonServerHandlerList .HandleMessage(IMessageメッセージ、PhotonServerPeerピア) c:\Programming\SoftwareDevelopment\C#\MMO\MMO.Photon\Server\PhotonServerHandlerList.cs:MMO.Photon.Server.PhotonServerPeer.OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters)の140行目c:\Programming\SoftwareDevelopment\C#\MMO\MMO.Photon\Server\PhotonServerPeer.cs:36行目 Photon.SocketServer.ServerToServer.ServerPeerBase.OnReceiveInternal(Byte[] data,
*ご覧のとおり、サブサーバーを登録しようとするまで、初期化応答/要求をメインサーバーとログインに適切に送信します。以下の Login.log を観察し、「サブ サーバーの登録」のタイム スタンプを比較すると、ログイン サーバーがサブ サーバーの登録を試みてからほぼ 1 秒後に上記の例外がスローされることがわかります。
2015-07-22 14:56:10,845 [1] INFO Photon.SocketServer.ApplicationBase [(null)] - アプリケーション停止: AppId=Login 2015-07-22 14:57:01,541 [12] DEBUG Photon.SocketServer.ServerToServer .TemporaryServerPeer [(null)] - OnOutboundConnectionEstablished: 初期化要求の送信 2015-07-22 14:57:01,541 [1] DEBUG MMO.Photon.Application.PhotonApplication [(null)] - 127.0.0.1:4520 2015 でのマスターへの接続-07-22 14:57:01,584 [1] INFO Photon.SocketServer.ApplicationBase [(null)] - アプリケーションの開始: AppId=Login; AppPath=C:\Photon\deploy\ComplexServer, Type=LoginServer.LoginServer 2015-07-22 14:57:01,592 [12] DEBUG Photon.SocketServer.ServerToServer.TemporaryServerPeer [(null)] - SentInitRequest: ConnID=2, ChannelId =0, result=Ok サイズ=41 バイト 2015-07-22 14:57:02,157 [13] DEBUG ExitGames.Diagnostics.Counter.CounterBase [(null)] - AverageCounter の作成:
次のコードは、関連するクラスと思われるものからのものです。
PhotonRequest クラス:
PhotonServerHandlerList クラス:
IMessage インターフェイス: