Ich dachte über Peer-to-Peer-Spiele nach, indem ich ein einfaches Münzwurfspiel in Betracht zog.
Sie öffnen Ihre Version von P2PCoinFlipping Beta 2.3 und es wird eine Liste der Spielernamensserver angezeigt. Nach Auswahl des nächstgelegenen Servers erscheint eine Anzeigetafel der glücklichsten Spieler. Sie wählen den Spieler mit dem höchsten Rang und das Spiel beginnt. Seit du den Kampf begonnen hast, wählt der gegnerische Spieler die Münzseite, die Köpfe und dir werden Schwänze zugewiesen. Eine nette kleine Grafik zeigt eine taumelnde Münze, die schließlich auf den Köpfen landet. Schade, du verlierst.
Aber woher weißt du, dass das Ergebnis fair ist?
Wenn das Ergebnis auf Ihrem Computer ausgewählt wird, können Sie das Programm bearbeiten, um zu gewinnen. Dies gilt auch für den Gegner. Das Spiel ist nicht deterministisch, so dass Sie das Ergebnis scheinbar nicht bestätigen können.
Ist es möglich, dass sich mehrere unabhängige Gegner auf ein nicht deterministisches Ereignis einigen?
quelle
Antworten:
Dieses Verfahren erledigt die Aufgabe:
das Ergebnis des Münzwurfs ist das XOR des niedrigstwertigen Bits jeder Zahl, dh
(a & 1) ^ (b & 1)
Eine alternative Lösung:
Ich habe diese Frage auf der Kryptografieseite gestellt und festgestellt, dass sie ziemlich sicher ist. Anscheinend ist dies eine Variation des Verpflichtungsschemas .
quelle
Es stellt sich heraus, dass nicht nur gegnerische Agenten Münzen werfen können , sondern auch gegnerische Agenten Poker spielen können .
Das heißt, es ist in der Regel extrem rechenintensiv und ziemlich schwierig, es richtig zu machen. Der Implementierungsaufwand lohnt sich wahrscheinlich nicht. Schauen Sie sich an, wie viele Multiplayer-Protokolle für einen bösartigen Server unglaublich anfällig sind (nämlich: alle, die mir bekannt sind), und wie beliebt sie immer noch sind, und es scheint einfach keine praktische Zeitnutzung zu sein.
StarCraft II ist ein gutes Beispiel. Es ist ein Spiel, bei dem das Scouting von entscheidender Bedeutung ist und das Wissen, was der Feind tut, einen phänomenalen Vorteil bringen kann. Fünfstellige oder höhere Preise hängen regelmäßig von den Ergebnissen ab. . . und doch haben beide Computer jederzeit den gesamten Spielstatus gespeichert! Es ist trivial, ein Programm zu schreiben, mit dem Sie den Gegner direkt beobachten und ein großes Bein hochlegen können.
Es stellt sich heraus, dass keiner der ernsthaften Konkurrenten diese Programme verwendet. Es ist zu leicht zu erkennen ("Hey, Jim, woher weißt du immer, was ich baue, sobald ich es baue?") Und die Mühe einfach nicht wert.
Das heißt, wenn Sie mehr Informationen wünschen, sollten Sie sich eingehend mit Kryptografie befassen - dies ist nicht wirklich im Bereich der Spieleentwicklung.
quelle