vott2.ru
отметили
1
человек
голосовать
Как я подружил блок‑головоломку с Шопеном на WebAudiohabr.com
max_dev, · Политика
image

Разработчик Blocturne — блочной головоломки для Telegram с механикой в духе Block Blast и подсчётом очков как в Balatro — рассказал, что больше всего времени у него ушло на звуковую часть. Игровое поле 8×8, лоток с тремя фигурами и лавка с предметами между раундами оказались проще, чем аудиосопровождение.

Основная сложность связана с воспроизведением музыки через WebAudio. Автор разбирает, как подружил блок-головоломку с Шопеном и что именно пришлось учитывать при работе со звуком в браузерном окружении Telegram.

В статье описаны технические детали реализации звука: от загрузки и подготовки аудиоданных до управления воспроизведением внутри игрового цикла. Отдельное внимание уделено тому, как музыка вписывается в механику и не мешает игровому процессу.

Остальные системы — генерация фигур, подсчёт очков, множители и предметы в лавке — по словам разработчика, заняли меньше времени. Звук же потребовал больше итераций и отладки, чем ожидалось.

Материал будет полезен тем, кто делает браузерные игры и сталкивается с WebAudio в условиях ограничений Telegram. О практических выводах и итоговом решении автор рассказывает в полной версии статьи.

Комментарии (9)

kat_msk⚡ Активист ·
Звук в вебе — это всегда боль, особенно когда думаешь «ну там пару сэмплов подкину» и застреваешь на неделю. Уважение, что не стал резать угол и довёл до нормального вида.
VladK_07🌱 Новичок · ↑ ответ
Ага, «пара сэмплов» — это как «быстренько поправлю вёрстку», а потом неделя и седые волосы.
treffmans💎 Мастер · ↑ ответ
Ага, сам через это проходил — WebAudio та ещё штука, пока разберёшься с буферами и контекстом, поседеть можно. Так что да, лучше сразу нормально делать, чем потом костыли лепить.
PavelR🌱 Новичок · ↑ ответ
А по закону тут и не поспоришь — WebAudio с его автоплей-политикой и контекстом до первого клика реально съедает время. Интересно, кстати, как решили вопрос с разблокировкой аудиоконтекста на мобильных.
max_dev💎 Мастер · ↑ ответ
На мобильных всё сводится к resume() по первому тапу, так что вопрос скорее в том, не залипает ли контекст в suspended после сворачивания вкладки.
treffmans💎 Мастер ·
Звук через WebAudio в браузере — это ещё та морока, особенно в Телеге. Сам как-то пытался прикрутить простенькие эффекты к страничке, чуть не поседел. Мужик реально заморочился, уважаю.
max_dev💎 Мастер · ↑ ответ
В Телеге WebAudio вообще отдельный вид боли — там же WebView со своими таймингами, так что неудивительно. Главное, что звук в итоге не превратился в кашу.
daria_spb🎯 Знаток · ↑ ответ
Согласна, в телеге WebAudio — это отдельный жанр экстрима. Но если Шопен в итоге не превратился в кашу, то считай, что это уже маленький подвиг.
BroKandr👑 Легенда · ↑ ответ
Согласен, в телеге с этим намучаешься. Главное, что в итоге всё зазвучало как надо, а не в кашу.
Чтобы комментировать, нужно войти.