Хакер № 8.99
Редакторская
В этом выпуске "Мастерской" впервые появилась статья, написанная не мной, привлеченным мною к общему делу автором :). И да будет всем известно, что подобные инициативы здесь завсегда приветствуются. Если у кого есть пропадающий без пользы писательский талант и оригинальные идеи на тему игровой разработки, то - буду только рад, присоединяйтесь! И поскольку уже несколько человек обратились ко мне с риторическим вопросом "Как написать статью в "Мастерскую"?", привожу подробный план действий. Итак, ты хочешь опубликовать в "Мастерской" свою статью. Прежде всего свяжись со мной по электронке (попытки добраться до меня через аську и прочие подножные средства буду расценивать как провокационные :). В письме кратко излагаешь то, о чем хочешь поведать миру. Если тема интересная, я прошу прислать конспект статьи и небольшой (2-3 кб) отрывок, чтобы я смогоценить, насколько хорошо у тебя подвешен язык. Если и по этому параметру у тебя полный порядок, можешь быть уверен - мы опубликуем твою статью в ближайшем выпуске. Естественно, не забесплатно. Тема статьи - любая, имеющая отношение к разработке игр. Особенно приветствуются о непрограммистской стороне разработки. Например, о графике или звуке для игр, дизайне уровней или написании сценариев, прочее такое же.
Второй вопрос, с которым ко мне регулярно обращаются: "Что я держу в руках на фотографии в начале рубрики?" Отвечаю. Вопреки распространенному мнению, это не презерватив. И даже (представить страшно!) не спитой пакетик от чая. Это всего лишь замечательное датское печенье, за поеданием которого я был пойман подло прокравшимся на редакционную кухню фоторепортером из Х.
Напоследок, хочу поделиться впечатлением от свежескачанной демки игрушки Tread Marks. Это совершенно отвязные гонки на выживание. Причем не на каких-нибудь пошлых джипах, а на тяжелых танках. Угар совершеннейший. Описать это словами невозможно, надо видеть. Когда пятидесятитонный танк сигает с горы на манер багги, попутно отстреливаясь в полете от наседающих соперников, крыша едет окончательно и бесповоротно. А ведь это только технологическое демо - представляю, что будет в релизе! Причем, что интересно, игрушку пишет всего один программист! Вот это талантище! А некий учуйский журнал, описывая эту игрушку, нещадно пропозорился. Я не знаю, какую дозу принял тот парень, который писал статью, но рассуждает он очень странно. Ему, видите ли, в голову взбрело, что движок у игрушки воксельный. Причем то, что сам автор игры четко и ясно написал, что движок полигональный, коллегу-журналиста совершенно не смутило. Гм... бывает.
"...Это ничего," - пишет он, - "что автор утверждает, что его движок полигональный. Мы то с Вами не дураки и лучше знаем, что на самом деле он все-таки воксельный..." Такой вот великий знаток.
Александр "Xenocid" Колосков xenocid@xakep.ru
Доспехи бога
В английском языке есть забавное словосочетание - "holy wars". Обычно так называют яростные споры, частенько переходящие в потасовку. Причем заранее известно, что переубедить оппонента не удастся, и весь кайф состоит в самом процессе спора. Так сказать, в возможности непосредственно наблюдать за процессом развития у оппонента обширного кровоизлияния в мозг как результат уничижительного обращения с предметом его обожания. Для holy war годится далеко не всякая тема. Нужно что-нибудь особенное, берущее за живое, заставляющее хватать дубину и колотить мерзавца до полного признания собственной правоты. Для того, чтобы, так сказать, на собственной шкуре прочувствовать, что же это такое, можно, например, заглянуть на "толкиенистскую" тусовку и, глядя в серьезные-пресерьезные лица воинов-эльфов, вооруженныхручками от швабр, развязно заявить, что Перумов на голову круче Толкиена. Вариант второй: явиться на матч "Спартака" с динамовским шарфиком на шее. Впрочем, во втором случае лучше отправляться не одному, а в сопровождении личной охраны с гранатометами и вбронежилетах... иначе процесс осознания всей глубины и значимости термина holy war произойдет хоть и быстро, но довольно болезненно.
Далее, опытным путем установлено, что у любого человека есть что-нибудь святое, и достаточно посильнее пнуть это самое святое, чтобы развязать holy war. Так вот, у господ-программистов подобным идолом является язык программирования, компилятор этого языка и любимая операционная система. На большинство программистов и поголовно на всех "кул хацкеров" слова "Linux suxx" действуют как красная тряпка на быка, вызывая у них приступы неоправданной агрессии и маниакального психоза.
К чему я это все говорю. Дело в том, что я собираюсь развязать небольшую holy war, написав сейчас, что я считаю лучшей операционной системой и лучшим языком программирования. Все слышали? Повторяю, ЛУЧШИМ языком программирования! И вообще, я собираюсь описать то, чем должен пользоваться программист-профессионал, занимающийся разработкой игрушек, а на что он должен, как бы помягче выразиться... наплевать с самой высокой колокольни, которая только найдется в районе его, программиста, обитания. Итак, let`s holy war begins...
Пункт первый. Операционная система
"Я люблю Windows и считаю ее наиболее подходящей платформой для разработки игр". Написал вот, и как-то не по себе стало, как будто в чем-то постыдном признался. Ну не понимаю я, чего все так прицепились к несчастному дядьке Биллу и его творению. Да, Windows не идеальная операционка, но она самая удобная, и это главное. А еще она постоянно развивается, улучшается, наращивает мышцу. Да, я знаю, что Linux надежнее, но разрабатывать игры под Linux`ом - это мазохистское развлечение из серии "в гамаке и стоя". До недавнего времени, кстати, существовал миф о том, что Linux еще и быстрее. Дудки. Моя любимая NT на недавно проведенных соревнованиях по скорости этого выскочку Линукса сделала как ребенка. Линуксоиды всего мира взвыли и заявили, что, дескать, Линукс настроен был не так и вообще исследование проводилось на деньги дядьки Билла. Ладно, уговорили. Следующие состязания провели на нейтральной территории, плюс предоставили линуксоидам возможность настроить свое детище на их усмотрение. Настраивали, настраивали и все равно продули с треском. Осталось только заткнуться и, пробормотав что-то насчет "ошибок, которыебудут исправлены в следующих версиях", тихо уползти в свой мирок. Остальные операционки вообще как конкуренты не рассматриваются. Полумух (OS/2) вроде бы догнил до летального исхода, BeOS ходит в памперсах и слюнявчике, MacOS намертво привинчена к Макинтошам. Так что, как ни крути, а писать нужно под Windows. И это правильно. Наконец, самое главное. Microsoft устранила самую большую проблему, мешавшую разработчикам игр. Все дело в том, что Windows NT на порядок надежнее Windows95/98, и ни одного программиста, поработавшего на NT, обратно в 98-е никакими палками не загонишь. Но, к сожалению, рабочая лошадка всех игровиков - DirectX, в NT реализован в сильно урезанном варианте. Вот и приходилось раньше либо мириться с меньшей надежностью Windows 95/98, либо работать в NT, а для отладки и тестирования перезагружаться в 98-е. Слава Биллу, нашим мучениям пришел конец. Новая Windows 2000 построена на основе NT, и поэтому не менее устойчива и вдобавок полностью поддерживает DirectX. Несколько игр, которые я попробовал запустить в новой Windows 2000, заработали без всяких проблем, причем с той же скоростью, что и в Windows 98. Причем это был не какой-нибудь тетрис, а нормальные игры, активно использующие DirectX и 3D-акселераторы. Вообще, операционная система стала быстрее и надежнее, а системные требования при этом остались на уровне Windows NT 4.0. Так что, пользуясь случаем, хочу передать привет дядьке Биллу и всем его родственникам до седьмого колена включительно.
Пункт второй. Язык программирования
Прежде чем обсуждать, какой язык программирования самый-самый, давай внимательно осмотримся вокруг в поисках странных личностей. Ага, неподалеку мы видим странную личность номер раз... личность яростно водит мышкой по столу и периодически взвизгивает от восторга. Этот человек пишет игры на Visual Basic. Это псих, бояться его не надо, достаточно вызвать санитаров. Следующая странная личность быстро-быстро стучит пальцами по клавишам, набивая в столбик ассемблерные команды. Щеки странной личности периодически раздуваются от переизбытка гордости за свою работу. Еще бы, ведь он пишет игры на чистом ассемблере! Это тоже псих, санитары в этом случае уже не помогут, этого сразу в морг. Необходимость в использовании ассемблера для написания игр отпала уже года три назад. Если ты вдруг обнаружишь неподалеку от себя еще какую-нибудь странную личность, пишущую игрушки на каком-нибудь экзотическом языке, поступи с этой личностью на свое усмотрение, но непременно жестоко и с извращенным цинизмом. Нормальные люди выбирают между тремя языками: Delphi, C/C++ и Java.
Java - замечательный язык, который я тебе очень рекомендую изучить, но, к сожалению, его время еще не пришло. Я думаю, что о более-менее массовом использовании Java можно будет говорить только годика через три. C Delphi все намного сложнее. В принципе, это очень неплохая система, особенно если ты пишешь какие-нибудь небольшие игры типа шашек или домино, но слишком уж много вылезает всяких недостатков при ближайшем ее рассмотрении.
Во-первых, Delphi - продукт, поддерживаемый одной лишь фирмой Borland. Если завтра шальная Годзилла наступит своей когтистой лапкой на их офис или арабские террористы забьют всех борландовых программистов бамбуковыми палками по пяткам, то Delphi прикажет долго жить и ты останешься у разбитого корыта. Тебе это надо?
Во-вторых, все новые технологии разрабатываются для C/C++. Поэтому каждый раз, когда твои знакомые будут вовсю пользоваться новой версией DirectX из своих программ, написанных на С/С++, ты будешь дожидаться, когда, к примеру, студенту-японцу взбредет в голову выпустить новую версию своего DelphiX. А если его укусит гремучая змея и он умрет в страшных корчах, как раз на середине твоего проекта? Я думаю, ты не будешь рад такому развитию событий. Поэтому я абсолютно убежден, что С/С++ - лучший язык программирования для написания игрушек. Убедил? Что!? Нет??? Пригласите, пожалуйста, санитаров... Господа санитары, этот человек неизлечимо болен и подлежит изоляции. Уведите.
Пункт третий. Компилятор С/С++
Ты думал, что на поединке "С++ против всех остальных" священные войны закончились. Как бы не так! Свинья - она где порыться завсегда найдет. Только-только разобрались, что большинство задач, в том числе игры, удобнее всего писать на С/С++, так сразу оказались перед новой проблемой - какой компилятор выбрать.
Маленькое лирическое отступление. Знаешь отчего вымерли бронтозавры, самые знатные, самые толстые Годзиллы, когда-либо топтавшие нашу планету? Не знаешь? А зря. Надо учиться на ошибках своих предков. Вымерли они оттого, что соображали медленно, не успевали реагировать на быстро меняющуюся действительность.
Так вот, за последние несколько лет ситуация с компиляторами С/С++ очень резко изменилась. Правда, некоторые товарищи-разработчики оказались бронтозаврами. В основном это касается тех умников, которые всерьез полагают, что накануне третьего тысячелетия все еще имеет смысл писать игрушки под DOS на Watcom C++. Компилятор, безусловно, отличный, для DOS ничего лучшего точно не придумали. Вот только DOS мы уже похоронили и на могилке джигу сплясали. Такнет, находятся бронтозавры, которые об этом еще не знают. Вдобавок ладно бы для собственного удовольствия писали, так эти наивные ящеры всерьез надеются свои игры продать. Короче говоря, если подобная идея посещала твои неокрепшие мозги, быстрее засунь голову под кран и остынь. Тебе нужны совсем другие инструменты.
Еще одна любимая игрушка бронтозавров - компиляторы от компании Borland. В свое время серия Turbo/Borland C была очень популярна у нас в стране. Популярность, правда, держалась в основном не на качестве компиляторов, а на отсутствии альтернатив. Тем не менее, массовый переход на платформу Windows ребята из Borland прохлопали. Они, конечно, выпустили компиляторы, работавшие под Windows, но качество у них было средненькое. Как результат, новенький,блестящий Visual C++, специально заточенный под Windows, легко обошел на повороте старика Борланда и стал королем дороги. Между прочим, вполне заслуженно. Visual C++ сочетает в себе великолепное качество кода с самой удобной и мощной средой разработки. Добавь к этому MSDN, исполняющий роль хелпа и располагающийся на двух (!) компакт-дисках, и ты поймешь, что это действительно лучший компилятор для Windows.
Заканчивая обзор компиляторов, скажу пару добрых слов о крохотном компиляторе под названием LCC. Его главное достоинство - цена. Ровно ноль долларов и ноль центов. Поэтому если ты написал игрушку и хочешь распространять ее как shareware через Интернет, а денег на приобретение легальной копии Visual C++ у тебя еще не появилось, можно попробовать скомпилировать игрушку с помощью LCC. Кстати, именно LCC выбрал Джон Кармак в качестве встроенного компилятора, который будет использоваться в Quake III: Arena вместо QuakeC. Весит LCC всего около 5 мегабайт, а забрать его можно по адресу www.cs.virginia.edu/~lcc-win32/index.html.
Пункт четвертый, заключительный
В принципе, программисту, кроме компилятора и отладчика, ничего больше не нужно. Тем не менее, есть несколько утилит, которые помогут тебе облегчить разработку.
Во-первых, профайлер Intel VTune. Профайлер - это такая утилита, которая позволяет замерить быстродействие твоей игры и определить, какие куски сильнее всего тормозят и, соответственно, нуждаются в оптимизации. В принципе, в Visual C++ встроен простенький профайлер, но VTune на порядок мощнее и удобнее. Получить его раньше можно было совершенно бесплатно, зарегистрировавшись в Московском отделении Intel как "независимый разработчик". Сейчас, насколько я знаю, халява закончилась. Зато можно на сайте www.intel.ru подписаться на бесплатный CD-ROM (точнее, целых три) для разработчиков. Помимо кучи полезной документации, на этих дисках ты найдешь и оценочную версию VTune с возможностью использования в течении двух недель.
Еще одна необходимая примочка - отладчик SoftIce от Numega. Это единственный отладчик, который позволяет отлаживать программу даже в эксклюзивном режиме DirectDraw и Direct3D. Более того, с помощью SoftIce можно смотреть, как устроена сама Windows. Этот отладчик довольно часто встречается на пиратских дисках, поэтому URL я не указываю.
* * *
Ну и последнее, что я хочу тебе сказать, приятель. Помни, что инструменты - это классно, но самое главное - это прямые руки и мозоль на попе. Иначе не бывает.
Александр "Xenocid" Колосков xenocid@xakep.ru
Как озвучивать игру
Итак, надеюсь, ты уже совершил первые шаги по пути к осуществлению своего грандиозного замысла - созданию собственной игры. Не сомневаюсь, на экране уже задвигались разноцветные тучки пикселей, старательно изображающие из себя крутых компьютерных героев, стала появляться большая красивая, отрендеренная в навороченном 3D-пакете заставка с огромной надписью "MENU" во всю ширь экрана, а знакомые девчонки, прознав о твоих дерзких начинаниях, зачастили в гости, вероятно, с целью пообщаться с весьма перспективным молодым человеком, ну, а в минуты отдыха от близкого общения с перспективным молодым человеком заодно и поиграть в будущий хит игровой индустрии. Казалось бы, все. Что еще нужно для полного счастья! Но не упустил ли ты какой-нибудь мелочи? Запусти свое детище и приглядись внимательнее. Точнее, прислушайся. Ну как, что-нибудь слышно? Нет, шум вентилятора на задней панели компьютера и суетливую возню мышей в куче пивных банок под твоим столом мы в расчет не берем. Прислушайся к тем симпатичным решетчатым дивайсам, которые окаймляют твой монитор (надеюсь, покупая компьютер, ты не сэкономил на звуковой карте и колонках). Опять ничего не слышно? Тогда диагноз ясен. Парень, ты забыл озвучить свою игру! Но не огорчайся. Прочитав следующую главу и проявив немного фантазии, ты сможешь озвучить ее, по крайней мере, на таком уровне, что не будет стыдно ни перед самим собой, ни перед потенциальными игроками, ни тем более перед будущим паблишером. А это уже достаточно много, поверь. Итак, выкручивай ручки громкости до отметки "МАХ", и за работу!
Несколько слов о громкости. Призыв к выкручиванию ручек можешь считать шуткой (если, конечно, у тебя не назрело личной мести к соседям). От громкого звука ты быстро устанешь и потеряешь ощущение желаемого звучания. Слишком тихое звучание контрольной акустики также не рекомендуется ввиду пониженной чувствительности человеческого уха в области низких и высоких частот при малой амплитуде звуковой волны. Подбери громкость такую, чтобы во время озвучки тебя не покидало ощущениезащищенности и чистоты, а главное, чтобы не звучало сухо. Эти правила справедливы не только для этапа подбора и изготовления звуков, но и для процесса их сведения в игре. Запомни, главное - не громко, главное - "сочно" и выразительно, или, как говорят отечественные саунд-дизайнеры, "жирно", а буржуйские - "bigger than life", что приблизительно можно перевести как "гораздо круче, чем можно услышать на улице". Несколько советов об уплотнении звука ты найдешь ниже. Но прежде чем искать, подбирать и обрабатывать звуки, давай определимся, какими средствами ты будешь их воспроизводить в игре. Т.е. поведем разговор о звуковом движке.
Если предыдущие выпуски "Мастерской" не прошли мимо тебя, то можно предположить, что ты уже вовсю пользуешься каким-нибудь свободно распространяемым 2D или 3D-движком. Некоторые из них уже имеют встроенные средства для воспроизведения звуков. Например, к таким относится CDX - вполне подходящий выбор для первой игры. Если ты не чувствуешь в себе сил самостоятельно написать собственный движок, то и не утруждай себя изобретением давным-давно изобретенного. Большая часть того, что тебе сейчас необходимо, уже сделано другими. Причем благодаря либо альтруизму авторов, либо усердию хакеров многое стало общедоступным. Вот минимальные требованияк звуковому движку, который тебя вполне устроил бы: Windows95(98,2k), DirectX 6.0 или выше, 16/8 бит, не менее 22 кГц на воспроизведение, поддержка WAV-файлов. Я опускаю разъяснение таких нюансов, как "частота дискретизации" и "разрядность звука", надеясьна твою хотя бы начальную осведомленность в данной области или, по крайней мере, любознательность при факультативном изучении вопроса. А ежели программирование - твоя стихия, то, разобравшись в работе движка, ты сможешь приладить к нему дополнительные интерфейсы типа Creative Environmental Audio Extension (EAX) и Aureal 3D, добавив звучанию игры неповторимое ощущение пространства и объема (оговорюсь к слову, что все ссылки по статье приведены в микрорубрике "Интернет для "Мастера"). С помощью этих интерфейсов задействуется специфические аппаратные возможности аудио-карточек (SoundBlaster Live и Vortex-совместимых соответственно), сводя загрузку основного процессора звуком практически к нулю. В настоящее время существует принципиально разный подход в работе этих интерфейсов. Первый предоставляет разработчику набор пространств (reverbs), один из которых может быть активирован в любой момент времени, при этом звуки, проходящие через движок, звучат не плоско, а с реверберацией, т.е. в заданном пространстве. В списке заранее заданных пространств ты найдешь пещеры (Caves), комнаты всевозможных размеров (Rooms), холлы (Halls) и другие бункеры, а также сможешь сконфигурировать собственные. Интерфейс Aureal 3D более сложен. Рассчитывая отражения и поглощение звуковых волн в зависимости от геометрии препятствий на пути их распространения, он воссоздает более реалистичную, по сравнению с EAX, картину звука, но в то же время и более сложен в программировании. Скоро, возможно, появятся более мощные версии EAX (те, что выше1.0), ввиду его официальной поддержки со стороны известной в определенных кругах фирмы Microsoft и объявлении о включении его в DirectX 7.0. Поэтому наиболее перспективной мне кажется поддержка именно этого стандарта.
А теперь самое время заняться подбором звуков. Первое, что необходимо сделать - это создать черновой список тех звуков, которые тебе понадобятся в игре. Затем в процессе озвучки ты будешь пополнять и расширять его. Создавая список, старайся давать наиболее полное описание звука, мысленно представь, каким он должен быть. Чем яснее его себе представишь, тем быстрее подберешь.
В поисках источника звуков можно пойти двумя путями. Первый путь - найти в Интернете сайт с бесплатными библиотеками звуков и неспеша переливать их себе на винт, или сайт с коммерческими библиотеками звуков от известных киностудий, которые сами по себе достаточно дороги, но практически всегда представлены на том же сайте демо-версиями, которые там же можно заказать и, спустя пару недель, опять же, совершенно бесплатно получить по почте в виде CD-дисков. Заказать таким образом можно диски, например, в Sound Ideas (о том, как заполняются формы заказа, см. Х #5/99). Огромную онлайн-библиотеку можно найти на сайте Sound Dogs. Вообще-то она платная, но есть маленькая лазейка, которую ты с успехом можешь использовать. Особенность сервиса этой компании заключается в том, что клиент, пользуясь мощной поисковой системой их www-сервера, имеет возможность искать, выбирать и прослушивать звуки, что называется, не отходя от кассы. Завершиввыбор, он расплачивается кредитной картой и позже получает доступ к FTP-серверу Sound Dogs, откуда и сливает звуки. Описанной схеме следуют люди, располагающие внушительными денежными средствами и нуждающиеся в действительно качественных звуках. На данныймомент, я думаю, тебя вполне устроят звуки с пониженной частотой дискретизации. A как раз именно к ним ты и получаешь свободный доступ во время предварительного прослушивания. Итак, последовательность действий такова: www -> жмешь "Login SFX library" -> вводишь любые Name и Password -> вводишь описание звука, например, для выстрела - shot -> жмешь на иконку с изображением громкоговорителя -> на запрос "Записать или воспроизвести" жмешь "Записать", и звук у тебя на харде. Количество звуков, которые ты можешь слить таким образом, ограничено лишь скоростью предоставленного в твое распоряжение Интернет-канала и запасом твоего терпения. Заметь, полученные тобой файлы имеют расширение AU - стандарт, распространенный на компьютерах NeXT, Sun и DEC. Работать с ним не советую, лучше сразу переведи их в формат WAV либо конвертером, например, AWave, либо доступным звуковым редактором, например, SoundForge.
Второй способ поиска и подбора звуков более творческий. Ты делаешь их сам. Это не так сложно, как может показаться на первый взгляд. Твой основной инструмент всегда с тобой... Это твое воображение, а не то, что ты подумал. И подспорье к нему - микрофон, аудио-карта, аудио-редактор помощнее, несколько программных аудио-генераторов и встраиваемых DirectX-модулей (plug-ins). Из аудио-редакторов сразу порекомендую SoundForge версии 4.0 или выше. Удобный, быстрый, да и разобраться в нем несложно. Среди генераторов хотелось бы выделить Orangator - между прочим, дело рук отечественных энтузиастов. Очень советую с ним поэкспериментировать. Найти его можно на сайте MAZ в разделе SoftSynth. А в качестве обработок рекомендую использовать DirectX-модули от компании Waves, отличающиеся высоким качеством и скоростью процессинга, а также понятным интуитивным интерфейсом.
Используя шумы различных бытовых предметов и запись через микрофон, ты можешь сымитировать много интересных звуков. Например, медленное пересыпание мелких болтиков и гаечек практически неотличимо от звука потрескивания небольшого дровяного костра. Не забудь перед записью оградить себя от лишних шумов, что, правда, в домашних условиях почти невозможно... ну, хотя бы попроси домашних не греметь во время записи посудой на кухне и уменьшить громкость телевизора, сутками напропалую вещающего о непрекращающихся изменениях в правительстве. А по окончании процесса обязательно воспользуйся шумодавом, например, тем, который встроен в SoundForge. Эта технология имитации реальных звуков с помощью подручных предметов успешно применяется даже при озвучивании голливудских фильмов и носит название Folley Effects.
Необязательно все звуки создавать с нуля. Дело в том, что некоторые игровые компании не утруждают себя упаковкой ресурсов игры и поэтому зачастую звуки игры можно найти в одной из ее поддиректорий. Выбрав звук, ты можешь смикшировать его с другими, практически до неузнаваемости обработать в аудио-редакторе и, как результат, получить совершенно новый звук (и ничего нелегального и вообще нечестного в этом нет, не беспокойся). Но помни и старайся соблюдать одно непреложное правило: обрабатывай звук на максимально возможной частоте дискретизации (44 кГц) и максимально возможной разрядности (16 бит) и лишь при импортировании звука в игру преобразуй к требуемому формату. Этот прием позволяет минимизировать нежелательные искажения, вносимые различными обработками. В качестве импортируемого формата, приемлемого по качеству для игры и нетребовательного по занимаемому объему, я рекомендую выбрать 22 кГц, 16 бит, моно. Использование стерео-файлов в твоей игре в общем случае излишне, особенно если она уже оснащена технологиями типа DirectSound3D, EAX или Aureal3D. Восьмибитный звук можно считать атрибутом вчерашнего дня, но иногда его использование может оказаться быстрым и дешевым решением некоторой проблемы, например, имитации звука голоса иззашумленной рации.
Подобрав эффекты и расставив их по своим местам, ты можешь обнаружить, что звучат они как-то вяло и тускло, совершенно не погружая в атмосферу игры. Такое может произойти, если не обработать эффекты особым образом. Каждый саунд-дизайнер использует при работе всякие хитрости и трюки, но большинство из них, к сожалению, держатся в секрете, так как именно с их помощью звучание приобретает неповторимость, определяя собственный подчерк саунд-дизайнера. Вот несколько приемов, с которых можешь начать. Первый - компрессия: сжатие динамического диапазона. Субъективно воспринимается как уплотнение и усиление звука. Без нее немыслимы взрывы, выстрелы и другие эффекты, основная цель которых произвести большой "Б-У-У-М!!!". Также незаменима при обработке речи, т.к. выравнивает среднюю громкость и делает громче тихие фразы, а излишне громкие приглушает. Второй прием - эквализация: воздействие на частотный спектр. Компьютерные колонки, несмотря на уверения изготовителей, не обеспечивают полноценного воспроизведения частотного диапазона от 20 Гц до 20 кГц, честно воспроизводя, как правило, среднечастотный диапазон (200 Гц - 14 кГц). А так как твоя игра и твой звук будут жить именно в этой среде, то позаботиться придется об этих критических диапазонах, подняв немного эквалайзером "верхи" и "низы". Поэкспериментируй с модулем Waves MaxxBass. Еще один прием - добавление гармоник: расширение спектра и, как следствие, насыщение и "утолщение" звука. В качестве инструмента попробуй TubeWarmth от 3rd Ear Audio. Одновременно хочется предостеречь от многократного воздействия обработок на один и тот же звук, это может привести к его деградации и ухудшению.
И, наконец, поговорим о концепции и дизайне звуковой картины. Генеральной целью саунд-дизайна является фокусирование внимания игрока на происходящих в игре событиях. Звуковые события не должны рассеивать внимание игрока или отвлекать его на незначимые детали, а обязаны акцентировать его на ключевых моментах игры в нужные моменты времени. Проектируй озвучку так, чтобы игра не содержала совершенно беззвучных мест. Этим грешат даже некоторые современные игры. Отсутствие звукового сопровождения ломает восприятие игрока и лишний раз заставляет его вспомнить, что он всего лишь играет в игру, в то время как твоя цель - заставить его хотя бы на несколько минут почувствовать себя героем иного измерения или участником событий будущего. Как же этого достигнуть? Общее решение таково - постоянный фоновый звук, логически связанный с окружающим миром, плюс набор случайных фоновых звуков, периодически появляющихся и время от времени меняющихся, плюс набор звуков, связанных с определенными действиями игровых персонажей. А остальное на твой вкус...
Велик объем информации, да мал размер печатного листа. Что не узнал из статьи - сможешь найти на просторах всемирной хитросплетенной. Общайся со знающими людьми, благо существует для этого электронная почта и чат, и великое знание снизойдет к тебе. А если у тебя остались вопросы, пиши в редакцию, и ответы, не заставив себя ждать, обязательно появятся на страницах Х.
Олег Овечкин wavman@nikita.ru
Интернет для "Мастера"
CDX
Бесплатная библиотека для разработки игр. Содержит исходные С++ коды простейшего звукового движка на основе DirectX.
The Game Programming MegaSite
http://perplexed.com/GPMega/directx/index.htm
Секреты программирования игр под DirectX, в том числе DirectSound.
Aureal3D SDK
Бесплатная библиотека поддержки аппаратно-акселерированного трехмерного звука для звуковых карт на основе чипа Vortex.
EAX SDK
Бесплатная библиотека поддержки аппаратно-акселерированного пространственного звучания для звуковых карт SoundBlaster Live.
Sound Ideas
Коммерческие CD-библиотеки звуков (есть free-демо).
Sound Dogs
Коммерческая онлайн-библиотека звуков (как сливать, см. статью "Как озвучивать игру").
SoundForge
Мощнейший звуковой редактор. Советую!
Tiny Wave Editor
www.yamaha.co.uk/synth/html/current/samplers/a3000/f_twe.htm
Совершенно бесплатный и очень компактный звуковой редактор от мотоциклетной фирмы Yamaha.
MAZ
Генераторы, рипперы, утилиты и много другое.
Олег Овечкин