Как сделать серию бросков кубиков безопасным в сценарии клиент / сервер? - PullRequest
0 голосов
/ 23 октября 2011

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

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

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

1 Ответ

1 голос
/ 23 октября 2011

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

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

...