Лишние 100 МБ в установочном пакете из-за неоптимизированного аудио снижают конверсию в установку на 15-20% для пользователей с медленным интернетом. В мобильном геймдеве звук — это баланс между психоакустикой и жестким лимитом памяти, где неправильный выбор кодека может увеличить вес сборки в 4-6 раз без ощутимого прироста качества.
Выбор формата: OGG, MP3 или WAV
Использовать несжатый WAV в финальной сборке — грубейшая ошибка. Один минутный трек в 44.1 кГц/16 бит занимает около 10 МБ, тогда как OGG с битрейтом 128 кбит/с весит около 0.9 МБ при почти идентичном звучании на мобильных динамиках. Для коротких SFX (звуки кликов, выстрелов) до 0.5 секунд допустим WAV, чтобы избежать задержки при декодировании, но для всего остального стандарт индустрии — OGG (для Android/PC) и AAC/M4A (для iOS).
Кейс: замена всех фоновых эмбиентов с MP3 на OGG Vorbis в одном из проектов позволила сократить вес аудио-пакета с 120 МБ до 45 МБ, сохранив прозрачность звука в диапазоне 20 Гц — 15 кГц. Мой вывод: забудьте про MP3 из-за проблем с бесшовным зацикливанием (looping) — он добавляет пустые миллисекунды в начало и конец файла, что ломает ритм музыки.
Оптимизация частоты дискретизации и каналов
Студийный стандарт 48 кГц избыточен для мобильных устройств. Снижение частоты дискретизации до 22.05 кГц или даже 11 кГц для простых звуковых эффектов (например, шум ветра или интерфейсные щелчки) сокращает вес файла в 2-4 раза. Большинство пользователей играют через встроенные динамики или бюджетные наушники, где разница между 44.1 кГц и 22 кГц практически неразличима.
Важнейший нюанс: переводите все SFX в моно. Стерео-звук для эффекта шагов или удара бессмысленен, так как позиционирование в пространстве (3D Sound) реализуется средствами движка. Переход из стерео в моно мгновенно режет вес файла на 50%. Экспертный совет: оставляйте стерео только для главного саундтрека и атмосферных панорам.
Битрейт и переменный шаг (VBR vs CBR)
Постоянный битрейт (CBR) — это трата ресурсов. Переход на переменный битрейт (VBR) позволяет алгоритму выделять больше данных на сложные участки композиции и экономить на тишине. Для мобильной игры оптимальный диапазон VBR для музыки — 96-128 кбит/с, для голосовых реплик — 64-96 кбит/с. Снижение битрейта ниже 64 кбит/с приводит к появлению «металлических» артефактов на высоких частотах.
Пример: в одном из RPG-проектов при использовании VBR удалось сжать 2 часа диалогов с 300 МБ до 110 МБ без потери разборчивости речи. Мой вывод: всегда используйте VBR для длинных аудиодорожек. Это единственный способ получить приемлемый вес без катастрофического падения качества.
Техническая реализация в движке
Ошибка новичка — загружать все звуки в оперативную память (RAM). Для коротких звуков (SFX) используйте режим 'Decompress on Load', а для длинных треков — 'Streaming'. Стриминг читает файл с диска по мере воспроизведения, что экономит до 80% оперативной памяти, предотвращая вылеты игры на устройствах с 2-4 ГБ ОЗУ.
При интеграции важно учитывать, как вы будете оптимизировать графику мобильной игры: общая нагрузка на систему складывается из всех ресурсов. Если аудио-движок забирает слишком много ресурсов CPU на декодирование тяжелых файлов в реальном времени, падает FPS. Мой опыт показывает, что использование аппаратного ускорения AAC на iOS работает стабильнее и быстрее, чем программный декодер OGG.
Вывод
Мой вердикт: идеальный стек для мобильного звука — OGG (Android) и AAC (iOS) с частотой 22.05 кГц для эффектов и 44.1 кГц для музыки, строго в режиме VBR. Все SFX — только в моно и в режиме Decompress on Load, музыка — только в стерео и через Streaming. Начинайте с агрессивного сжатия моно-эффектов, так как это дает самый быстрый прирост в оптимизации веса без ущерба для геймплея. Избегайте WAV для всего, что длиннее 1 секунды, и забудьте про MP3 из-за проблем с зацикливанием.