Нужен совет отцов. Запили игру на Unity под android- квест 2D в стиле игр escape. Сама Игра небольшая-10 локаций+5 персонажей+ инвентарь с предметами, НО: apk файл на выходе весит 96мб и на гаджетах с оперативной памятью меньше 2гб игра ведет себя не стабильно-периодически виснет, лагает, траблы по текстурам и тд. Вопрос: в чем, на ваш взгляд, может быть причина, такой "прожорливости" у игры? И есть ли способы уменьшить требования и размер apk файла? В сторе даже есть некоторые 3d игры которые не так требовательны. Или оставить все как есть с расчетом на пользователей с более менее производительными гаджетами?
Пустой проект Unity под android весит 17 МБ.
остальное - ресурсы.
Прежде всего смотреть на упаковку и формат картинок. Если картинка 2048*2048, а ты используешь ее как плитку пола 5*5 пикселей - в поставку все равно пойдет полная картинка.
Тут важно понимать, что в поставку идут не те картинки, которые ты положил в проект, а переработанные в соответствии с настройками.
На выходе может получится эффект, что ты добавляешь в проект png на 10кб, указываешь настройки "без упаковки" и в поставку идет аналог BMP картинки на несколько мегабайт.
Самый простой совет - прежде всего посмотреть чего сколько у тебя попадает.
В консоли(окошко для дебаг сообщений) в правом верхнем углу открываешь правой кнопкой меню и выбираешь "Open Editor Log"
Открывается лог, там есть лог сборки
Выглядит вот так
Там смотришь чего и насколько много.
Обычно проблема в текстурах.
Общие рекомендации:
Картинка должна иметь примерно то же разрешение или чуть больше, чем она занимает на экране.
Дальше, упаковка.
Вопрос сложный и компромиссный, особенно на нескольких платформах. Тут проще всего поиграться, но общие рекомендации такие.
Если игра планирует запускаться на старых устройствах, для андроид используй упаковку etc1
К сожалению, она подходит только для непрозрачных картинок.
Прозрачные картинки нужно либо не паковать, либо паковать другим форматом, либо творить хаки(отдельно запаковывать картинку, а отдельно - alpha канал)
Дальше - используй атласы. В юнити есть встроенные, нормально работают. Позволяют плотнее паковать и эффективнее использовать.
К этому нужно привыкнуть, работа над оптимизацией ресурсов - действительно сложная и важная - это не очевидно сразу))
Некоторые картинки позволяют творить хаки - например использовать только один канал(для простых белых иконок на черном фоне можно использовать упаковку aplpha8)
Если используешь 3d меши - поиграйся с галочками, обычно не нужны тангенты, можно выключить анимацию(если ты ее не используешь, естественно - там просто есть какая то информация всегда), посмотреть разные режимы упаковки точек.
То же самое касается звуков - упаковывай, если нет второго канала, делай моно. На слух проверяй, что слышно нормально, для большинства писков и свистов ничего страшного не случится.
Тут все определяется на глаз и по ощущениям. Иногда артефакты очень видны, иногда упаковка такая, что человек не видит, пока специально не покажешь. Большая часть пользователей обычно не замечает таких вещей, если постараться как следует.
На самом деле советов можно нагородить еще кучу, но это надо пробовать. Зависит от особенностей твоей игры.