GODOT 4: Оптимизация вашего проекта

14.02.2025

С переходом на четвёртую ветку Godot при использовании предзагрузки сцен, я периодически замечал невероятный рост объектов и просто бешеный расход видеопамяти
В Godot 3 никогда таких проблем не было.

Долго не мог понять в чем дело. В том, что врёт мониторинг у четвёрки, или наоборот тройка что-то скрывает. Ведь фактически просадок производительности не было. 

Со временем работы в четвёрке, я понял, что она хоть и комфортнее в работе, но более чувствительна и строга к оптимизации. Особенно это касается web платформы. Например от любых шейдеров на данный момент стоит отказаться если вы делаете игру для браузеров. 

Но да ладно, вернёмся к ресурсам, preload и load.
Так вот, если использовать предзагрузку то получается, растёт количество объектов и видеопамяти. Если использовать загрузку сцены прямо перед носом, то появляется статтеры и тормоза.
Ситуация казалась безнадёжной. Но решение всегда находится в обсуждении. 
Поболтав с коллегой Олегом Долининым понял, что не я один сталкивался с похожими проблемами. Однако он указал на одну интересную вещь которую заметил в своих проектах на четвёрке при работе с частицами. 

Так вот если не сохранить какой-либо ресурс в файл .tres или .res, и оставить его встроенным в сцену, то каждый раз при предзагрузке сцены с этим ресурсом будет создаваться уникальный ресурс

Проверил, сохранил ресурс. В моём случае была проблема с TileSet. Сохранил его в .res файл и начал проверять. И всё, проблема исчезла. Более того, что количество объектов и видеопамять больше не росли при предзагрузке. Так и статтеры пропали при загрузке сцен на лету. И в целом увеличилась скорость загрузки сцен в десятки раз(примерно \»на глаз\»).

Так вот итоги! 
В Godot 4 по другому работает загрузка ресурсов, да и в целом ResourceLoader более строгий. Там где тройка прощала косяки, четвёрке встаёт в позу и говорит, что \»ты парень не прав\».

Мои рекомендации по оптимизации загрузки любых ресурсов для Godot 4 — сохраняйте всё ресурсы в .tres или .res файлы. Не важно, это тайлсет, атлас, частица и т.д.
Всё это сильно ускорит вам игру и избавит от неочевидных проблем.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *