Звуковые движки для Game Maker (и немного о трекерной музыке)

В начале нулевых, во времена dial-up и помегабайтных тарифов, основной головной болью всех пользователей Game Maker (да и вообще всех разработчиков-любителей) была задача уменьшения размера игры, чтобы ее можно было без проблем передавать через Интернет. Большие игры (10 Мб и более) люди скачивали неохотно, и аудитория у них была заметно меньше.
Ресурсы сжимали кто как мог - вовсю использовались JPEG для фонов и 8-битные звуковые эффекты. Самой проблемной частью была музыка. Игры 90-х обычно использовали MIDI, и какое-то время этот формат был де-факто стандартом и для GM. Но времена MIDI уже безвозвратно уходили, всем хотелось музыки посовременнее. При этом пихать в игру многомегабайтовые MP3 все еще считалось непростительной роскошью, поэтому многие обратились к трекерным форматам - появились DLL-библиотеки для GM, позволяющие их воспроизводить.
Для тех, кто не знает, трекерная (ее еще называют модульной) музыка - это альтернатива стандартному формату MIDI. Трекерные мелодии также представляют из себя последовательности нот, но, в отличие от MIDI, они используют не синтезированные звуковой картой инструменты, а заранее записанные сэмплы. Как следствие, трекерные мелодии звучат намного качественне, чем MIDI, при этом сохраняя небольшой размер (обычно менее 1 Мб, очень часто - считанные килобайты).
Выделяют обычно четыре наиболее распространенных трекерных формата: MOD, XM, S3M и IT. Они уходят корнями в софт, разработанный для любительских компьютеров 80-х (Amiga, ZXSpectrum, Commodore 64 и т.д.), которые не имели достаточно памяти, чтобы работать с потоковым аудио. Умельцы-хакеры нашли выход - изобрели новый способ хранения и воспроизведения музыки, заточенный под маленький размер файлов и низкие требования к системе.
Развитие трекерной музыки было также тесно связано с демосценой - искусством создавать реалтаймовые анимационные ролики без готовых ресурсов, где все ресурсы генерируются процедурно. Самым уважаемым среди хакеров жанром демосцены были интро - ролики, умещающиеся в несколько килобайт машинного кода (обычно 64 или 32 кб). Именно в них наиболее активно использовалась трекерная музыка.
Те хакеры, которые посвятили себя взлому программ, любили вставлять интро и трекерные мелодии во взломанные версии софта - эта традиция впоследствии перекочевала на PC, и в результате трекерная музыка в характерном для кейгенов "8-битном" стиле chiptune стала прочно ассоциироваться с хакерской субкультурой. В профессиональном же геймдеве трекерная музыка не прижилась, поскольку наступила эра компакт-дисков - игры на консолях и компьютерах 90-х перешли на CD-audio и, соответственно, музыку студийного качества.

Представленные ниже раритеты - это звуковые движки для Game Maker, большинство из которых полноценно поддерживают воспроизведение трекерной музыки. Они вполне работоспособны и сейчас - правда, к сожалению, не сопровождаются исходниками.
BGM
BGM - небольшой и удобный движок для воспроизведения большого количества форматов аудио. Построен на известной бесплатной библиотеке BASS, разработанной Un4seen, которая с успехом используется в различном ПО (самый яркий пример - популярный отечественный аудио-плеер AIMP). BGM поддерживает MP3, MP2, MP1, OGG, WAV, XM, IT, S3M, MOD, MTM, UMX и, конечно, оригинальный формат BASS - MO3. Отличительной чертой этого формата от всех остальных трекерных форматов является эксклюзивный алгоритм сжатия сэмплов, который позволяет уменьшать размер файла аж до 25% без заметных потерь в качестве.
Подробную информацию о BASS и формате MO3 вы можете найти на сайте Un4seen: http://www.un4seen.com.
BGM чрезвычайно удобен в использовании. Для начала воспроизведения любого файла достаточно написать всего две функции - это важно для тех, кому сложно запоминать длинные названия. Имеется поддержка всех базовых функций управления - пауза, остановка, изменение громоксти, проверка на факт проигрывания.

Разработчик - The Music Guy
Скачать (163 кб)
GMBass
Еще один движок на основе BASS. Есть исходник.

Разработчик - ???
Скачать (148 кб)
GM Squall v2.0
Библиотека от российского разработчика. Построена на популярном некогда звуковом движке Squall, который был настоящей легендой среди российских программистов: чего стоит только слух, что модифицированный Squall был использован в игре S.T.A.L.K.E.R.!
GM Squall включает эксклюзивные управляющие структуры - специальные менеджеры для управления отдельными каналами одного и того же звука (сэмпла), систему удобного хранения загруженных сэмлов с распределением на группы, имеет поддержку трехмерного (позиционного) звука и т.д. Кроме того, имеется возможность настраивать как сэмплы, так и менеджеры, изменяя громкость и даже частоту. Для трехмерных звуков Вы можете назначать позицию и параметры слышимости. Нельзя не упомянуть, что позиционирование возможно по всем трем координатным осям (x, y, z), что дает данному движку огромное преимущество: можно использовать объемный звук в 3D-играх!
Как и оригинальный Squall, библиотека поддерживает много популярных форматов, включая трекерные. Также имеется поддержка эффектов EAX1/2/3.

Разработчик - Chaser (Freefly Studios)
Скачать (241 кб)
XeAudiere
Враппер еще одной популярной звуковой библиотеки - Audiere. Поддерживает форматы WAV, AIFF, OGG, FLAC, MP3, MOD, XM, S3M, IT. Умеет как стримить звуки, так и полностью загружать их в память. Всключает стандартные опции аудио: переход на нужную позицию в треке, изменение громкости, высоты и стереопозиции.

Разработчик - PsichiX
Скачать XeAudiere 1.7 (6,6 Мб) (большой размер связан с тем, что в архив помещен MP3-файл).
Saudio
Неплохая библиотека для воспроизведения множества разных форматов. Saudio не знаком с трекерами, но зато поддерживает целых 28 (!) потоковых форматов: AIF, AIFC, AIFF, ASF, ASX, AU, AVI, CDA, M1V, M3U, MIDI, MP2, MP2V, MP3, MPA, MPE, MPEG, MPG, MPV2, RMI, SND, WAV, WAX, WM, WMA, WMV, WMX, WPL, WVX. В данном списке числятся не только аудио, но даже видеоформаты!
Поддерживаются все стандартные функции + поддержка перехода на нужную позицию в треке, чтение длительности, количества каналов и bps, а также возможность записи с выбранного источника.

Разработчик - Andrewmc
Скачать (16 кб)
JBFMOD
JBFMOD (сокращение от JukeBox FMOD) - библиотека, специально написанная для воспроизведения трекерных форматов в GM. Она разработана на базе популярного звукового движка FMOD от Firelight Multimedia, но использует далеко не все его возможности, а исключительно связанные с трекерной музыкой. JBFMOD поддерживает форматы MOD, XM, S3M и IT.
Библиотека имеет широкий набор функций по контролю над звуком. Имеются все стандартные функции плюс поддержка спектральной визуализации, стереозвучания, Zxx-команд, а также возможность загружать треки из сжатого PAK-архива, распаковать который невозможно. Архив можно также защитить от несанкционированного использования, связав с конкретным EXE'шником.

Разработчик - M. Rijks
Скачать (3,3 Мб)
SXMS2
SXMS, также основанная на FMOD, по праву считается наиболее мощной сторонней аудио-библиотекой для GM. Судите сами: поддерживаются все популярные форматы (MOD, S3M, XM, IT, MIDI, RMI, SGT, FSB, RAW, WAV, MP2, MP3, OGG, WMA, ASF, AVI, OXM, HTTP, CDA), эффекты DirectX 8.1 (ревербация, эквалайзер, компрессор и др.), визуализация, DSP, автономное управление каждым треком, многоканальное воспроизведение, возможность выбора источника звука (включая даже сетевые ресурсы), а также записи с различных источников (микрофон, линейный выход). Но это еще далеко не все. SXMS2 поддерживает плагины Winamp (причем как in, так и out), что позволяет существенно расширить возможности библиотеки. Например, таким образом можно в GM воспроизвести SPC - формат, в который эмуляторы SNES записывают музыку из игр (в свое время было очень популярно создание римейков 8- и 16-битных игр, и подобная возможность пришлась очень кстати).
Но и это еще не все. Чтобы окончательно подавить конкуренцию, в SXMS есть также поддержка трехмерного звука, причем даже более функциональная, чем в GM Squall: для Слушателя (Listener) можно установить не только позицию, но и скорость и ориентацию движения, а для всей системы - фактор расстояния, фактор рассеивания и эффект Допплера.
В архив, помимо библиотеки и документации, включено несколько плагинов Winamp.

Разработчик - Brandon Rohrer aka Shaltif
Скачать (1,4 Мб)
SXMS3
Третья версия SXMS. Обеспечивает поддержку FMOD4 и включает множество новых функций.

Разработчик - Brandon Rohrer aka Shaltif
Скачать SXMS 3.0.6.2b (2,7 Мб)
SG Audio
Библиотека на основе OpenAL. Воспроизводит WAV и OGG, поддерживает стриминг и 3D-звук. Имеет очень простой и интуитивный API.

Разработчик - snake5
Скачать (1,4 Мб)
GMSPC
Библиотека, позволяющая воспроизводить аудио формата SPC, в который эмуляторы SNES записывают музыку из игр. Очень удобная вещь, если вам не хочется обременять игру относительно тяжелым SXMS и Winamp-плагинами. Очень проста в использовании - состоит всего из двух функций, Init и Play.

Разработчик - Jaklub
Скачать (420 кб)



Hosted by uCoz