Перейти к содержимому
7 августа 2026 г. · Инженерия

Звук, который не пищит

Эта статья описывает продукт на момент публикации. Актуальные возможности см. в разделах AI Builder и Agent Teams.

Звук, который не пищит

Первый раз, когда мы выпустили игру, не тронув звуковое техзадание, это была симуляция управления гаванью — краны, грузовые суда, маленький прибрежный городок — и звук сбора монеты был синусоидой. Не потому что кто-то так решил. Никто ничего не выбирал; заглушка «блип» попала туда на раннем этапе прототипирования и так и не была заменена — точно так же, как стоковая фотография доживает до готового сайта, если за этим никто не следит. Графика была в порядке: вода, нарисованная вручную, чайки, тёплый причал на закате. А потом вы поднимали грузовой контейнер, и игра издавала звук, будто у флеш-игры 2007 года заканчивается таймер.

Мы вывели сборку на общий экран, чтобы понять, что с ней не так, и потребовалось секунд четыре реального слушания — с закрытыми глазами, кто-то настоял на этом, наполовину в шутку — прежде чем в комнате все согласились: всё это звучит как микроволновка. Каждый звук успеха, каждый щелчок интерфейса — всё синтезировалось на лету, всё сделано из одного и того же тонкого электронного материала, независимо от того, к какой игре это прикреплено. Уютный гаванский городок и киберпанк-шутер издавали бы одинаковые звуки. Вот в чём подвох. Синусоиды не знают, в каком они мире.

Поэтому мы отправились искать настоящее решение, и настоящее решение оказалось скучным в лучшем смысле: перестать генерировать тона и начать записывать инструменты. Не сэмпл-паки, лицензированные откуда-то, не синтезированные приближения, настроенные звучать «тепло» — настоящие инструменты, записанные, сэмплированные по всему диапазону, так что воспроизведённая нота — это нота, которую действительно сыграл музыкант. Мы выстраивали это несколько недель в библиотеку такого размера, что слов не хватает.

84 инструмента — достаточно широкий охват для любого жанра, который решит создать разработчик
Ощущение игрыПалитра инструментов
ПриключенияОркестровые струнные и духовые
Уютные головоломкиЩипковые струнные и ударные-мелодические
Аркадная динамикаУдарные и бас
Эмбиент, медленное развитиеПэды и клавишные

Помимо инструментов мы отдельно записали окружающие звуки, потому что миру нужен воздух, а не просто саундтрек:

  • Дождь
  • Прибой
  • Ветер
  • Тон помещения
  • Гул толпы

Мы вернулись к игре про гавань, имея библиотеку под рукой, и пересобрали её звук с нуля. Плеск воды под причалами, чайки где-то за кадром, а когда вы успешно загружаете контейнер на судно — молоточек, настоящий, записанный при ударе по настоящей металлической пластине, играет ноты, которые раньше были писком. Те же ноты, тот же момент игрового цикла. Совершенно другая игра. Это сравнение — весь аргумент в миниатюре: перезвон, сыгранный маримбой, и идентичные высоты тона, сыгранные осциллятором, не являются взаимозаменяемыми результатами «сделать звук успеха». Это разные продукты, носящие одну и ту же функцию.

Как только библиотека появилась, возникла более сложная проблема: библиотека сама себя не компонует. Инстинктивным решением было бы собрать папку со стоковыми звуковыми акцентами и позволить каждой сборке брать из одной и той же кучи — и мы намеренно этого не сделали. Техзадание арт-директора, которое задаёт цветовую палитру сборки, задаёт и её звуковую палитру, так что компоновка происходит для каждой игры отдельно — детективный нуар и симулятор фермы не получают одинаковый набор инструментов, точно так же, как они не получили бы одинаковый шрифт. Размещение звуковых эффектов следует той же логике вплоть до отдельных объектов: что это за объект, по какой поверхности он ударяется, насколько он большой, какое настроение у сцены. Это та же специфичность, которую мы требуем для спрайта или текста интерфейса — просто применённая к тому, что люди привыкли считать чем-то второстепенным.

И поскольку «нечто второстепенное» — это ровно то, из-за чего звук деградирует, мы не оставили это как стилистическую рекомендацию, которая надеется пережить встречу с дедлайном. Теперь это часть проверки — внутрибраузерная проверка, которая запускается перед выпуском сборки, действительно прослушивает её, и слой мира, который молчит, или эффекты, которые тихо откатываются к голому осциллятору из-за неудачной загрузки сэмпла, проваливают проверку так же, как её провалила бы сломанная кнопка. Это не заметка в документе с ревью, а дефект. Одна из наших собственных сборок недавно была помечена и автоматически исправлена именно за это; механика того, как это работает, описана в Как сборки проверяют себя сами.

Тест, который мы используем сами: проиграйте сборку с закрытыми глазами в течение десяти секунд. Если то, что вы слышите, могло бы быть любой игрой из 2003 года — звук провалился, что бы ни говорил код.
Инжиниринг
ПоделитьсяXLinkedInFacebookRedditQuoraWhatsAppTelegramEmail
← Все статьи