С переходом на четвёртую ветку Godot при использовании предзагрузки сцен, я периодически замечал невероятный рост объектов и просто бешеный расход видеопамяти.
В Godot 3 никогда таких проблем не было.
Долго не мог понять в чем дело. В том, что врёт мониторинг у четвёрки, или наоборот тройка что-то скрывает. Ведь фактически просадок производительности не было.
Со временем работы в четвёрке, я понял, что она хоть и комфортнее в работе, но более чувствительна и строга к оптимизации. Особенно это касается web платформы. Например от любых шейдеров на данный момент стоит отказаться если вы делаете игру для браузеров.
Но да ладно, вернёмся к ресурсам, preload и load.
Так вот, если использовать предзагрузку то получается, растёт количество объектов и видеопамяти. Если использовать загрузку сцены прямо перед носом, то появляется статтеры и тормоза.
Ситуация казалась безнадёжной. Но решение всегда находится в обсуждении.
Поболтав с коллегой Олегом Долининым понял, что не я один сталкивался с похожими проблемами. Однако он указал на одну интересную вещь которую заметил в своих проектах на четвёрке при работе с частицами.
Так вот если не сохранить какой-либо ресурс в файл .tres или .res, и оставить его встроенным в сцену, то каждый раз при предзагрузке сцены с этим ресурсом будет создаваться уникальный ресурс.
Проверил, сохранил ресурс. В моём случае была проблема с TileSet. Сохранил его в .res файл и начал проверять. И всё, проблема исчезла. Более того, что количество объектов и видеопамять больше не росли при предзагрузке. Так и статтеры пропали при загрузке сцен на лету. И в целом увеличилась скорость загрузки сцен в десятки раз(примерно "на глаз").
Так вот итоги!
В Godot 4 по другому работает загрузка ресурсов, да и в целом ResourceLoader более строгий. Там где тройка прощала косяки, четвёрке встаёт в позу и говорит, что "ты парень не прав".
Мои рекомендации по оптимизации загрузки любых ресурсов для Godot 4 - сохраняйте всё ресурсы в .tres или .res файлы. Не важно, это тайлсет, атлас, частица и т.д.
Всё это сильно ускорит вам игру и избавит от неочевидных проблем.
Комментариев нет