Как запретить людям редактировать сохраненные файлы
(Во-первых, если это относится к другому сайту stackexchange, пожалуйста, скажите так. Я не уверен, принадлежит ли это здесь.)
Я делаю компьютерную игру. Это roguelike, что означает, что после смерти ваш файл сохранения будет удален. Вы можете легко обмануть их, просто скопировав файл сохранения, а затем восстановив его после смерти. Конечно, я хочу помешать людям делать это. Несколько идей, которые у меня уже были:
- Зашифруйте сохраненные файлы. Это делает так, что люди могут только копировать + вставлять файлы.
- Имейте больше, чем просто файл сохранения. Имейте некоторый тип "мастер-файла", который содержит информацию о том, сколько игр вы играли, какие из них умерли и т. Д. После того, как кто-то умер, мастер-файл обнаружит, кто пытается восстановить старый файл сохранения.
После этого, однако, люди могут просто скопировать и вставить всю папку с игрой до и после, и она все равно будет работать нормально. Мои следующие идеи пары сложнее сделать:
- Используйте метки времени, чтобы определить, когда кто-то отредактировал файл. Проблема в том, что тогда люди вообще не могут перемещать файлы. Я мог бы иметь какую-то функцию "экспорта / заморозки", но этим можно легко злоупотребить. Кроме того, если какая-то другая программа по незнанию редактирует файл, это может заставить игру думать, что вы обманываете, когда это не так. Я также видел программы онлайн, которые позволяют вам редактировать метки времени.
- Используйте реестр, чтобы хранить немного информации. Я пытаюсь сделать свою игру несколько кроссплатформенной, и я не знаю, есть ли что-то вроде реестра в системах, отличных от Windows. Люди все еще могут редактировать реестр, хотя.
Теперь я признаю, что нет верного способа прекратить обманывать. Я просто пытаюсь найти способы сделать как можно меньше читеров.
Итак, мои вопросы:
- Возможны ли идеи 3 и 4?
- Есть ли другие хорошие способы помешать людям редактировать / заменять файлы?
0 ответов
Как запретить людям редактировать файлы сохранения?
Вы не можете.
Я просто пытаюсь найти способы сделать как можно меньше читеров.
Попытки остановить читеров только воодушевят их, потому что вся цель разработки игровых читов - бросить вызов самому себе, а создание лучшего испытания только делает его более увлекательным.
Но вот лишь несколько советов:
Зашифруйте / запутайте файл сохранения действительно непонятным методом
Используйте действительно непонятный метод хеширования файла сохранения, сохраните хеш в другом месте. При загрузке файла сохранения сравните с хешем.
Случайная идея: чтобы сделать поиск второго хеш-файла более сложным и запутанным, сохраните его в моделях / текстурах, используя то же расширение файла. Поэтому, когда игра загружается, она загружает текстуры и хеш-файл одновременно из одного и того же каталога. Это затруднит поиск среднестатистического пользователя Cheat Engine, не обладающего хорошими навыками обратной инженерии.
Используйте простые методы защиты от отладки, такие как IsDebuggerPresent()
Чтобы узнать больше о методах защиты от отладки в Windows, лучший ресурс:
"Окончательный" справочник по борьбе с отладкой, автор Питер Ферри