Возможно кому-нибудь будет интересно узнать немного технических подробностей о звуковом движке любимой игры от одного из его создателей.Всем привет!Я один из аудио-программистов DICE, отвечающий за техническую сторону Frostbite. Мы знаем, что многие из вас придирчиво относятся к звуковому сопровождению в нашей игре, поэтому мы посчитали, что было бы правильным пролить свет на то, как работает наш аудио-движок, и почему мы делаем так, как мы это делаем. Благодаря этой информации вы узнаете как выжать максимум из звука в игре Bad Company 2, вне зависимости от того, какую платформу вы выбрали (напомним, что игра выходит сразу на трех платформах: PC, PS3, Xbox360). В статье будет использована техническая речь, но я постараюсь сделать выводы по каждому пункту понятными для вас.
ОсновноеКогда мы начали работу над Frostbite, движком нового поколения, мы задумались и над тем, что значит "новое поколение" для звукового оформления. Мы пришли к выводу, что мы хотим, чтобы было использовано столько фильтров, сколько это возможно для создания более динамичного звукового окружения, и нужно было реализовать такую возможность исключительно на всех игровых платформах. Это означало, что работу надо начинать с самих себя. Раньше мы использовали набор программных средств в Battlefield 1942 и программно-аппаратный гибрид Battlefield: Modern Combat на приставке PS2 (это позволило добавит несколько фильтров и еще 16 "голосов"), но до этого звук в играх обычно базировался на звуковых формах, которые были статическими, за исключением громкости и высоты звучания.
Для реализации нам нужно было чтобы на звук накладывалось различное количество фильтров, которые бы смешивались в нужном нам порядке и пропорции, но аппаратные аудио-акселераторы просто не способны были и все еще не могут этого позволить. Мы были уверены, что все основные платформы либо перешли на программное ускорение звука (Xbox360, PS3) или перейдут в ближайшее время (ПК), вместо того, чтобы использовать ограниченные по возможностям аппаратные средства (Xbox, PS2 и некоторые звуковые карточки для ПК), так что программная среда была очевидным выбором для нас.
Короче говоря, мы пошли по пути, который позволяет нам делать именно то, что нам нужно, чтобы, как мы считали, добиться высококачественного, инновационного аудиозвучания в наших играх, и, я надеюсь, вы согласны с тем, что мы этого достигли!ПроизводительностьЕстественно, что обработка аудио программным путем накладывает на ЦП компьютера дополнительную нагрузку. Так как Xbox360/PS3 используют аппаратные средства и имеют на борту по несколько ядер, способных выполнять задачи параллельно, мы решили, что это может быть проблемой для владельцев ПК-версий, имеющих меньшее количество ядер, чем на консолях. В Bad Company 2 все аудио процессы производятся последовательно в одном потоке, вне зависимости от платформы. Применительно к ПК это означает, что для ЦП повышение частоты будет лучше, чем увеличение количества ядер. Но, конечно же, остальные аспекты игры распараллелены, так что лучше иметь более, чем два ядра для игры Bad Company 2. Вопрос производительности мы постоянно улучшаем и результаты можно будет увидеть в следующих тайтлах EA.
Пока ваш компьютер удовлетворяет минимальным системным требованиям, он будет тянуть игру. Владельцам консолей беспокоиться не о чем. Точность воспроизведенияКак это принято сейчас, мы производим все операции в 32-битном стандарте с плавающей точкой
IEEE 754 (частота 48 КГц), чтобы сохранить высокую точность конечного аудиопотока для аудиодрайвера той или иной платформы. Мы кодируем звуки, используя различные кодеки в зависимости от того, что наиболее оптимально для каждой платформы. Эти кодеки и выдают тот же звук, что и заложен в самой игре. Как только мы передали аудио в основной аудиодрайвер, любая погрешность в точности зависит от того, как драйвер смешивает наше аудио с другими аудиопотоками из других процессов, запущенных на вашей системе. На ПК мы конвертируем аудио в 16-битный ИКМ-сигнал (
ИКМ - импульсно-кодовая модуляция) до того, как послать его в
DirectSound, а не отдаем DirectSound для того, чтобы он сам конвертировал. Главным образом, это искусственный обходной путь для решения наследственной проблемы с совместимостью различных аудиокарт, мало того, этот способ добавляет поддержку 16-битных выходов, что аннулирует многолетнюю настройку и подстройку аудио-кодирования через DirectSound. Это дает возможность добиться точной передачи и высокого качества звучания. Далее я расскажу о 16-битном построении звука и связанном с этим ограничении динамического диапазона, ну а для тех, кто уже знает или кого это не волнует, можете пропустить (что мы и делаем, однако замечаем, что по словам аудио-инженера
игра разрабатывалась для 5.1 систем и не имеет смысла ориентироваться на 7.1. К тому же, наиболее оптимальные настройки звучания таковы: 5.1/48 КГц/16-бит ).
Аппаратное ускорениеЯ коротко упомянул это в основном разделе, но, думаю, стоит кое-что прояснить. Аппаратное ускорение практически никак не развивается, потому что аудио в играх стоит на месте, чего не скажешь про графическую составляющую, которая интенсивно развивается из года в год. Сегодня даже
GPGPU (
графические процессоры общего назначения) удовлетворяет потребность аудио процессов лучше, чем аппаратные ускорители звуковых карт, и мы очень довольны такими возможностями, как, например, нам могут предоставить
Intel Larrabee.
Кроме того, основным преимуществом аппаратного ускорения звуковых карт является возможность воспроизводить эффекты окружающего мира, например,
реверберацию. Мы полагаем, что получаем такой же или даже лучший эффект, используя наши программные решения, обрабатываемые современными ЦП с незначительной нагрузкой. Даже интерфейс
API этих карт "хромает" во многих местах, сохранив, в основном, структуру DirectSound. Даже сама Microsoft отказалась от такого интерфейса, выбрав себе более современный API XAudio.
Получается, что с программной стороны вопроса, эти звуковые карты устарели, однако требования к "железу" увеличилось и нужны процессоры более общего назначения, чем в представленных на рынке звуковых картах, поэтому мы выбираем Larrabee или просто обычный ЦП с большим количеством ядер.В заключениеКаждый, кто занят в аудио-проектировании в DICE, трудятся с полной отдачей и от лица всех сотрудников, я хотел бы воспользоваться возможностью чтобы поблагодарить всех вас за ободряющие комментарии и интерес к аудио в наших играх как в блогах, на форумах, так и в комментариях к видео!
Мы будем следить за вашими комментариями, которые могут вдохновить нас на новую работу над аудио в движке Frostbite.
Спасибо.Источник
Оригинал статьи
Сообщение отредактировал 15 февраля 2011 - 01:59