タグ付けされた質問 「multiplayer」

複数のプレイヤーが協力的または競争的に、ローカルまたはリモートでプレイします。

2
オープンソースのマルチプレイヤーゲームの収益モデル
私はマルチプレイヤーゲームのアイデアを持っています。理想的には、それをオープンソースにしたいのですが。 しかし、私はそれから利益を上げて、より多くのゲームを作ったり、開発チームを作ったりすることもできるようにしたいと思っています。 オープンソースを維持して収益を上げることは可能ですか? 私が持っていた1つのアイデアは、オンラインマルチプレーヤーサービスに課金することですが、ユーザーは自分のサーバーにパッチを適用することで簡単に回避できます。 この種のゲームプロジェクトで機能する収益モデルはありますか?

2
マルチプレイヤーレースゲームでのプレイヤー間の衝突
私は、p2.js、フェイザー、node.jsを使用して、シンプルなレーシングゲーム(宇宙船、無重力)を作成しています。 私がしたこと:クライアントはサーバーから世界の状態を受け取ります: サーバーからの最新の速度/位置に基づいて他のプレイヤーを推定する クライアント側の予測が正しいかどうかを確認します-サーバーからの適用位置がなく、サーバーが認識していなかった入力を処理します。 固定物理ステップ サーバ: クライアントから入力を受け取り、適用する 固定物理ステップ 各クライアントに世界の状態を送信します 現在、プレイヤー同士の衝突に苦労しています。衝突しているプレイヤーは、衝突中に常にジャンプしています。クライアント側の予測がサーバーと同様の結果を計算していないためだと思います。 サーバーはプレーヤーからのすべての入力を認識していません(ラグ)。 プレーヤーとサーバーが衝突しているプレーヤーの位置が異なります(ラグ)。 この2つを組み合わせると、クライアントはサーバーとは異なる衝突を解決し、世界の状態が到着したときにプレーヤーは大きな修正を行う必要があります。

2
Unity3dを介して新しいc#スクリプトを追加するときにVS soution Explorerを強制的に再読み込みしますか?
私はC#スクリプトを作成する(ときCreate -> C# Script)を介しUnity3d やからそれを削除Unity3d- Visual Studioショー私の警告ウィンドウ。 気に障る。 ウィンドウなしでソリューションエクスプローラーで「ReloadAll」を強制する方法はありますか?
8 unity  visual-studio  unity  google-play-services  google-play  physics  simulations  c#  unity  raycasting  unity  virtual-reality  savegame  arcade  c++  steam  ios  objective-c  databases  storage  opengl  vbo  vao  libgdx  scene2d  unity  animation  c#  path-finding  roguelikes  opengl  c++  glsl  2d  physics  phaser  selection  3dsmax  unity  collision-detection  c#  tilemap  isometric  unity  c#  2d  sprites  mouse  scripting  grid  c#  unity  libgdx  java  unity  playstation4  c#  c++  directx  dll  c++cli  libgdx  overlap2d  multiplayer  node.js  websocket  animation  unity  textures  unity  terrain  physics  unity  rotation  movement  transformation  monogame  windows  installer  shaders  unity  virtual-reality  unity  performance  frame-rate  profiler  google-play  appstore  trademark  java  android  libgdx  unity  unity-networking  unity  physics  software-engineering  unity  savegame  physics  2d  unity  unity  c#  unity-networking  textures  geometry  unreal-4  3d-modeling  java  android  libgdx  android  collision-detection  libgdx  rotation  legal  localization  patents  opengl  cubemap  sampler-state  2d  transformation  unity  c#  opengl  glsl  lighting  opentk  c++  collision-detection  physics 

1
シンプルなRPGゲームサーバーを作成するにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 4年前休業。 私はSprite Kitゲームに取り組んでいます。私はそれを真のマルチプレイヤーゲームにしたいと思います。つまり、ゲームに参加する各人が自分のカメラを持っているということです。プレイヤーが同じゲーム画面を共有するマルチプレイヤーゲームのチュートリアルを見てきましたが、それは私が望んでいることではありません。 プレイヤーが接続するサーバーが必要であることを理解しています。つまり、プレイヤーが接続する「世界」はサーバー上で実行されている必要があります。これは正しいです? このゲームの「ワールド」を実行しているサーバーをどのようにして使用しますか?特定のタイプのサーバーである必要がありますか、それともNode.jsやその他の必要なものを使用できますか?

3
2人のレーシングプレーヤーの同期を保つにはどうすればよいですか?
私は、テンプルランのマルチプレイヤーバージョンのように、Unityモバイルゲームに取り組んでいます。モバイルプラットフォームが原因で、ネットワークのレイテンシが変動している(通常は200〜500ミリ秒)ように見えます。 2人のプレイヤーキャラクターは同じパスに沿って走っているように示され、障害物を通過するために単純なアクション(ジャンプ、スライド、パワーアップなど)を実行する必要があります。 メッセージが遅れると、ゲームはリモートプレイヤーが障害物を通過したと見なします。これは通常はうまく機能しますが、プレイヤーが障害物によって殺された場合、リモートプレイヤーがローカルプレイヤーと同じ障害物/位置で死んでいるように見せたいです。レイテンシが原因で、リモートプレーヤーは、死を告げるメッセージが届く前に障害物を越えたように見えます。 プレーヤーの同期を維持するにはどうすればよいですか? 死のメッセージが届いたらすぐにリモートプレーヤーをローカルプレーヤーの死の位置に戻してみました。視覚的に不自然に見え、他の同期の問題が発生する可能性があります。

4
マルチプレイヤーゲーム1vs1でのクライアントサイドの不正行為
私は単純なカードゲームを開発しています。そこでは、他の人間のプレイヤーに対してあなたを置くマッチメイキングシステムがあります。これは、使用可能な唯一のゲームモードであり、他の人間に対する1vs1であり、AIはありません。 不正行為をできるだけ防ぎたいです。私はここで同様の質問をたくさん読んだことがあり、クライアントを信頼できないこと、そしてすべての検証をサーバー側で行わなければならないことをすでに知っています。私はサーバー(とにかくマッチメイキングに必要)を用意し、サーバー側で検証を行うつもりですが、サーバー側のすべてを確認したい場合、これにより、サーバーは現在のすべてのゲームの状態を追跡でき、すべてのアクションを確認してください。そのサーバーをサポートするための資金やインフラがありません。 私の考えは、クライアントに対戦相手が行ったアクションの一部をチェックおよび検証させ、違法なアクションを見つけた場合は、サーバーに不正行為を通知し、サーバーにそれを検証させることです。これでもサーバーは現在のすべてのゲームを追跡する必要がありますが、クライアント側ではチェックできないいくつかの項目(デッキのカードの順序など)のみをチェックし、実際には間違っている場合にのみ他の項目をチェックするだけで、リソースを節約できます。 *(不正行為を許可せずにチェックできる人のみ!たとえば、プレイしたカードが手元にあるかどうかを確認できないため、手元にあるすべてのカードを知る必要があります) 要約すると、私の質問は:これは実行可能なアプローチですか?これを行うリソースを実際に節約するのでしょうか、それともこのメッセージを交換するためのサーバーとクライアントの余分な複雑さは価値がないのでしょうか?同様のアプローチを成功または失敗させたゲームを知っていますか? 読んで答えてくれてありがとう

4
状態の差分(デルタ)と信頼できない接続の送信
私たちはリアルタイムのマルチプレイヤーゲームを構築しています。このゲームでは、各プレイヤーがゲームループの反復ごとにその状態を報告する責任があります。 状態の更新は、信頼できないUDPを使用してブロードキャストされます。 状態データの送信を最小限に抑えるために、デルタ(変更された状態データに関係なく)のみを送信するシステムを考え出しました。 ただし、パケットが失われると他のプレイヤーがデルタを受信できなくなり、ゲームが予期しない動作をするようになるため、この方法には欠陥があります。 例えば: 状態は次の要素で構成されていると想定します:{positionX、positionY、health} Frame 1 - positionX changed --> send a packet with positionX only. Frame 2 - health changed // lost ! Frame 3 - positionY changed --> send a packet with positionY only. //他のプレイヤーは健康状態の変化について知らない。 では、どうすればこの問題を克服できるでしょうか?データ全体を送信することは常に可能であるとは限りません。

3
オンラインマルチプレーヤーはどのくらい重要ですか?
私は4人のプレイヤーが参加する小さなゲームを作っています。ローカルで1人または2人のプレーヤーでプレイでき、残りのプレーヤーはAIで制御されます。 私はオンラインプレイを検討していますが、それについてはほとんど知りません。そのため、多くの調査と取り組みが必要になります。自分のエンジンを使用しているので、自分で実装する必要があります。少なくとも無料のライブラリを探してそのAPIを学び、おそらくそれを機能させるために私のデータ構造とメソッドのいくつかを再配置します。次に、ロビー画面とおそらくバックエンドのものを実装する必要があります(PHPの経験は少しありますが、多くはありません)。 私の質問は、それは本当に価値があるのですか?もちろんあるといいのですが、最近プレイヤーは期待していますか?予算の大きいゲームで期待されていると思いますが、小さなインディーゲームはどうでしょうか。

1
OpenGLで頂点を描画する最も効率的な方法
私はOpenGL 3Dゲームを書いています。地形や使用中のオブジェクト用の多数の三角形があります。 私はOpenGL公式ガイドから勉強していて、最初に提示された方法は、描画したい各頂点のglVertex後に関数を呼び出すglBeginことです。 ただし、何千もの三角形を描く必要がある場合、この方法はかなり古くて非効率的です。各フレームで変化しない情報をグラフィックカードのメモリに保存する方法があるので、各フレームをレンダリングすると、その情報はすでにそこにあります。より「不安定な」情報については、おそらくフレームごとに新しい頂点データを送信する必要があるため、別の手法の方が効率的かもしれません。 私の質問に来ます:頂点情報をハードウェアに送信し、レンダリングするための指示を与えるために使用される最も近代的で効率的なOpenGL関数と技術の明確な説明をお願いします。 フレーム中にめったに変化しない頂点データをレンダリングするための順序を送信するための最良の方法とOpenGLツールは何ですか(私は地形とオブジェクトについて考えます)、フレーム中に大きく変化する頂点データを送信するための最良の方法は何ですか?

3
サーバーがタイルベースの領域のみをクライアントに送信することは可能ですか?
はじめに、私はネットワーキング(ハードウェア、ルーターなど)については十分な知識を持っていますが、ネットワークプログラミングの基本的な知識はほとんどありません。これは馬鹿げた質問のように思えるかもしれませんが、自分のゲームでのマルチプレイヤーの実装を理解しながら、自分が何に興味を持っているのかを知りたいのです。 シンプルな2D配列によって生成されるタイルベースの世界を作成しています。簡単にするために、World [100] [100]のようなものを考えてみましょう。 現在、renderメソッドは、ウィンドウの解像度と1つのタイル(移動中のスムーズなレンダリング用)に基づいてタイルのみをレンダリングします。世界がどれほど大きい場合でも(10x10、1million x 1million)、レンダリングのパフォーマンスは完璧です。 ゲームプレイでは、現在表示されているもの(画面+1にレンダリングされたもの)と、おそらくプレーヤーの周囲の領域にあるタイルのいくつかの情報を知るだけです。 したがって、サーバーから送信されるものはすべて、完全なタイル情報にはなりません。例 地面、地面のタイプ、木などの上に置かれるアイテムは、プレーヤーの視野の外側の領域では重要ではなく、クライアント/プレーヤーがそれらのタイルについて知っておく必要があることだけです。(例:プレーヤー[キャラクターまたはプレーヤー]がレンダリングビューのタイルを超えていることをプレーヤーが知ることができるUltima Onlineの「着信名」。) 私はネットワーキングについてあまり知らないので、おそらくこれを知って、これが私の質問に答えるかもしれません。しかし、これが実現可能な解決策なのか、あるいはアイデアが単に笑えるものなのか、私は興味があります。 送信される情報は、タイルの約10x15の領域であり、各タイルはタイルの内容に関する情報を保持します。より効率的には、すべてがオブジェクトであり、タイルはタイル上のすべてのオブジェクトを保持します。例 Tile [4] [4]は、Sword#23452、Rock2、Tree5、Player3、Monster4を保持します。 初期化/ロード中にまだロードされていない場合、空のタイルは地形タイプ[草、砂、水]のみを送信します。一部のタイルには、少数のオブジェクトがあります[Tree2、Sword#924、Gold、Corpse、Rock3]。 したがって、クライアントが主にロードする必要のあるテクスチャとそれを画面に配置するために配置する必要があるため、タイルがサーバーからクライアントに送信する情報が非常に多いとは思えません。クライアントにレンダリングするように指示するファイルのリストでは、位置は2つの整数のみであり、テクスチャは1つの整数です。 最悪の場合、サーバーは150個のタイルに少数のオブジェクトOnLOADの情報のみを送信し、それ以降は更新によってタイル(存在する場合)と新しいタイル(プレーヤーが方向に移動するたびに10から15)への変更のみを送信します。 )と画面上のキャラクターの移動方向(クライアントがタイル間のスムーズな移動をシミュレートできるようにするため)。 これはインターネットまたはピア間で送信される信じられないほどの量の情報であると私は思っているので、私は正しいと思います。それとも、ネットワーキングについてあまり知らないので、ようやくマルチプレーヤーネットワーキングに関する本を開くことに取り掛かったとき、私の心は打たれるでしょうか。 クライアント/サーバー間で送信される情報の量が非常に少ない場合、初期化時に全世界を単にロードする方が理にかなっていますか?または、世界が大きすぎる場合は「マップ」。そして、LOADの後、更新されたタイルのみを送信しますか? どうすれば具体的なデータの扱い方を考えているのか。私が参照として使用している本では、オブジェクトを追加および削除するリンクリストが必要なので、すべてがboolです。「キャラクターはいる?木はある?」 オブジェクトを保持するコンテナーや、レンダリングするものをクライアントに伝えるために必要なものだけを送信するサーバーロジックなど、別のアプローチを考えていました。おそらくそれ自体の内部にネットワーク情報を保持するオブジェクトがあり、サーバーから呼び出されたときに送信されます。

1
マルチプレイヤーゲームのタイムステップ
サーバー/クライアントマルチプレーヤーエクスペリエンスを作成するというコンセプトに頭を悩ませています。 私の問題は主にタイムステップに関連しています。次のシナリオを検討してください。 クライアントはサーバーに接続します。クライアントは入力をサーバーに送信して、移動したいことを示します。サーバーは入力をシミュレートし、ゲームの世界におけるそのクライアントの位置を決定します。 クライアントとサーバーの両方が異なるタイムステップで実行されているため、すべてのクライアントがサーバーと同期するように正確にシミュレーションするにはどうすればよいですか?私のサーバーは現在30msのタイムステップに設定されています。クライアントの移動を処理するとき、潜在的に何百ものリクエストが処理されるのを待っていますが、各リクエスト間の時間を示す方法はありません。 すべてを同期させるために、時間に基づいてサーバー上で適切にシミュレートする方法を本当に理解していません。

3
ハッキングされたサーバーがマスターサーバーになりすますのを防ぐ方法は?
プレイヤーが対戦をホストし、ホスト(つまり、権威のあるサーバー)として機能するルームベースのマルチレイヤーゲームモデルをセットアップしたいと思います。プレイヤーのアイテム、ランク、現金、経験値などを追跡するマスターサーバーをホストしたいと思います。 このようなモデルで、ゲームをホストしている(変更されたサーバーで)誰かが無効な一致結果でマスターサーバーをスプーフィングして、exp、お金、またはランキングを取得することを防ぐにはどうすればよいですか。 ありがとう。-コーディ

4
マルチプレイヤーの競争ゲームのバランスをどのようにとりますか
私はゲーム開発への最初の取り組みを検討しています。限られたマルチプレイヤーゲームでのゲームバランシングについて、皆さんが考えているかどうか知りたいです。 私が念頭に置いているゲームには、目標を達成する必要がある中立的なプレイヤーが含まれています。 、他の人たちはそれらを阻止しようとしますが。 神々のバランスをどのように確保できるかについての考えや指針はありますか? 拡大したいのなら、私はそれを終える前にゲームプレイの多くを与えたくなかったでしょう。


3
マルチプレイヤータイルベースの動きの同期
私はインターネット上で複数のプレイヤーの動きを同期させなければなりません、そしてそれを行うための最も安全な方法を見つけようとしています。 ゲームはタイルベースで、4方向にしか移動できません。移動するたびにスプライトが32ピクセル移動します(もちろん時間とともに)。さて、この移動アクションをサーバーに送信し、すべてのプレーヤーにブロードキャストする場合、ウォークキーを押し続けている間、ウォーキングを続けるには、次のコマンドを実行してサーバーに送信する必要があります。そして、すべてのクライアントにとって、時間内に、または動きはもはやスムーズではなくなります。私はこれを他のゲームで見ました、そしてそれはラグがなくてもかなり醜くなります。だから私はこれが実行可能なオプションでさえあるのだろうかと思っています。これはシングルプレイヤーにとって非常に優れた方法のようですが、簡単で簡単です(次の移動アクションを時間内に実行してリストに追加するだけです)。マウスの移動を簡単に追加できます(タイルをクリックする)。キューへのパスを追加するために、それは歩きました。 私の頭に浮かんだもう1つのことは、誰かがどこかの方向に動き始めたという情報を送り、もう一度彼が停止または方向を変えたときに、位置とともにスプライトが正しい位置に表示されるようにするか、位置が間違っている場合は、位置を修正できます。これは(うまくいけば)誰かが本当に遅れている場合にのみ問題を引き起こすはずです。その場合、それは予期されることです。これがうまくいくためには、何らかの方向のキューが必要です。ここで、着信方向の変更やものが保存され、スプライトが次のタイルへの現在の移動が完了した後、どこに行くべきかがわかります。これは実際には機能するかもしれませんが、ちょっと複雑すぎるようです。これを行う唯一の方法かもしれませんが、吃音のリスクはありません。停止または方向変更がクライアント側で受信された場合 sはキューに保存され、charは停止または方向を変更する前に、指定された座標に移動し続けます。もちろん、新しいコマンドが遅すぎると、どもりも発生します... 私は方法を決めるのに苦労しており、まだこれに関する例を見つけることができませんでした。私の主な問題はタイルの動きをスムーズに保つことです。そのため、ピクセルベースの動きの同期に関する他のトピックがあまり役に立たないのはこのためです。 これを行う「標準的な」方法は何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.