Как запретить людям редактировать сохраненные файлы

(Во-первых, если это относится к другому сайту stackexchange, пожалуйста, скажите так. Я не уверен, принадлежит ли это здесь.)

Я делаю компьютерную игру. Это roguelike, что означает, что после смерти ваш файл сохранения будет удален. Вы можете легко обмануть их, просто скопировав файл сохранения, а затем восстановив его после смерти. Конечно, я хочу помешать людям делать это. Несколько идей, которые у меня уже были:

  1. Зашифруйте сохраненные файлы. Это делает так, что люди могут только копировать + вставлять файлы.
  2. Имейте больше, чем просто файл сохранения. Имейте некоторый тип "мастер-файла", который содержит информацию о том, сколько игр вы играли, какие из них умерли и т. Д. После того, как кто-то умер, мастер-файл обнаружит, кто пытается восстановить старый файл сохранения.

После этого, однако, люди могут просто скопировать и вставить всю папку с игрой до и после, и она все равно будет работать нормально. Мои следующие идеи пары сложнее сделать:

  1. Используйте метки времени, чтобы определить, когда кто-то отредактировал файл. Проблема в том, что тогда люди вообще не могут перемещать файлы. Я мог бы иметь какую-то функцию "экспорта / заморозки", но этим можно легко злоупотребить. Кроме того, если какая-то другая программа по незнанию редактирует файл, это может заставить игру думать, что вы обманываете, когда это не так. Я также видел программы онлайн, которые позволяют вам редактировать метки времени.
  2. Используйте реестр, чтобы хранить немного информации. Я пытаюсь сделать свою игру несколько кроссплатформенной, и я не знаю, есть ли что-то вроде реестра в системах, отличных от Windows. Люди все еще могут редактировать реестр, хотя.

Теперь я признаю, что нет верного способа прекратить обманывать. Я просто пытаюсь найти способы сделать как можно меньше читеров.

Итак, мои вопросы:

  1. Возможны ли идеи 3 и 4?
  2. Есть ли другие хорошие способы помешать людям редактировать / заменять файлы?

0 ответов

Как запретить людям редактировать файлы сохранения?

Вы не можете.

Я просто пытаюсь найти способы сделать как можно меньше читеров.

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

Но вот лишь несколько советов:

Зашифруйте / запутайте файл сохранения действительно непонятным методом

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

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

Используйте простые методы защиты от отладки, такие как IsDebuggerPresent()

Чтобы узнать больше о методах защиты от отладки в Windows, лучший ресурс:

"Окончательный" справочник по борьбе с отладкой, автор Питер Ферри

Другие вопросы по тегам