Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты C++

Ответ
 
Опции темы
Старый 20.10.2011, 23:23   #1
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 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. исходники по требованию
Вложения
Тип файла: rar SoundSystem2.0.rar (1.04 Мб, 663 просмотров)
__________________

(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
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: Russian Sound System

Во время теста бегал старательно огибая стены, пока не заметил, что коллизии отсутствуют
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо FireOwl за это полезное сообщение:
Dream (21.10.2011), Reizel (21.10.2011)
Старый 21.10.2011, 02:02   #3
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Russian Sound System

как я понял, сабж - враппер опенала с ААББ фичей и кучей готовых пресетов окружения?
(Offline)
 
Ответить с цитированием
Старый 22.10.2011, 11:39   #4
Черный крыс
 
Сообщений: n/a
Ответ: Russian Sound System

Ты главное поддержку .ogg сделай. =) А на .mp3 можно смело плюнуть =)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (22.10.2011)
Старый 22.10.2011, 13:18   #5
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: Russian Sound System

Да! Уже работаю. Парюсь с подзагрузкой файла с диска( чтобы память не лохматить )
__________________

(Offline)
 
Ответить с цитированием
Старый 22.10.2011, 14:34   #6
Morganolla
Бывалый
 
Аватар для Morganolla
 
Регистрация: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (22.10.2011)
Старый 22.10.2011, 14:39   #7
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: Russian Sound System

Ок. У меня студия 10. Потому и требует. Сам движок после полной отладки планируется перенести в отдельную длл'ку
__________________

(Offline)
 
Ответить с цитированием
Старый 22.10.2011, 15:10   #8
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: Russian Sound System

Как вы считаете - требуется ли дозагрузка файла с диска по мере необходимости?
Мне кажется что не очень, т.к. если даже в вашей игре будет около 200 звуков. То при средней длительности в 2 секунды общий объем ИКМ( PCM ) данных будет не более 60 мб. В общем как скажете так и сделаю.
__________________

(Offline)
 
Ответить с цитированием
Старый 22.10.2011, 15:29   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Russian Sound System

стриминг нужен обязательно. но это должны быть две разные вещи - звуки и музыка. звуки небольшие и играются часто - должны быть в оперативке. музыка играется редко и большая - она должна стримиться.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
mr.DIMAS (22.10.2011), Mr_F_ (22.10.2011), Reizel (24.10.2011)
Старый 22.10.2011, 19:18   #10
Черный крыс
 
Сообщений: n/a
Ответ: Russian Sound System

Не обязательно разбивать на звук и музыку, достаточно в функции загрузки поставить флаг стриминга.

И еще... не забудь сделать возможность ручного управления размера буффера для стриминга
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо за это полезное сообщение:
mr.DIMAS (22.10.2011), Mr_F_ (22.10.2011), Reizel (24.10.2011), St_AnGer (22.10.2011)
Старый 23.10.2011, 16:05   #11
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Russian Sound System

Хм, запустил - по-моему что в домике, что снаружи звуки играются одинаково.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 23.10.2011, 21:56   #12
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 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
HolyDel
 
Регистрация: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (24.10.2011)
Старый 24.10.2011, 21:46   #14
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: Russian Sound System

естественно, со стримящейся музыкой должен работать ОДИН проигрыватель.
т.е для обычных звуков стриминг не нужен? А что насчет моего подхода - в каждом источнике хранить позицию следующего куска данных. Если нужен этот кусок - грузим из с позиции( ifstream.seek ) и записываем в буфер( файл при этом всегда открыт )? Не? Или это тормозно?
__________________

(Offline)
 
Ответить с цитированием
Старый 25.10.2011, 01:37   #15
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Russian Sound System

вообще все ето работать должно в других потоках, такчто не так уж и важно. ну поиск по файлу до 10мс в худшем случае. на практике етот файл будет в кэше жесткого диска скорее всего и будет почти бесплатно. но ето очень стремно - когда одну музыку надо играть в разных местах. для звуков (повторно проигрывающихся) зачем стриминг? если это звук роде там смены уровня - то пусть стримится. если ето звук выстрела - то грузи в оперативку целиком.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (25.10.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 16:16.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com