Connor & Tyrex
Какие планы по поводу защиты своей игры, чтобы в неё играли только те, кто положено? Или надеешься, что код сам справится? Не люблю, когда баги позволяют людям ломать сюжет, и терпеть не могу, когда какая-то уязвимость позволяет глюк переписать историю.
Да, я тут много думал над этим. Не хочу, чтобы сюжет зависел от случайности, поэтому я разрабатываю серверную защиту, которая проверяет каждое ключевое действие, прежде чем оно зафиксируется в состоянии сюжета. Клиент просто отправляет намерение, а сервер проверяет целостность хеша и текущий прогресс игрока. Так что сбой не сможет переписать сюжет, потому что сервер отклонит всё, что не соответствует ожидаемой последовательности. Еще я начал использовать минимальную, обфусцированную сборку для локального кода, чтобы, даже если кто-то покопается, они не увидят логику, которая управляет ветвлением. Это немного больше работы, но так мы обезопасим сюжет от случайных багов или хитрых модов.
Звучит убедительно, но перепроверь, пожалуйста, чтобы хэш охватывал все важные параметры состояния. Иначе небольшая ошибка может позволить злоумышленнику проскользнуть. И сохрани копию логики в надёжном месте — обфускация даст отсрочку лишь на несколько минут, пока её не расшифрует опытный аналитик. И обязательно тестируй защиту на некорректном запросе. Нужно убедиться, что сбой не запустит отказ в обслуживании из-за какой-нибудь ерунды. Неплохая работа.