Как сделать серию бросков костей безопасным в сценарии клиент / сервер?

Представьте себе следующую ситуацию в игре: игроку предоставляется серия случайных чисел. Каждый номер показывается игроку в течение короткого периода времени, прежде чем он перейдет к следующему. Цель игрока - выбрать большое число. Ему или ей просто нужно "щелкнуть" в нужный момент, и тогда номер будет выбран.

Вопрос заключается в том, как реализовать этот сценарий безопасным способом в сценарии клиент / сервер.

Это означает, что есть игровой клиент, который отображает вышеупомянутую сцену, и есть сервер, на который нужно отправить выбранный номер (любым способом). Смысл в том, чтобы обезопасить эту вещь, чтобы обман (например, путем изменения клиента) был невозможен.

1 ответ

Решение

Там действительно нет способа сделать это полностью безопасным. Даже без изменения вашего клиента все, что нужно сделать, - это запустить в фоновом режиме другую программу, которая читает монитор и ищет определенное число, а затем отправляет событие щелчка мышью в вашу клиентскую программу. Это может быть сделано без изменения вашей клиентской программы. Даже если вам каким-то образом удалось обеспечить его безопасность, чтобы они не могли запускать какие-либо другие программы или службы одновременно с вашей программой, они могли просто направить веб-камеру на экран, подключенный к другому компьютеру, чтобы выполнить оптическое распознавание цифр и отправьте событие щелчка мыши по USB на компьютер, на котором запущена ваша программа.

К счастью, вы можете обойти проблему. Как правило, если что-то должно быть "броском костей", вам нужен случайный "результат на основе удачи". Позволяя им кликать в определенное время, вы делаете эту игру основанной на навыках, а не на удаче, и, следовательно, на самом деле не броском костей. Вы могли бы сделать так, чтобы была небольшая "задержка" от того момента, когда они щелкают, до того, как игральные кости перестают катиться, чтобы они видели, как они вращаются, щелкают, и они замедляются и приземляются на число. Таким образом, то, какое число было показано, когда они фактически щелкают, не определяет результат, но следующее (случайное) число после этого, которое исключило бы возможность мошенничества и сделало бы этот бросок, основанный на удаче, а не основанный на навыке.

Другие вопросы по тегам