問題タブ [multiplayer]
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.
sockets - リアルタイムマルチプレイヤーゲームの実装にはどのような問題がありますか
ソケットを使用してマルチプレイヤーターン制ゲームを作成した経験はありますが、リアルタイム アクション ゲームを試みたことはありません。どのような追加の問題に対処する必要がありますか? 遅れたプレーヤーが過去に何かをした場合に備えて、プレーヤーのアクションの履歴を保持する必要がありますか? 本当に UDP パケットを使用する必要がありますか? それとも TCP で十分ですか? ほかに何か?
何を作るかはまだ決めていませんが、この質問の目的のために、XY 移動を伴う 10 人用の 2D ゲームを考えることができます。
networking - リアルタイム マルチプレイヤー ゲーム (コンセプトの質問)
マルチプレイヤー システムのアーキテクチャを説明しているように見える、Valve のこの記事を読んでいます。ドロップされたパケットを処理できるように、クライアントでレンダリングを数ティック遅らせているようですが、パケットを「デルタスナップショット」(隣接する 2 つの状態の差) として送信することもあります。
時間 A、B、C があり、クライアントが時間 A では正しいが、B でパケットをドロップし、C でパケットを受信するとします。時間 C での状態を正しく推定するにはどうすればよいでしょうか? C のパケットは状態 B と C の間のデルタのみを伝え (私が思うに)、クライアントは A の状態しか知りません。ここで何が欠けているのでしょうか?
ajax - サーバー側の変更なしでポーリングを必要としない ajax の代替手段はありますか?
小さくて基本的な「ajax」ベースのマルチプレイヤー ゲームを作成しようとしています。オブジェクトの座標は、PHP の「ハンドラ」によって与えられます。この handler.php ファイルは、ajax を使用して 200MS ごとにポーリングされています。
何も起きないときはポーリングする必要がないので、頻繁にポーリングしなくても同じことができるものはないのだろうか。例えば。Comet ですが、Comet 用にサーバー側アプリケーションを構成する必要があると聞きました。共有ウェブサーバーなので、それはできません。
クライアントで何も変更する必要がない場合、handler.php ファイルが応答を返さないようにすることもできますか? その場合も、何かがまだ変更されていないにもかかわらず、クライアントが無用に応答を要求することになります。基本的に、クライアントに何かを伝える必要がある場合にのみ、帯域幅とサーバーのリソースを使用する必要があります。オブジェクトの座標の変更。
flash - マルチレイヤ フラッシュ サーバーを計画する場合、どのような通信方法を使用するか
フラッシュマルチレイヤーサーバー(c++またはjava)を構築する予定です。フラッシュ領域から来ていません。しかし、私が読んでいるものから、フラッシュはソケットをサポートしていますが、これは私の場合ではありません。ブラウザのフラッシュゲームをサポートできるようにする必要があるため、http でポート 80 を残します。しかし、http で適切な通信アーキテクチャを実装するにはどうすればよいですかフラッシュプレーヤーがサポートしていることを感謝します
.net - ソーシャル マルチプレイヤー ブラウザ ゲームのアーキテクチャ (バックエンドの選択 + フロントエンドの選択 [flash/silverlight])
オンライン マルチプレイヤー ソーシャル ゲームの開発を考えています。世界の共有状態には、バックエンドで何か高速なものが必要になるため、考えられる解決策は次のようになります。
サーバー上の高速ゲームエンジン (例: c++ ) といくつかのフロントエンド言語 (php/python/ruby) + フラッシュ
Python のスタック全体 (ツイストまたはスタックレス Python を使用) + フラッシュ
.NET (asp.net または asp.net mvc) + フラッシュ
.NET + シルバーライト
最初の 1 つは、生産性の観点からやり過ぎかもしれません (3 つの異種層)
番号 4 はプログラマにとって天国かもしれません (すべてのレイヤーで共通の環境)。
- そのようなものは Silverlight で構築されたことはありません。
- Silverlight の設計者を見つけるのは難しいかもしれません
- SL フル OO アーキテクチャと比較すると、Flash ムービー/クリップ モデルが批判されていますが、仮想世界の余分な部分を外部のデザイナーが設計する場合、Flash ムービー/クリップ モデルは有利ではありませんか? 彼らは、例えば.swfを準備するだけです。4 つのフレームで 1 つのアイテムの 4 つのパースペクティブ - SL では難しくないですか?
- Silvelight にはいくつかのゲーム機能 (衝突検出など) が欠けているようです
どう思いますか?
[編集] ゲーム自体はより大きなポータルの一部になるため、エンジンを何らかの Web フレームワークと統合するとよいでしょう。
javascript - Wi-Fi をデモするマルチプレイヤー ゲーム
そのため、ドイツでは巨大な Wi-Fi システムが構築されており、通常はシステムにログインして Web を閲覧する必要があります。ギミックとして、マルチプレイヤー ゲームを追加して、通常のインターネット料金を支払うことなく、Web ベースのマルチプレイヤー ゲームをプレイできるようにしたいと考えています。どんなマルチプレイヤー ゲームを知っていますか。それは本当に2プレーヤーでなければなりません。Flash ができないので、JavaScript でプログラミングしたいと思います。
良いアイデアはありますか?たぶん、私が使用できる完成したゲームでさえありますか?
インスタント ゲームにしたいので、5 時間ごとにチェックしなければならないブラウザ ゲームはありません。
.net - マルチプレイヤーターンベースのSilverlightゲームのサーバー側
私は現在、Silverlightを使用したブラウザベースのゲームの設計の初期段階にあります。ゲームには2〜4人のプレーヤー(おそらく最大8人)の多くの試合があり、ターン制になります。
経験があるので、フロントエンドはSilverlight3.0です。私はバックエンドがどうあるべきかを理解しようとしています。ゲームはターンベースであるため、リアルタイムゲームほど頻繁にサーバーをポーリングする必要はありません。サーバーエンドには、クライアントとバックエンドの間で通信するある種の中間層が含まれます。バックエンドは、ユーザーアクション(攻撃、防御、移動、スキル、レベリングなど)に基づいて検証と計算を実行するac#ベースのWindowsサービスになります。
Silverlight 3.0クライアントとサーバー上のc#Windowsサービス間の中間通信レイヤーに関する次の長所と短所は何ですか。
- ソケット
- WCF/WCFデュプレックスサービス
- .NetRIAサービス
現在、上記の3つのオプションについては何も知りませんが、過去にASP.Net Webサービスを作成し、大学ではほとんど忘れていたソケットプログラミングを行いました。
javascript - AjaxHighscoresセキュリティ
私はjavascriptでタワーディフェンスゲームを作成していて、ハイスコアやその他のマルチプレイヤーインタラクションが必要です。おそらく、数人のプレーヤーが同時にゲームを開始し、他の人がどれだけ速く進んでいるか、そしてそのようなことを彼らに伝えてもらいます。
フラッシュゲームがスコアやイベントを送信して、各クライアントが送信している情報が実際に正しいことを確認する方法がわかりません。信じられないほどのスコアを送信している人だけではありません。数年前、フラッシュゲームのスコアが高くなり始めたとき、非現実的な(ハッキングされた)スコアを見るのは非常に一般的でした。それで、ここの秘密は何ですか?
iphone - GameKit を使用して iPhone bluetooth でクライアントからホストに通知する方法
2 つの iPhone/iPod が Bluetooth 経由で相互に接続してプレイできる GameKit Framework を使用して、マルチプレイヤー ゲームを作成しました。
どのデバイスが最初にプレイできるようになるかを選択する方法を考えています。したがって、論理的な解決策は、接続のホストを選択することです。GKSession にはサーバーとクライアントさえありますか? 彼らはすべて同輩ですか?必要なものを達成するには、どのルートをたどればよいでしょうか?