3

技術的な問題というよりも、アドバイスを求めているので、ここで質問しても問題ないことを願っています。

私は html5+js を使用してゲームを開発しており、私の目標はマルチプレイヤーにすることでした。これはダンジョン クロール ゲームであり、オンラインのすべてのプレイヤーと村にいるすべてのプレイヤーがお互いの様子を見て話し、パーティーを形成できるメインの村を作ることを目的としていますが、プレイヤーがダンジョンに入ると、彼らと彼らのパーティーは別のインスタンスになります。パーティサイズは最大4名。

私の意図は、WebSocket を使用し、C# でサーバーを作成することでした。問題は、IE が websockets をサポートしておらず、ブラウザの市場シェアの約 25% をまだ保持していることを発見したことです。

私の選択肢は、とにかく Websockets を使用して IE クラウドを排除するか、マルチプレイヤー サポートを中止することです。他の誰かが、ワールド データをデータベースに書き込んで、プレイヤーにフレームごとにそれを読み取らせ、そのように更新することを提案しました..それは恐ろしいことです。

Websockets を使用するか、他の方法で同じ取引を行うことができるように見えるこの socket.io を見つけましたが、これはサーバーの作成にどのように影響しますか? Websockets と socket.io の c# 実装を使用すると、IE ユーザーはサーバーと通信できますか?

または、私が知らないクライアントからサーバーへの通信を行う他の方法があるかもしれません。

正直に言うと、私はマルチプレイヤーのアイデアをやめたいと思っています! しかし、そうする前に、私がこれをどのように処理できるかについてアドバイスや経験豊富な提案を皆さんに求めます. お時間をいただきありがとうございます。この種の質問がここで大丈夫であることを願っています:)

4

2 に答える 2

2

Do not drop the multiplayer idea! It's way cooler with multiplayer. :)

Socket.io is a Server-Side JavaScript library. This means that you need Node JS server for it. IE users will be able to talk with Socket.io server, because it uses other protocols if WebSockets are not available. For example: FlashSocket or XHR long-polling. The last technique is available in every browser that supports XHR, but it is inefficient.

The greatest advantage of socket.io is the fallback. You can set it to start with any protocol (like WebSockets) and if the client does not support it, then it tries the others. It is really great, since you can use WebSockets (which will slowly but surely dominate web apps) and still work with browsers which do not support it, like IE or Opera or Safari. I don't know whether there is any other library with this advantage.

I don't know any library for real-time connections for C# (I'm not a C# developer), but it is unlikely that there are none (look at this question). Also note that real-time connections require a bit different server architecture then normal HTTP requests, so probably you will need additional server for handling them.

Also I think that neither nginx nor Apache handle WebSockets (without some hard core tricks) at the moment (but Node JS does!). I'm not sure though.

于 2012-05-21T14:40:51.383 に答える
0

トランスポートのような単純なことのために、プラットフォームごとに自分を閉じ込める理由はありません。これらのサポートは時間の経過とともに変化するため、可能な限りそれらから切り離したいと考えるでしょう。結局のところ、あなたはゲームを作っているのであって、ネットワーク技術のデモではありません。

Orbited/Orbited2 TCPSocket をご覧ください。サーバーは、好きな方法で標準 TCP として記述できます。これにより、ネイティブ クライアントを作成する場合の作業も楽になります。

于 2012-05-21T17:39:13.573 に答える