16
Антон Ольховик Программист, департамент клиентских игр www.mail.ru Звуковая система «Аллодов Онлайн»

Звуковая система «Аллодов Онлайн»

  • Upload
    -

  • View
    744

  • Download
    1

Embed Size (px)

DESCRIPTION

Докладчики: Дмитрий Патраков, директор по звуку на проекте «Аллоды Онлайн»; Антон Ольховик, программист команды клиента на проекте «Аллоды Онлайн».

Citation preview

Page 1: Звуковая система «Аллодов Онлайн»

Антон ОльховикПрограммист, департамент клиентских игр

www.mail.ru

Звуковая система «Аллодов Онлайн»

Page 2: Звуковая система «Аллодов Онлайн»

Для чего это нужно?

Цель: дополнение игровой атмосферы

Задачи: воспроизведение и остановка нужных звуков в нужное времяреалистичное и согласованное звучание

www.mail.ru 2

Page 3: Звуковая система «Аллодов Онлайн»

Категории звуковых явлений

Действия (бег, удар, падение)События (скриптовые сцены)Голоса/эмоцииФоновые звуки (ambient)Музыка

Сложные/составные явления(звук от болота, от системы громкоговорителей)

www.mail.ru 3

Page 4: Звуковая система «Аллодов Онлайн»

Типы источников звука

2D — воспроизводится через колонки «как есть»

Имеет положение в пространстве, согласованное с визуальной сценойРаспределяется по каналам в процессе рендеринга звуковой сцены

www.mail.ru 4

Page 5: Звуковая система «Аллодов Онлайн»

Звуковой контент

Необходимость использования аудио-компрессииБольшое количество схожих звуков

Объединение всех вариаций в один элемент

Одни звуки часто включают в себя другие

Использование звуковых банковСобытие (sound event) — комбинация банков + правила воспроизведенияЭкземпляр события — готовый источник звука, имеет положение, направление, громкость и т.д.

www.mail.ru 5

Page 6: Звуковая система «Аллодов Онлайн»

Архитектурные решения

Gfx GUI ... SndПодсистема

нетMiddleware

APIs

нет FMOD

Direct3D DirectSound(Xbox 360,

PS3, iPhone, ...)

Phys

нет

нет

Унифицированная «обёртка» над множеством APIУдобная система «звуковых событий»Готовые средства разработки для звукового дизайнера

Engine

www.mail.ru 6

Page 7: Звуковая система «Аллодов Онлайн»

Необходимый функционал

www.mail.ru 7

Возможность воспроизведения звука

Обработка, микширование

Что воспроизводить

Обработка, микширование

Как воспроизводить

Когда воспроизводить

Audio API

Middleware

Sound Engine

Page 8: Звуковая система «Аллодов Онлайн»

Взаимодействие с ресурсной системой

www.mail.ru 8

Кеширование звуковых банков, подгрузка и выгрузка по мере необходимости

Способ хранения – ZIP-архив с разными степенями сжатия → виртуальная файловая система → отложенная загрузка ресурсов в отдельном потоке

Источник звука запущен, но банк не подгружен → воспроизведение начнётся по окончании загрузки

Короткие события загружаются в память полностью, длинные (музыка, амбиенты) — читаются с диска по мере воспроизведения

Page 9: Звуковая система «Аллодов Онлайн»

Структура движка

www.mail.ru 9

SoundCategorySoundCore

SoundSystem SoundEvent

SoundProject SoundBank

DataProvider

Page 10: Звуковая система «Аллодов Онлайн»

Структура движка

www.mail.ru 10

UI

MoveSfxPlayer

AmbiencePlayer

MusicPlayer

SoundCore

Пользовательские настройки

Содержимое звуковых банков

...Задание положения слушателя, запрос отладочной информации

Создание источника звука, управление им

GlobalStorage

DataProvider

Page 11: Звуковая система «Аллодов Онлайн»

Хранение звуковых событий

www.mail.ru 11

Project

Banks

(описания событий)

(аудио-данные)

(тип источника звука)

Все проекты загружаются сразу, при создании звуковой системы

Банки кэшируются. Когда загруженно максимальное число банков, производится выгрузка неиспользуемых (если таковые имеются)

Event

Page 12: Звуковая система «Аллодов Онлайн»

Управление воспроизведением

www.mail.ru 12

Звук рендерится в отдельном потоке с высоким приоритетом – «запинки» недопустимы

Управляющее воздействие (создание экземпляра события, изменение его позиции и параметров) приходит только из основного потока

Раз в кадр: soundSystem->Update()Все изменения применяются разом

Page 13: Звуковая система «Аллодов Онлайн»

Анимационные плееры

www.mail.ru 13

Персонаж

Состояния:

Бег

Начало прыжка

Ключевые кадры:[10, 25, 40]

Звук = startJump

Звук = run

Пока звук играет – храним указатель на него, т. к.:

Нужно перемещать вслед за персонажем

Нужно вовремя остановить, напр. смена состояния, зацикленный звук

Нужно изменять параметры, напр. «тип поверхности»

Page 14: Звуковая система «Аллодов Онлайн»

Музыкальный и амбиентный плееры

www.mail.ru 14

Задержки перед началом и повтором воспроизведения

Зоны на карте

Время сутокАзимут

Таймаут при смене зоныПриоритет трека

Помещения, а также их составные части – отдельные зоны

Пресет реверберацииДополнительные параметры

Page 15: Звуковая система «Аллодов Онлайн»

Протяжённые источники звука

www.mail.ru 15

2D

Page 16: Звуковая система «Аллодов Онлайн»

Антон ОльховикПрограммист, департамент клиентских игр[email protected]

Спасибо!

Mail.RuРазработчик игр и сервисов №1Крупнейший работодатель в отрасли

Работайте у нас[email protected]://corp.mail.ru/career/vacancies/voronezh

www.mail.ru