Я думал о реализации стелс в многопользовательской игре. Это игра в стиле MOBA, так что подумайте о League of Legends (LoL) и Heroes of the Storm (HotS). Несколько клиентов подключаются к одному серверу, который передает состояние игры всем клиентам. Клиенты отправляют свои входные данные на сервер, который может отклонить их при обнаружении недопустимых команд, что делает мошенничество невозможным (ну, в теории).
Теперь я специально упоминаю эти игры, потому что обе они по-разному реализовали стелс. У LoL есть скрытность с двумя возможными состояниями: вы либо полностью видимы, либо совершенно невидимы. HotS, с другой стороны, реализует скрытность таким образом, что вы можете сказать, мерцая в воздухе:
Я думаю, что это аккуратный механик, поскольку он продвигает / награждает внимание, обращая внимание на ваше окружение. Тем не менее, многопользовательская игра заставила меня понять, что это легко может быть использовано.
Когда вы реализуете скрытность способом LoL, вы можете просто прекратить отправку координат игрока другим клиентам. Когда персонаж игрока нарушает скрытность, сервер может снова транслировать местоположение. Тем не менее, с моделью HotS, в воздухе, где персонаж движется, можно увидеть мерцание. Это означает, что сервер должен отправлять местоположение игрока другим клиентам. Это означает, что игроки, которые изменяют текстуру или модель или даже сам код игры, могут сделать механику плаща бесполезной. Вот ветка на досках HotS по этому поводу.
Мой вопрос заключается в том, есть ли какой-нибудь способ реализовать маскировку (с «мерцанием», как у HotS), не имея проблемы с тем, что хитроумные игроки могут модифицировать игру (данные) и «побить систему». Возможно ли это, а если нет, как другие многопользовательские игры с этой механикой справляются с этим? Является ли только стиль невидимости LoL не поддающийся проверке?
Я думал о том, чтобы сервер время от времени отправлял фиктивные «плащевые» локации, но это также вредит честным игрокам, которые просто обращают внимание, так что это не сработает.