StarcraftのようなピアツーピアRTSゲームで勝利を検出する


8

典型的なRTSゲームは、標準のネットワークモデルであるピアツーピアロックステップで実装されます。

ピアツーピアモデルの2人のプレイヤーの間の通信しかないとすれば、Battle.netはおそらくゲームの状態について何も知らないので、Starcraft 2を検討してください。 。不正行為を行わず、正確な結果を報告しないように2つのピアに依存することは、世間知らずです。


2
「2人の仲間が不正行為をして正確な結果を報告しようとしないことを信頼するのは初心者です。」どうして?2つのピアが一致しない場合、明らかに誰かがめちゃくちゃになっています。そして、1人のプレイヤーだけが勝つことができるので、彼らが同じことを報告している場合、それはどういう意味ですか?2人がチートできますが、勝つことができるのは1人だけです。
Nicol Bolas

1
実はもっと楽しくなります。@Nicolが述べたように、2人のプレーヤーが同意している限り、サーバーは論争することはありません。これは、プレーヤーの基本的なスキルレベルと信頼性を確立するための基準として使用できます。これは、争われた勝利が実際に誰であるかを判断するために使用できます。また、サーバは、あなたもそのことについて嘘可能性があるためものの、リプレイデータを求めることができる...
時計仕掛け-ミューズ

回答:


3

私の記憶が正しければ、SC2は実際にはピアツーピアではありません。これは、Battle.netを備えたクライアント/サーバー(まだ確定的なロックステップです)なので、問題はありません。しかし、現実の世界では、すべてのピアに何らかの状態または何らかの操作の結果(「勝者」はこの時点では確かに共有されている状態)に同意させることは、限られた時間ではおそらく不可能です。ビザンチン将軍の問題とフィッシャーのコンセンサス問題の正式な証明を見てください。これはまともな出発点です(引用を見てそれらを読んでください):コンセンサス(コンピュータサイエンス)


0

すべてのプレイヤーが同意すれば、それは明らかに正確です。そうでなければ、ゲームの状態は無効であり、誰も「勝ち」ません。ただし、SSLを使用してBNetとゲームクライアントの間の通信を暗号化できることに注意してください。これは明らかに存在している必要があります。ゲーム中にクライアントがBattle.NETと通信しないと信じる理由はありません。

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