|
Модераторы: Rickert, Alexeis, BorisVorontsov |
|
chipset |
|
||||
Эксперт Профиль Группа: Экс. модератор Сообщений: 4067 Регистрация: 11.1.2003 Где: Seattle, US Репутация: нет Всего: 164 |
Часть первая:FMOD
Введение Не секрет, что одной из основных составляющих хорошей игры является музыка и звук. Кажется бредовой мысль о игре без звукового сопровождения, не правда ли? Однако, стандартными средствами Win32Api очень сложно воспроизвести звук формата MP3, или, набирающего популярность OGG. Кроме того, в 3D шутерах возникает необходимость в 3D-звуке, который также, очень трудно реализовать. Некоторые пытаются использовать DirectMusic, но он не предоставляет большого ассортимента средств и полностью ограничен платформой Windows, что может быть и не так уж важно для программистов DirectX'а, но может стать стеной для тех кто хочет портировать свои программы на другие платформы... И тут на помощь, приходят сторонние библиотеки, наподобие FMOD. Про неё я собственно и поведу рассказ сегодня. FMOD поддерживает популярные сегодня форматы записи звука: midi, mp3, ogg vorbis, wma, aiff; позволяет записывать звук, работать с интернет-потоками, риппинг дисков, MMX, хардварная акселлерация EAX 2&3 и многое другое... Список поддерживаемых платформ совсем нехилый: Windows, Linux, Macintosh, GameCube, PS2 и XBox! Из языков программирования, FMOD поддерживает: C++, C, Delphi и VB. Из недостатков я хотел бы подчеркнуть: процедурное программирование и неподдерживающаяся Java. Установка Я надеюсь, вы уже подобрали отвисшую челюсть, так что я могу как-бы продолжать.. Официальный сайт проекта - http://fmod.org. Смело шагаем по адресу - http://fmod.org/ifmoddownload.html, выбираем нужный дистрибутив в зависимости от вашей операционки и качаем.. Скачали? Хорошо, продолжим.. Я выбрал Windows дистрибутив, надеюсь Linux-девелоперы смогут проложить аналогии и установить FMOD. Кроме того, я буду использовать, не Delphi, как могли подумать некоторые, а C++ и компилятор VC7.1. Я просто распаковал архив в временную директорию и начал раскидывать файлы по нужным папкам FAR'ом . Для установки FMOD'а нам нужна его субдиректория по имени "api", там находятся библиотеки и хидэры. В папке api\inc, лежат *.h файлы которые нам необходимо скопировать в соответствующую директорию визуала. У меня это "F:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\". Для порядка, создадим поддиректорию \fmod и скопируем туда всё содержимое api\inc. Теперь скопируем нужный lib файл в директорию для lib файлов. У меня она находится в "F:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib". В директории фмода api\lib находится несколько файлов, из названий которых мы видим, что сабж поддерживает Watcom C(fmodwc.lib), LCC(fmodlcc.lib), Borland C(fmodbc.lib), 64-битный VC(fmod64vc.lib), просто VC(fmodvc.lib) и наконец g++(libfmod.a) Сейчас нам нужен fmodvc.lib, который мы и копируем.. Последним шагом нам необходимо положить динамическую библиотеку api\fmod.dll (160 KB), которую нам предстоит таскать за собой.. Пока, давайте просто скопируем её в вашу системную директорию (у меня: F:\Windows\System32). Начинаем кодировать Теперь, можно попробовать FMOD на деле. Создайте Win32 Console Project (не забываем, у меня VC7.1) с параметром Empty, добавьте файл типа .cpp и скопируйте следующий код:
Всё должно работать Завершение Теперь про самое главное. В папке "место_куда_вы_распаковали_fmod\documentation" находится файл fmod.chm, который активно изображает из себя MSDN и предоставляет справку по всем функциям FMOD'a. С ним вам придется активно работать... Удачи вам в программировании звука! Ваши комментарии, пожелания или оскорбления Автор не несёт уголовной ответственности за грамматические ошибки. --------------------
|
||||
|
|||||
chipset |
|
||||
Эксперт Профиль Группа: Экс. модератор Сообщений: 4067 Регистрация: 11.1.2003 Где: Seattle, US Репутация: нет Всего: 164 |
Часть вторая: Audiere
Доброго времени суток! В прошлой статье fMOD: заметки очевидца, я писал о библиотеке для работы со звуком под названием FMOD. Сегодня я продолжу описывать звуковые библиотеки, и следующим предметом обсуждения будет Audiere. Постараюсь одновременно сравнивать её с FMOD'ом, чтобы вы могли определиться в выборе. Итак! Библиотека Audiere довольно старовата, последняя ревизия (1.9.3) была выпущена аж в июле 2003-ого, в то время как последняя новость на сайте FMOD значится 11-ого января, 2005-ого года. Впрочем, если для вас это не критический недостаток — читаем дальше. Описание Audiere проигрывает следующие форматы звуковых файлов: Ogg Vorbis, MP3, FLAC, несжатый Wav, AIFF, MOD, S3M, XM, и IT. Из платформ поддерживается: всеми любимые Винды, Линукс и IRIX. Как мы видим, приставки Audiere обделил. Опять-же, если для вас это критический фактор — можете сразу переходить к изучению документации по FMOD. Хотя главным языком для библиотеки и является C++ (не Си, см. ниже), с ней также можно работать и под Java, Python и XPCOМ. Домашняя страница Audiere расположена по адресу http://audiere.sourceforge.net. Пройдя на список проектов, которые используют Audiere( http://audiere.sourceforge.net/users.php), мы узнаем, что там, среди всей тучи прочего, числится такой известный движок, как Irrlicht, и несколько игр которые были написаным RSDN'овцами Практически основополагающим фактором, который может кардинально повлиять на ваше решение, является то, что Audiere является полностью бесплатной, распространяется по лицензии LGPL, и поставляется с исходниками. Это выгодно отличает его от ФМода, за использование которого в коммерческих проектах необходимо платить. Опять-же, для некоторых это не является большой проблемой. Практика После того как вдоволь насерфились по офсайту, давайте попробуем всё это дело установить и попробовать написать какой-нибудь тестовой пример. Я буду использовать Visual Studio 2003 и C++, по причинам, описанным в предыдущих заметках очевидца. Скачайте последний Win32 Binary Release(отсюда: http://audiere.sourceforge.net/download.php,558 KB) и распакуйте его в ту папку где вы обычно храните внешние библиотеки (у меня, к примеру, это: f:\libs\). Лирическое отступление: Меня таки удалось переубедить, складывать библиотеки и включаемые файлы не в папку компилятора, а в отдельный каталог. Хотя, я до сих пор считаю это делом вкуса.. Таким образом, у вас образовалось пять папок: bin, bindings, doc, include, и lib. Теперь, пропишите полный путь к lib (MSVS2003->Tools->Options->Projects->VC++ Directories->Show directories for: Library files->кнопка с изображением папки->укажите папку где лежат lib) и inc(то же самое, только: Show directories for: Include files и укажите папку include). Теперь, создайте новый Win32 Console Project с параметром Empty project и добавьте .cpp файл. Ещё одна маленькая деталь: перед тем как мы напишем небольшой пример, добавьте в корень свежесозданного проекта файл audiere.dll из <каталога_с_audiere\bin>. Теперь мы полностью готовы. Первое что я заметил приступив к изучению библиотеки, была полностью обьектно-ориентированная структура оной, в сравнении FMOD который является чисто — процедурной библиотекой. Это вполне логично, поскольку он связан по рукам и ногам Visual Basic'ом. Ещё одно очко в пользу Audiere... или FMOD, всё зависит от целей которые вы преследуете. Итак, вот код, попытался выкинуть всё лишнее и ненужное:
Выводы Подведем итоги! Что мне удалось выявить в Audiere, по сравнению с FMOD: Преимущества:
Недостатки:
Окончательные выводы Кому может быть полезен Аудиер? Так и вырисовывается целевая аудитория: разработчики игр, которые не хотят таскать с собой тяжеленные WAV'ы, и которым просто нужно проигрывать игровой звук(кстати FLAC неплохо его сжимает). Кроме того, они зверски не хотят платить за FMOD, предпочитая обходиться бесплатными продуктами. С другой стороны, я думаю что FMOD заинтересовал бы разработчиков плееров, обработчиков звука, команд работающими над какими-нибудь сложными 3D-шутерами с неменее сложным, 3D-шным звуком, для которых сумма за лицензию — смешна. Ну а вообще.. решение зависит только от вас! --------------------
|
||||
|
|||||
Вы можете найти полезным что... | |
|
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |