Я думал об одноранговых играх, рассматривая простую игру с подбрасыванием монет.
Вы открываете свою версию P2PCoinFlipping Beta 2.3, и она отображает список серверов имен игроков. После выбора ближайшего сервера появляется табло из самых счастливых игроков. Вы выбираете игрока с самым высоким рейтингом, и игра начинается. С тех пор, как вы начали битву, противник выбирает сторону монеты, головы, и вам назначают хвосты. Появляется симпатичная маленькая графика, изображающая падающую монету, которая в итоге приземляется на головы Жаль, ты проиграл.
Но откуда вы знаете, что результат справедлив?
Если результат выбран на вашем компьютере, вы можете отредактировать программу, чтобы выиграть, и то же самое относится и к противнику. Игра не является детерминированной, поэтому вы не можете проверить результат.
Возможно ли, чтобы несколько независимых противоборствующих агентов договорились о недетерминированном событии?
источник
Ответы:
Эта процедура сделает работу:
результат броска монеты - XOR младшего значащего бита каждого числа, то есть
(a & 1) ^ (b & 1)
Альтернативное решение:
Я задал этот вопрос на сайте криптографии и установил, что это довольно безопасно. По-видимому, это вариант схемы обязательства .
источник
Оказывается, что не только противники могут подбрасывать монеты, но и противники могут играть в покер .
Тем не менее, это имеет тенденцию быть чрезвычайно вычислительно дорогим, и довольно трудно получить права. Это, вероятно, не стоит усилий по реализации. Посмотрите, сколько многопользовательских протоколов чрезвычайно уязвимо для вредоносного сервера (а именно: все они мне известны) и насколько они все еще популярны, и это просто не похоже на практическое использование времени.
StarCraft II является хорошим примером. Это игра, в которой разведка имеет решающее значение, и знание того, что делает враг, может дать феноменальное преимущество, и призы в 5 или более фигур регулярно зависят от результатов. , , и все же оба компьютера хранят все игровое состояние в любое время! Это просто написать программу, которая позволит вам наблюдать за противником и получать от него огромную поддержку.
Оказывается, никто из серьезных конкурентов не использует эти программы. Это слишком легко обнаружить («Эй, Джим, как ты всегда узнаешь, что я строю, в тот момент, когда я его строю?») И просто не стоит проблем.
Тем не менее, если вы хотите получить больше информации, вам нужно детально изучить криптографию - это не совсем относится к разработке игр.
источник