Время от времени я наблюдаю вопросы о проблемах со сборкой любых проектов на GameMaker: Studio, что попадают под одно из двух описаний:
- Игра не собирается, редактор выдает "An error occurred, check compile form for more information", но во вкладке "Compile" никакого текста о ошибке нет
- Игра собирается, но вместо окна игры появляется окно, просящее выбрать файл:
Причина возникновения данных ошибок предельно проста – битые пути в настройках (меню: File - Preferences):
Интерес представляют "Temp directory", "Asset cache directory", и "Backup directory". Для данных путей есть несколько правил:
-
Не должны содержать кириллицу: Многое ПО не очень хорошо дружит с кириллицей в путях, особенно при нестандартной системной кодировке.
Так что, если у вас в системе установлено русскоязычное имя пользователя, нужно будет указать пути на какое-нибудь другое местоположение.
Не должны указывать на корень диска: В особенности, системного диска - без разрешения администратора записывать в корень диска обычное ПО на современных версиях не может.
По совпадению, расставлять сотни файлов в корне диска - странная идея. Не должны указывать на "защищенные" папки: Аналогично предыдущему пункту, Windows не позволяет случайным программам записывать данные в папку Windows, Program Files (см. UAC), или специфичные папки пользователей.
В случае "недоступности" путей, GameMaker либо не удается записать игровые файлы вовсе, либо файлы записываются (куда-то), но приложению для отладки игр передается нерабочий путь. Смена путей на общедоступные исправляет проблему.
Дополнительно:
- Если у вас есть SSD, установка Temp\Cache directory на папку на нем может дать заметный прирост в скорости сборки больших проектов (что требуют создания множества временных файлов). Перенос самих проектов на SSD так же может помочь, но не забывайте о резервном копировании или контроле версий.
- Если вы используете контроль версий (см. выше) для всех важных проектов, отключение автоматического резервного копирования ("Enable backup on save", "Enable backup on run/debug/create") так же даст прирост в скорости сборки (копирование всей папки проекта – дело медленное).
почему я здесь