問題タブ [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.

0 投票する
2 に答える
4893 参照

objective-c - GameCenter招待ハンドラー

マルチプレイヤーを実装しようとしています。GameCenterのサンプルを使用する-データの送受信

すべて問題ないようですが、Appleのドキュメントには、招待ハンドラーについても記載されています。

問題は非常に単純です。このコードをどこに追加すればよいかわかりません。

0 投票する
2 に答える
1162 参照

iphone - iPhone マルチプレイヤー ゲーム デザイン

多くの記事を検索して読み、GKTank アップル サンプルを見ました (問題の詳細はわかりません。発生したイベントを処理しているようです)。

ブルートゥース/インターネットを介したマルチプレイヤーゲームで(おそらく)、レイテンシーなどを考慮して正しいゲーム結果が得られるように、プレイヤーのやり取りをどのように同期しますか...

例えば:

Bluetooth 経由で接続された 2 つの別々のデバイスの各プレーヤー A と B にボタンが表示されます

プレーヤー A がボタンを押す (プレーヤー A はゲームをホストしているため、遅延は問題にならない) プレーヤー B はプレーヤー A の直前にボタンを押すが、プレーヤー A のデバイスへの接続には少なくとも 200 ミリ秒のネットワーク遅延がある

問題: ゲームは、プレーヤー A のタッチ要求が最初にゲーム コードに到達する場合でも、プレーヤー B が最初に押されたことを知る必要があります。つまり、ホストしているプレーヤーには利点がありません。

タッチイベントにタイムスタンプがあることはわかっているので、プレスの実際の時間がプレーヤーBからゲームコードに送信されたことを確認できます...しかし、それが正しいアプローチであるかどうか、そしてそこからどこへ行くべきかはわかりません. .

答えは、タッチがすぐに処理されるのではなく、ゲームサイクル内で処理されるゲームの時間サイクルにあると思います...

これに関するヘルプ、またはこれを処理するチュートリアルまたは特定のソースコードへのポインタをいただければ幸いです。

アダム

0 投票する
0 に答える
429 参照

networking - iOS 開発: 多くのユーザーにリーチするには、GameCenter の使用をお勧めしますか? パフォーマンスに関する質問ですか?

マルチプレイヤー コンポーネントを含む iOS 用のシンプルなゲームの計画を開始しました。Game Center をざっと見てみると、それが提供する機能は、私が計画したものとぴったり合っているように思えます。

ネットワークの確立、サーバー コードの開発、さまざまな iOS デバイスとのサーバー通信の心配などを担当するよりも、これを使用して開発する方がはるかに簡単です。

しかし、一見、少しレベルが高いように見えます (私の好みにはレベルが高すぎるのでしょうか?)。私は、これほど簡単に見えるものに慣れていません (特に、オンライン マルチプレイヤー ゲームのように複雑なものの場合は、実装が単純であっても)。マルチプレイヤー コンポーネントをゼロから完全に開発するのではなく、これを使用した場合、パフォーマンスのトレードオフがどの程度になると予想されますか? (たとえば、マルチプレイヤー アクティビティは、1 ~ 2 秒ごとにお互いに小さなテキスト メッセージを送信するようなものだとしましょう)

さらに重要なことは、できるだけ多くの視聴者にリーチしたいということです。Game Center は 2G と 3G の iPhone、および第 1 世代の iPod touch では利用できないことを知っています。これらのデバイスのコレクションのユーザーベースは、それらを無視すると収益に大きな影響を与えるほど十分に大きいですか?

申し訳ありませんが、これらの質問はコードに直接関係していません (「無効な質問!」と叫びながら松明と熊手を持ってここに 5 人の SO 員が押し入ってくると予想する理由がわかりません)。そうなる前に答えを見つけてください。

0 投票する
3 に答える
14812 参照

networking - スムーズなマルチプレイヤーの動き

私はマルチプレイヤーロールプレイングゲームを開発しています(いいえ、それはMMORPGではありません。;)

私の現在の設定はこんな感じです。

クライアントはサーバーに「前進したい」/「後退したい」と伝え、サーバーはエンティティを更新し、エリア内のすべてのクライアントに変更について通知します。サーバーはまた、各エンティティを20ミリ秒ごとに更新し、100ミリ秒ごとにクライアントに更新を送信します。これらの更新には、位置、速度、回転などが含まれます。

これまでのところ良いのですが、クライアント側のパケット間の移動をスムーズにするための準備は何もありません。私はそれを機能させることができないと言わなければなりません。私は予測、補間、デッドリコニングについて読んでいますが、それはすべて私にとって大きな混乱です。

だから今、私は「Position = Packet.Position」のようなことをしているだけで、非常に吃音の動きを引き起こします。

だから、私が助けたいのは、どうすればよりスムーズな動きを得ることができますか?XNA予測サンプルを見てきましたが、正しく理解できませんでした。

ありがとう

0 投票する
2 に答える
1526 参照

ios - Game Center : マッチを見つけた後、マッチ デリゲートが呼び出されない

ゲームセンターを使おうとしています:マルチプレイヤー

これまで、プレイヤーは Game Center に対して認証を行っており、スコアやアチーブメントを送信/読み取りできます。マルチプレイヤー機能については、両方の方法を試しました: - Game Center インターフェイスを使用して一致を見つけます。- プログラムで一致を検索します。

どちらの方法でも、次の問題があります: マッチ デリゲートの match:player:didChangeState: メソッドが呼び出されません。Apple ドキュメントでは、1 人のプレイヤーが接続または切断された場合にこのデリゲートが呼び出されると記載されています。

私の場合、このデリゲートは呼び出されません。一歩足りないと思います。デリゲートの実装後 (apple doc で指定)。

また、一致を見つけるためのコード。

ご協力いただきありがとうございます。

0 投票する
1 に答える
5047 参照

erlang - マルチプレイヤーゲームサーバー

マルチプレイヤー ゲームの通信を管理するサーバー側アプリを作成したいと考えています (おそらく複数の単純なゲームで、ほとんどがターン制)。堅牢でスケーラビリティが高い必要があります。

私が持っているテクノロジーの可能性についてもう少し知りたいです。Erlang の経験がある人はいますか? サーバーを作成するのに、他の言語よりも多くの開発時間がかかりますか? それははるかに高速ですか、それとも他のものよりも優れたスケーラビリティを備えていますか?

どの言語が一番いいと思いますか?

0 投票する
2 に答える
6246 参照

android - Android/iOS ターン制ボードゲームのゲーム サーバー

私は現在 iPhone ゲームをプログラミングしており、オンライン マルチプレイヤー モードを作成したいと考えています。将来、このアプリは Android 端末に移植される予定なので、ゲームサーバーをどのように作成するのだろうか?

まず、どの言語を選択すればよいですか?Objective-C と Java で書かれたプログラムの両方とサーバーが通信できるようにするにはどうすればよいですか?

では、どうすれば効果的か?クライアントでソケットを開くとよいでしょうか (2 つあります)。サーバーにはどのような情報を送信すればよいですか? クライアントに?

御時間ありがとうございます。

0 投票する
2 に答える
1764 参照

iphone - マルチプレイヤー iPhone アプリを構築するには何が必要ですか?

私は現在、App Store 向けのマルチプレイヤー ゲームを構築したい小規模なスタートアップのためにいくつかの作業を行っています。基本的な考え方は、ゲームのユーザーが他の誰かがオンラインであるかどうかを確認し、2 プレーヤーのターン ベースのゲームに参加できるというものです。

私はこの種の経験がないので、その部分については責任を負いませんが、潜在的な採用者に尋ねる適切な種類の質問を知る必要があります. Apple は、私たちが達成しようとしていることのフレームワークを提供していますか? これをセットアップして維持できる人には、どのような経験が必要ですか? アカウントや統計などを管理するために SQL サーバーが必要になることはわかっていますが、それ以上のことはよくわかりません。

どのようにこれに取り組み始めますか?

0 投票する
2 に答える
866 参照

php - 小さなマルチプレイヤー ゲームに memcached/redis/alternative を使用してオブジェクトの位置を更新する

私は小さなマルチプレイヤー ゲームを作成しており、バックエンドとして php を使用しています。基本的に、オブジェクトの多くの位置を設定および取得する必要があります。この場合、1 つのオブジェクトは X/Y 位置を持つ 1 人のプレーヤーです。

リアルタイムで行う必要はありませんが、ターン制なので 5 ~ 20 秒ごとに行うとよいでしょう。ポジションは時々クライアントによって再設定されるので、データが失われてもかまいません。

memcached または redis でこれを行うことを考えていました。基本的に各プレイヤーは「キー」であり、このキーには関連する情報を含むオブジェクトが含まれますが、最も重要なのは X/Y 位置です。

おそらく私はこれを間違った方法で行っていますが、このアプローチは非常に簡単に実行できるように思えますが、これらのソリューションのいずれについても多くの経験がないため、うまく機能するかどうかはわかりません.

ここではおそらく 10 人のプレイヤーについて話していることを付け加えておきます。したがって、x/y 位置を持つ 10 個のオブジェクトを時々更新する必要があります。

このようにすることはできますか? memcached/redis よりも優れたソリューションはありますか? そうでない場合、これら2つのどちらがパフォーマンス的に優れているでしょうか? 私が理解していることから、それはほとんど同じことであり、redis がいくつかの機能を提供するだけです (これは必ずしも必要ではないかもしれません)。

ああ、はい、私はAPCとphpを明らかに使用しています。ありがとう!

0 投票する
1 に答える
3460 参照

google-app-engine - Google App Engine を使用したリアルタイム マルチプレイヤー ゲームは実現可能ですか?

現在、リアルタイムのマルチプレイヤー ゲームを開発しており、さまざまなクラウドベースのホスティング ソリューションを評価しています。App Engine が自分のニーズに合っているかどうか確信が持てません。フィードバックをお寄せいただければ幸いです。

要するに、私はシステムが次のように機能することを望んでいます。プレイヤー A はラウンド n を計算し、そのラウンドの最後にゲームの状態からハッシュを生成します。次に、そのラウンドのコマンドとハッシュを http POST としてサーバーに送信します。プレーヤー B も同じことを並行して行います。

サーバーは、プレーヤーからの POST を処理している間、最初に受信したハッシュ コードを memcache に書き込みます。他のプレイヤーからのハッシュがまだ memcache にない場合は、待機し、memcache で他のプレイヤーのハッシュを定期的にチェックします。両方のハッシュが memcache にあるとすぐに、それらが等しいかどうかが比較されます。それらが等しい場合、サーバーは各プレーヤーのコマンドをそれぞれ別のプレーヤーに http 応答として送信します。

このようなラウンドは約 0.5 秒続く必要があります。つまり、1 プレーヤーあたり 1 秒あたり 2 つのリクエストです。

もちろん、この方法は、実行中のアプリケーションのインスタンスが少なくとも 2 つある場合にのみ機能します。これは、2 つの要求を並行して処理する必要があるためです。また、メモリ キャッシュはすべてのインスタンスで一貫性があり、信頼性が高く、すぐに更新される必要があります。

制限されたネットワーク内でゲームを実行できるようにするため、XMPP を使用できません。そのため、ポート 80 の http に制限する必要があります。

アプリの 2 つのインスタンスが常に実行されていることを強制する方法はありますか? デザインに明らかな欠陥はありますか? このようなアーキテクチャは App Engine で機能すると思いますか? そうでない場合、どのクラウドベースのソリューションを提案しますか?