マルチプレイヤーゲームのための完全/半自律的P2Pネットワークがどのように実現可能でしょうか?

StackOverflow https://stackoverflow.com/questions/597303

  •  11-09-2019
  •  | 
  •  

質問

私は1つのマルチプレイヤーゲームをプレイするためのP2Pシステムを(ビットトレントは、ファイルのためのものですのような)の作成に取り掛かるだろうか上でじっくり考えてきました。アイデアは、マルチアーキテクチャからの伝統的なサーバーを削除することです。私は、サーバーのいくつかの並べ替えは、通信を開始し、アップデートなど世界を送信するために必要であることを理解し、私はあなたがサーバの負荷や帯域幅の圧力を軽減する方法をに興味があります。

ところで、これは右30+プレイヤーとFPSまでの2つのプレーヤーのチェッカーのゲームから、任意のサイズのゲームのために行く。

私はクレイジーだ?

役に立ちましたか?

解決

私は同じことを考えてきました。私は、システムがの中央コントローラを必要とせず、の配布されるべき分散長時間偏見を持っています。 MMOまたは類似のゲームとの問題は、すべてのプレイヤーが同じ「世界」を見ることができるはずということです。あなたはアインシュタイン・イアン相対性理論と「同時」に似た問題で終わる - 遠く離れてあなたは、世界の多くのビューが異なります。

。 更新はすべてローカルに同時表示されていることを十分に速く - 中 - ゲーマースペース、必ずしも物理的な空間に -

一般的には、解決策は、あなたがあなたのすぐ近くに他のクライアントに情報を伝播することができなければならないということです選手ます。

私は答えは、むしろ世界のサーバー内のベクトルとして選手を代表するよりも、プレイヤーごとに「サーバ」や、世界的にモデルを持つことである疑います。

他のヒント

大きな問題がbandiwdthやレイテンシやゲーム状態への変更を配布されていません。大きな問題は、信頼されています。

私はモンスターを殺したを教えてくれた場合は、

、どのように私は実際にそれをやっていることを確認していますか?どのように私は実際に45を水平にしていていることを確認していますか?どのように私は、世界中のテレポートないよ確認しますか。あなたはどんな小さなディテールのためにサーバーをチェックすることはできません覚えておいてください!それは、我々は避けるようにしようとしているものです。

あなたは選手を見てプレーヤーを必要としても、彼らはカンニングするために一緒に働くかもしれません。私は本当に誰もがいつでもすぐに信頼できるP2PのMMOを設計します疑うます。

あなたの質問に考慮すべき多くのものがあります:

1)分散マスター - その後、ゲームを開始?どこで最初のノードを見つけることができますか?どのような誰もが、同時に彼らのP2Pクライアントを閉じることを決定した場合?世界は終わらない?

2)Distrubutedルール - 102235のうち77は、X、Y、Zでモンスターを殺し、そのプレイヤーを確認することができますか?私は「コマンドでチーフ」外で不正行為/ハッキングでBIGトラブルを参照してください...

3)レイテンシ - クライアントは、すべてのデータを受け取ったとき?どのようなインターネットが故障した場合は?またはLANゲームでは、どのようなハードドライブが死亡した場合 - ?この狂気は皆のためのゲームでしょう。

私はP2Pの考えは面白いですが、すべての競技のように、私たちは、あなたがに、その「大丈夫「匿名の人」に対して競合しているときので、ルールを扱うことができる「裁判官」が必要と考えていると信じています多くが考える「カンニングます。

私は、グリッド・コンピューティングのいくつかの並べ替えは、それを行うための方法かもしれないと思いますが、グリッドの一部が抜けたり、世界のレンダリングとバックの結果を送信するために遅すぎる場合は、再度、...我々はゲーム全体「遅れを持っています」... =皆のためのひどいゲームは...これは、すでにマスター・サーバーとの多くのFPSゲームに見られます。あまりにもよくネットワークプロトコルdoesntのハンドル遅れがいる場合、その人のランニングを打つために難しくなったり、彼らがどこにも顔であなたを撮影していないの外に表示されます。

高価な解決策は、あなたがプレイヤーに、より近いデータの一部を持っている「サブサーバー」(プロキシ・ゲーム・サーバー)を持っているかもしれません。これは、私は世界中のサーバファームの多くにアクセスすることができます必要になると考えている(ブリザードWOWと同じように)、またはあなたは、帯域幅があるときに、「サブサーバー」に自分自身をアップグレードしますインテリジェントな「P2Pホスト」のいくつかの並べ替えを考案する必要があります十分な大きさと十分な選手(...常にビューのそのポイントからタイムラグをチェックする)ことのproxsamityが近い...今のラインがグローバルにこのサブサーバーとメインgameloopの間で壊れているものならば...それが可能だったと言うことができます再び?

LOL ...これは、より多くのインターネットでの一般的なトラブルのように聞こえる...に行くことができる: - )

ハッピーコーディング...!

私は確かに専門家だが、それは私には少しクレイジーに聞こえます。私の経験では、あなたがあるため、帯域幅とパフォーマンスの専用ゲームサーバーが必要です。 P2Pを使用すると、それらのものの両方を失うことになります。私の意見では、P2Pは、いくつかのために良いです。配布ファイルと研究はそれらの間です。しかし、これらの2つのことは、リアルタイムのデータを必要としません。あなたは多人数参加型ゲームの世界のいくつかの並べ替えを持っていた場合、あなたはおそらくゲームのファイルを配布するためにP2Pを使用することができ、そして多分数値演算の負荷を軽減ます。

私は可能性があると言うだろうが、潜在的に強力なものの、それらの数は、限定されたようです。

私は、これは理論的には、おそらく可能だと思うが、それはまだ長い道のりオフになってます。

他の記事で述べたように、

、レイテンシが唯一の近くにあり、他のプレイヤーへの更新を保証することにより、低く抑えることができます。これは、分散ゲームで長年にわたって行われてきています。

データの損失は、いくつかのノードはデータの各部分の原因であるせることによって許容レベルに維持することができた。

信頼の問題に関しては、プレイヤーできた「チャレンジ」は、他のプレイヤーが不正行為を発見するためのプロトコルを持つことも可能であろう。即ち挑戦者は、他のプレイヤーの計算の一部を複製し、結果を比較するために求めるだろう。そここの種のものを行う暗号プロトコルはすでにありますが、私は詳細を知らないか、彼らは実際には実現可能であるかどうか。

私はそれを見るように本当の問題は、このようなシステムとして開発する少し理由があるということです。コストが高くなると複雑さを追加しますが、ゲームの経験(製品)が大幅に改善されないでしょう。お金を節約する活動は、それが実行可能にするためにはコストよりも多くのお金を保存する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top