Античит / Глюк в игре

В настоящее время я работаю с командой над игрой на основе Unity. Игра все еще находится в разработке и альфа-версии.

Недавно мы увидели, что игра уязвима для Cheat Engine, спидхака и т. д. Обновления за обновлениями, читы теперь стабильны. Мы также представили ACT или античитерский набор инструментов Unity. Поскольку игра основана на Unity, в ней легко реализовать идеи.

Хотя "хаки" стабилизируются, "глюков" нет.

Это игра на выживание с открытым миром, в которой нужно собирать/выбрасывать предметы. Глюк заключается в том, что когда два игрока вместе берут предмет (в настоящее время вам нужно нажать E, когда крестик находится над предметом, чтобы поднять его), предмет дублируется. Мы работали ДНИ, чтобы исправить это, но безуспешно.

Мы ввели, что игрок не может подобрать предмет, если поблизости находится другой игрок. Это выглядит странно, и мы хотим, чтобы игра была гладкой. Мы также попробовали автозабрать товар. Это наш план, но есть ли еще идеи, что мы можем сделать?


person The ZZ Gamerz    schedule 27.08.2016    source источник
comment
Похоже, у вас нет авторитетного сервера? То есть клиенты сами решают, что им брать, а что нет?   -  person Bart    schedule 27.08.2016
comment
@Bart Сервер на самом деле децентрализован, так что это довольно сложно   -  person The ZZ Gamerz    schedule 29.08.2016


Ответы (1)


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

По сути, вместо того, чтобы хранить значения и выполнять действия непосредственно на компьютере игрока, игра отправит запрос на сервер о том, что она хочет сделать, и сервер выполнит действия, обновит официальное состояние игры и отправит новое состояние. вернуться к игроку, чтобы его игра обновилась.

Это предотвратит редактирование памяти, потому что даже если игрок изменяет значение на своем экране (например, валюту или здоровье), сервер содержит истинное значение.

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

Наконец, это предотвратит дублирование предметов, потому что, когда оба игрока попытаются подобрать предмет, они оба отправят запрос на получение предмета на сервер. Какой бы запрос игрока ни поступил первым, он получит предмет, затем сервер обновит состояние игры, чтобы предмет больше не находился на земле, а запрос второго игрока будет проигнорирован, потому что предмет, который они пытаются подобрать, больше не существуют.

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

person Rimply    schedule 27.08.2016
comment
спасибо попробую - person The ZZ Gamerz; 28.08.2016