|
20.10.2011, 23:23
|
#1
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Russian Sound System
В играх очень мало уделяется внимания звуку - "ай нахватаю звуков из игр и буду счастлив". Без эффектов окружения звук проигрывается сухо и в большинстве случаев не вписывается в окружение( выстрел в закрытом большом каменном помещении звучит как в чистом поле ). Я решил исправить эти недостатки и сделать чисто русскую звуковую библу - для своих!
Что пока имеется:
1) Сырая версия умеющая грузить wav файлы.
2) Куча! ( около 113 ) всевозможных эффектов окружения( EAX + EFX ) - начиная от гостинной и заканчивая космической станцией.
3) Специальная фишка( Environment AABB ) меняющая настойки при переходе из одной среды в другую. Все происходит автоматически - слушатель движется - настройки меняются.
4) Разные мелкие плюшки.
Библа написана на C++ с использованием OpenAL.
Собственно тема планируется как дневник для записи хода разработки. Здравая критика приветствуется.
Че в архиве? Демка движка - на блицевском сдк в качестве рендерера. Большая бетонная комната в ней поменьше. Ходим WSAD. "Стреляем" левой кнопкой мыши. Если выдает ошибку - ставим oalinst.exe
Ps. это всего лишь начальная стадия - у всех она бывала. тем более звук - это новое для меня поприще.
pss. исходники по требованию
__________________
|
(Offline)
|
|
Эти 13 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
|
ANIK123 (24.10.2011), ARA (20.10.2011), baton4ik (20.10.2011), dsd (20.10.2011), FireOwl (21.10.2011), H@NON (21.10.2011), HolyDel (21.10.2011), Nex (21.10.2011), pax (21.10.2011), Reizel (21.10.2011), Reks888 (21.10.2011), SBJoker (21.10.2011), St_AnGer (21.10.2011)
|
21.10.2011, 01:27
|
#2
|
Бывалый
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений (для 1,836 пользователей)
|
Ответ: Russian Sound System
Во время теста бегал старательно огибая стены, пока не заметил, что коллизии отсутствуют
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо FireOwl за это полезное сообщение:
|
|
21.10.2011, 02:02
|
#3
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Russian Sound System
как я понял, сабж - враппер опенала с ААББ фичей и кучей готовых пресетов окружения?
|
(Offline)
|
|
22.10.2011, 11:39
|
#4
|
|
Ответ: Russian Sound System
Ты главное поддержку .ogg сделай. =) А на .mp3 можно смело плюнуть =)
|
|
|
Сообщение было полезно следующим пользователям:
|
|
22.10.2011, 13:18
|
#5
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
Да! Уже работаю. Парюсь с подзагрузкой файла с диска( чтобы память не лохматить )
__________________
|
(Offline)
|
|
22.10.2011, 14:34
|
#6
|
Бывалый
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений (для 245 пользователей)
|
Ответ: Russian Sound System
Требует загрузку MSVSP100.dll. Сделай без нее.
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.10.2011, 14:39
|
#7
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
Ок. У меня студия 10. Потому и требует. Сам движок после полной отладки планируется перенести в отдельную длл'ку
__________________
|
(Offline)
|
|
22.10.2011, 15:10
|
#8
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
Как вы считаете - требуется ли дозагрузка файла с диска по мере необходимости?
Мне кажется что не очень, т.к. если даже в вашей игре будет около 200 звуков. То при средней длительности в 2 секунды общий объем ИКМ( PCM ) данных будет не более 60 мб. В общем как скажете так и сделаю.
__________________
|
(Offline)
|
|
22.10.2011, 15:29
|
#9
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Russian Sound System
стриминг нужен обязательно. но это должны быть две разные вещи - звуки и музыка. звуки небольшие и играются часто - должны быть в оперативке. музыка играется редко и большая - она должна стримиться.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
|
|
22.10.2011, 19:18
|
#10
|
|
Ответ: Russian Sound System
Не обязательно разбивать на звук и музыку, достаточно в функции загрузки поставить флаг стриминга.
И еще... не забудь сделать возможность ручного управления размера буффера для стриминга
|
|
|
Эти 4 пользователя(ей) сказали Спасибо за это полезное сообщение:
|
|
23.10.2011, 16:05
|
#11
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Russian Sound System
Хм, запустил - по-моему что в домике, что снаружи звуки играются одинаково.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
23.10.2011, 21:56
|
#12
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
Ребята, объяните популярно - как правильно сделать стриминг. Я уже мозг сломал.
Кстати загрузку ogg реализовал. Осталось этот стремный стриминг сделать.
Насколько я понял нужно делать так:
Грузим кусок данных в буфер. Ставим буфер в очередь проигрывания. Как только буфер проигран, убираем его из очереди. Дальше грузим следующий кусок данных и забрасываем их в тот же буфер. Буфер обратно в очередь проигрывания. НО! Как сделать подкачку, если с семплом работают МНОГО источников? Держать вечно открытым файл и в каждом источнике хранить позицию следующего куска данных в буфере и подзагружать их с неё? На геймдеве читал статью
http://www.gamedev.ru/code/articles/OpenAL
но там говнокод - слишком сильная интеграция загрузчика и OpenAL'a.
__________________
|
(Offline)
|
|
24.10.2011, 20:37
|
#13
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Russian Sound System
пользователь зовет функцию OpenSoundStream
библиотека создает новый поток
в потоке открывает файл ТОЛЬКО для чтения
в функции есть код вида
while(!stream.eof())
{
if(need_reed_next_chunk())
{
stream.Read(somechunk,somechunk.size());
playchunks.add(somechunk);
}
}
естественно, со стримящейся музыкой должен работать ОДИН проигрыватель.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
24.10.2011, 21:46
|
#14
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Russian Sound System
естественно, со стримящейся музыкой должен работать ОДИН проигрыватель.
|
т.е для обычных звуков стриминг не нужен? А что насчет моего подхода - в каждом источнике хранить позицию следующего куска данных. Если нужен этот кусок - грузим из с позиции( ifstream.seek ) и записываем в буфер( файл при этом всегда открыт )? Не? Или это тормозно?
__________________
|
(Offline)
|
|
25.10.2011, 01:37
|
#15
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Russian Sound System
вообще все ето работать должно в других потоках, такчто не так уж и важно. ну поиск по файлу до 10мс в худшем случае. на практике етот файл будет в кэше жесткого диска скорее всего и будет почти бесплатно. но ето очень стремно - когда одну музыку надо играть в разных местах. для звуков (повторно проигрывающихся) зачем стриминг? если это звук роде там смены уровня - то пусть стримится. если ето звук выстрела - то грузи в оперативку целиком.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:07.
|