Эта запись посвящена разрешению ситуаций, связанных с потерей частей проектов GameMaker - будь то из-за человеческих ошибок, сбоев программного обеспечения или аппаратных ошибок.
Резервные копии
Мой блог тоже напоминает людям о важных вещах.
Первым делом проверьте, есть ли у вас резервные копии.
- Если вы используете GMS1, то резервные копии находятся в «Мои документы/GameMaker/Backups» и включены по умолчанию.
- Если вы используете более старые версии GameMaker, то резервные копии имеют расширения .gb1...gb9 (версии одного и того же файла) и могут быть включены или не включены по умолчанию.
- Если вы используете GMS2, тогда встроенного механизма резервного копирования у вас нет (пока что).
В качестве примечания: перед открытием резервной копии сохраните её и исходный проект (повреждённый), поскольку при запуске резервные копии будут перезаписаны.
Восстановление из временных файлов
Малоизвестный факт: для отображения более подробных сообщений в ошибках и отладчике при запуске игры из IDE, GameMaker Studio экспортирует специальный файл .yydebug, содержащий большую часть исходного кода, в папку с временными файлами.
Хоть он никогда не создаётся при релизе, это означает, что ваша папка «временных файлов» тайно содержит несколько версий полного исходного кода проектов, которые вы разрабатывали.
Файлы можно найти, выполнив поиск по название-вашего-проекта.yydebug в папке с временными файлами. Путь к папке можно найти на первой странице настроек в GMS1 или в разделе «General Settings/Paths» в GMS2.
Поскольку в файлах .yydebug используется двоичный формат, декодирование файла "вручную" не было бы особенно интересным процессом, поэтому я создал простое веб-приложение, в которое вы можете загрузить файл и просматривать/копировать любой код, содержащийся внутри:
Восстановление из удалённых файлов
Если вы своевременно заметили исчезновение файлов (например, вы удалили их случайно), то существует множество программ, помогающих восстановить удаленные файлы.
Лично у меня был удачный опыт с использованием программы MiniTool, она имеет пробную версию, но я более чем уверен, что вы сами можете найти программу которая вам подойдёт.
Восстановление из скомпилированных файлов
Посмотрите на "Декомпиляция проектов GameMaker: Studio";
В то время как изображения и звуковые ресурсы относительно легко извлекаются, то реконструкция исходного кода сложнее, возможно, вы сможете собрать общее представление кода, но комментариев/констант/макросов и т.д вы уже не восстановите. Поскольку может потребоваться значительная работа по восстановлению структуры кода, это, как правило, последнее, что вы должны попробовать.
Версии GameMaker, выпущенные до студии, включали исходный код в скомпилированные игры, однако, как правило, их можно было декомпилировать (при условии, что вы сможете найти инструмент для соответствующей версии и не использовали инструменты для предотвращения этого).
Предотвращение потерь файлов
После того, как ваш квест на восстановление закончился (надеюсь, успешно), самое время подумать о том, чтобы предпринять шаги, чтобы в будущем вы не оказались в такой же ситуации.
GMS1/GMS2 имеют встроенную поддержку контроля версий
(GMS1,
GMS2).
Вы также можете использовать
внешние системы управления версиями.
Для более старых версий вы можете использовать gmk-splitter для преобразования файлов проекта в формат, который может быть версионирован без проблем.
Если вы категорически против того, чтобы что-то было сделано правильно, подумайте, по крайней мере, о сохранении актуальной копии проекта в облачном хранилище (например, Dropbox/Яндекс Диск/Google Drive), чтобы файлы не могли быть потеряны только из-за «локальных» проблем.
В заключение
Можно использовать различные подходы для восстановления проектов GameMaker, хотя в идеале должны быть приняты адекватные меры, чтобы изначально не оказаться в такой ситуации.
Помощь с переводом от Terisback.