Что именно попадает в файл сохранения
Во время работы игры все события происходят в оперативной памяти компьютера или приставки. Оперативная память работает быстро, но полностью очищается при выключении питания или закрытии приложения. Чтобы прогресс остался доступен завтра, игра собирает текущее состояние виртуального мира и переводит его в постоянный файл на жестком диске или SSD-накопителе.
Игра никогда не сохраняет картинку целиком или видеозапись игрового процесса. Записываются только ключевые переменные, по которым движок позже сможет воссоздать ту же самую игровую сцену с нуля. Внутри файла обычно фиксируются следующие данные:
- Координаты персонажа в трехмерном пространстве по осям X, Y и Z, а также направление взгляда камеры.
- Числовые показатели героя, включая запас здоровья, ману, уровень прокачки и количество очков опыта.
- Идентификаторы предметов в рюкзаке с указанием их количества и степени прочности.
- Флаги сюжетных событий — простые логические переключатели, показывающие, открыта ли конкретная дверь, побежден ли босс и взят ли определенный квест.
- Координаты и состояние врагов, которые остались живы на локации рядом с игроком.
В каком виде данные хранятся на накопителе
Разработчики используют разные способы упаковки данных в файлы. Выбор формата зависит от сложности игры и желания авторов защитить прогресс от ручного редактирования.
Текстовые форматы
В простых инди-проектах данные часто сохраняются в виде обычного структурированного текста. Чаще всего применяются форматы JSON, XML или обычные конфигурационные файлы INI. Если открыть такой файл через обычный «Блокнот», можно легко прочитать названия параметров и значения напротив них, например строку с количеством монет или жизней.
Бинарные файлы
Крупные проекты с огромными открытыми мирами используют бинарный формат. Данные упаковываются в плотный поток байтов, где каждый бит отвечает за определенное свойство. Такие файлы занимают в десятки раз меньше места на диске и считываются процессором за доли секунды. Если открыть подобное сохранение текстовым редактором, на экране появится бессмысленный набор символов и знаков вопроса.
Где операционная система прячет файлы с прогрессом
В операционной системе Windows сохранения редко лежат в одной папке с исполняемым файлом игры. Разработчики операционных систем разделяют саму программу и создаваемые ею пользовательские данные. Это сделано ради безопасности, ведь папка Program Files часто защищена от случайной перезаписи.
Обычно файлы с прогрессом отправляются в папку «Документы» текущего пользователя или в скрытый системный каталог AppData. В каталоге AppData есть три подпапки: Local, LocalLow и Roaming. Каждая игровая студия выбирает место размещения по своему усмотрению, поэтому сохранения одной игры могут лежать в Документах в открытом виде, а файлы другой спрятаны глубоко в системных недрах диска C.
Слоты и чекпоинты: как игра организует запись
Слоты сохранений представляют собой отдельные ячейки, под каждую из которых программа создает собственный независимый файл на диске. Игрок может сделать сохранение перед сложной сюжетной развилкой в слот номер один, а затем записать дальнейшее прохождение во второй слот. При желании всегда можно вернуться к первой точке и выбрать другой вариант развития событий.
Чекпоинты работают иначе. Это контрольные точки, расставленные геймдизайнерами в ключевых зонах уровня, например перед входом на арену с сильным противником. При пересечении невидимого триггера игра незаметно для игрока перезаписывает единственный файл автосохранения. Ручные слоты дают свободу выбора момента, а контрольные точки защищают от потери времени при внезапном поражении.
Как работает синхронизация через облако
Сервисы цифровой дистрибуции вроде Steam, Epic Games Store или консольные сети PlayStation Network и Xbox Network используют облачные серверы для резервного копирования прогресса. Механизм состоит из четкой цепочки действий программы.
- Во время прохождения игра создает локальный файл сохранения на физическом накопителе вашего устройства.
- После выхода из игры клиент цифрового магазина перехватывает свежий файл и сверяет время его создания с копией на удаленном сервере.
- Новый файл моментально загружается через интернет в облачное хранилище вашего профиля.
- При включении игры на другом компьютере лаунчер скачивает свежий сейв из облака и заменяет им старый локальный файл.
История: от длинных паролей до встроенных батареек
В восьмидесятых годах двадцатого века на приставках вроде NES и Famicom жестких дисков не существовало. Чтобы дать игрокам возможность продолжить приключение после выключения консоли, разработчики придумали систему паролей. В конце каждого пройденного уровня игра выводила на экран шифр из букв и цифр, в котором были закодированы набранные очки и номер этапа. Игроки записывали эти пароли в бумажные блокноты и вводили с геймпада при следующем включении.
Прорыв произошел в 1987 году с выходом игры The Legend of Zelda. Внутри игрового картриджа инженеры разместили микросхему энергозависимой памяти SRAM и маленькую плоскую батарейку типа CR2032. Батарейка круглосуточно питала чип слабым током на протяжении пяти-семи лет, сохраняя записанные байты даже тогда, когда картридж лежал на пыльной полке отдельно от консоли.
Частые вопросы
Можно ли перенести сохранение с пиратской версии игры на лицензионную?
В большинстве случаев это возможно. Достаточно найти папку, куда эмулятор взлома складывал файлы, и скопировать их в каталог, привязанный к вашему цифровому идентификатору профиля в лицензионном магазине. Иногда требуется переименовать файл, если пиратская версия использовала нестандартное расширение.
Почему ломаются сохранения при установке модов?
Модификации добавляют в игру новые типы оружия, заклинания или квесты. Игра записывает новые идентификаторы в файл сейва. Если позже удалить мод из папки с игрой, движок попытается загрузить сохраненный предмет, не найдет для него программного описания и аварийно завершит работу с критической ошибкой.
Как защитить свои сохранения от внезапной поломки диска?
Самый надежный способ заключается в создании резервных копий вручную. Достаточно периодически находить папку сохранений конкретной игры и архивировать ее на флешку или внешний накопитель.
Зачем разработчики шифруют файлы сохранений?
Шифрование защищает игровой баланс. В соревновательных играх или одиночных проектах с внутриигровыми микроплатежами авторы закрывают доступ к параметрам, чтобы игроки не могли бесплатно добавить себе валюту через правку текстовых документов.