3

デスクトップ ベースのゲームをコーディングしたい場合は、XNA コードと UDP ソケットをプルして、適切なマルチプレイヤー ゲームを作成できます。必要なゲームのコーディング方法が非常に明確になります。

しかし、ブラウザベースのオンライン マルチプレイヤー ゲームをコーディングしたい場合、どうすればよいでしょうか? XNA を使用することはできません....いくつかの質問を見てきましたが、代替言語として PHP と ASP.NET と Silverlight と Flash と Java を見ています...どのように機能するのか本当にわかりません. つまり、デスクトップ ベースのゲームの場合、UDP ソケットを開き、クライアントを受け入れてデータを転送し、プレーヤーの状態を更新し、XNA を使用して結果を描画します。しかし、ブラウザでは、どのようにソケットなどを開くのでしょうか? そのコンセプトはどのように機能し、Web ブラウザーを介してリアルタイムで人々と通信しますか。方向性は?私は C# に精通しており、Java にはある程度慣れています。Flash、ASP.NET、または Silverlight を実行したことはありません。

4

6 に答える 6

4

パラダイムは少し異なります。ブラウザベースのゲームでは、ゲームの状態はサーバーに保存され、計算されます。ユーザーに表示されるのは、この 1 つのゲーム ステートからデータを取得するユーザー インターフェイスだけです。

プレイヤー 1 は 34,29 の位置に宇宙船を持っています。彼は前進し、35,30 に進みます。これは、AJAX などでサーバーに送信されます。他のプレイヤーが Web サーバーに他のプレイヤーの場所を照会すると、この変更が表示されます。これを行うには、この場所をそのサーバーのどこかに保存する必要があります。

Google ドキュメントと Microsoft Word の違いについて考えてみてください。1 つはドキュメントをコンピュータに保存し、もう 1 つはオンラインでドキュメントを保存し、遠く離れた HTTP サーバーと対話しているだけです。

于 2010-06-30T18:31:45.070 に答える
2

UI については、Silverlight または Flash で最良の結果が得られ、次に Java が続きます。マルチプレイヤーのやり取りに関しては、UDP/ソケット通信ではなく、Web サービスを使用してデータを送受信できます。

既に C# に精通しているため、その知識を Silverlight と Web サービスの両方で活用できるため、習得する必要がいくぶん少なくなります。

于 2010-06-30T18:31:31.793 に答える
0

ブラウザベースのゲームとほぼ同じ数のソリューションがあります。Flash でできます。おそらく php と ajax で可能です。いつでも Java を使用できます。それは、あなたがすでによく知っているものに依存します。

于 2010-06-30T18:28:04.773 に答える
0

HTML5のWeb ソケットを参照してください。作成したいゲームの種類によっては、Canvas を使用した純粋な HTML5 と、JQuery などの JavaScript ライブラリが必要な場合があります。

于 2010-09-03T11:42:45.793 に答える
0

デスクトップ ゲームをプログラムする場合、ゲームはプレーヤーのコンピューターにあります。Web ブラウザー ベースのゲームをプログラムする場合、ゲームはプレイヤーのコンピューターではなく、サーバーにあります。プレイヤーがブラウザで見ることができるのは UI だけです。そのため、ゲームのすべてのロジックをサーバー側でプログラミングし、クライアント側ではインターフェースのみをプログラミングする必要があります。

ブラウザーを強化されたモニターのように考えると役立ちます。

そして、UDP/ソケットについて... Webアプリにはそのようなものはありませんが、AJAXまたはFLASHを介して非同期リクエストを引き続き使用できます(フラッシュが非同期を実行できるかどうかはよくわかりませんが、ボットはできると思います)。

したがって、フローの代わりにkeyboard -> program -> monitorフローがありますkeyboard -> browser-scripts -> AJAX request -> server-scripts -> monitor

于 2010-06-30T18:44:36.777 に答える
0

あなたは C# に精通しており、Java にもある程度精通しているため、クライアント側コード (ブラウザーで実行される) にはUnity3Dを、サーバー側コードには SmartfoxServer を使用することをお勧めします。

Unity3Dは、ブラウザーで実行されるゲームの作成に使用できる強力なゲーム エンジンです。Javascript または C# を使用してゲームをコーディングできます。SmartfoxServerは、通信用のシンプルで柔軟な API を提供する Java で書かれたマルチプレイヤー ゲーム サーバーです。

両方を組み合わせることで、素晴らしい 2D/3D マルチプレイヤー ゲームを作成できます。

于 2010-08-29T22:02:32.743 に答える