Frameworki Dźwiękowe Do Tworzenia Gier

Pracuję z zespołem, który buduje silnik do różnych mini-gier 2D, a ostatecznie 3D. Problem, z którym mamy do czynienia, to solidne, wieloplatformowe, dźwiękowe API. Oczywiście DirectX nie wchodzi w grę ze względu na nasze potrzeby w zakresie możliwości wieloplatformowych. SDL jest ładny i działa świetnie, ale spójrzmy prawdzie w oczy SDL_Mixer jest trochę ograniczony w tym, co może zrobić. Obecnie go używamy, ale kiedy w końcu rozszerzymy go na 3D, będzie to problem.

Bawiłem się w Openala, ale większość dokumentacji, którą znalazłem, jest dość nieaktualna i nie wydaje się działać tak dobrze. Jestem gotów nauczyć się OpenAL i walczyć, ale chciałbym być trochę bardziej pewny, że nie tracę czasu. Oprócz samouczków DevMaster, nie widziałem zbyt wielu dokumentów, które mnie rozwaliły. Jeśli ktoś ma lepszy materiał niż ja, to byłoby super.

Widziałem też takie projekty jak FMOD, który mimo licencji wydaje się przyzwoity. Jednakże, podobnie jak OpenAL, mają prawie nieistniejącą dokumentację. Przyznaję, że mogę przelać kod, aby wydedukować moje opcje, ale wydaje się to trochę bolesne, biorąc pod uwagę, że w końcu mogę za to zapłacić.

W każdym razie, myśli, komentarze, obawy? Wielkie dzięki!

Author: f4nt, 2008-09-18

7 answers

(Uwaga: mam doświadczenie z FMOD, BASS, OpenAL i DirectSound; i chociaż wymieniam inne biblioteki poniżej, nie używałem ich).

BASS i FMOD są dobre (a właściwie bardzo podobała mi się dokumentacja FMOD; dlaczego powiedziałbyś, że jest "nieistniejąca"?). Istnieje również Miles Sound System, Wwise, irrKlang i kilka innych pakietów middleware.

OpenAL jest podobno wieloplatformowy, a na każdej platformie ma swój własny dziwactwa. To też nie jest "otwarte". I nie jestem pewien, jaka jest dla niego przyszłość; wydaje się, że utknął, gdy Creative dostał go. Ostatnio podjęto próbę zbudowania implementacji od podstaw: OpenAL Soft .

Następnie są natywne interfejsy API platformy, takie jak DirectSound lub XAudio2 Dla Windows, Core Audio Dla OS X, ALSA dla Linuksa, własne interfejsy API dla konsol itp. Myślę, że używanie natywnych API na każdej platformie ma duży sens; po prostu abstrakcyjne to pod wspólny interfejs, którego potrzebujesz i który ma różne implementacje na każdej platformie. Oczywiście, to więcej pracy niż tylko używanie OpenAL, ale OpenAL nie jest nawet dostępny na niektórych platformach i ma różne dziwactwa na innych platformach ,których nie możesz nawet naprawić (ponieważ nie ma kodu źródłowego, który możesz naprawić). Licencjonowanie komercyjnej biblioteki, takiej jak FMOD lub Miles, jest opcją w tym sensie, że cała ta zależna od platformy praca jest już wykonywana za Ciebie.

Używamy teraz Openala w pracy, ale są rozważając odejście od tego, bo to po prostu nigdzie nie idzie i nie możemy naprawić dziwactwa. Tak więc, chociaż OpenAL jest łatwy do rozpoczęcia, Nie dostaje mojego głosu jako dobrej opcji.

 10
Author: NeARAZ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-25 20:10:58

Używałem DirectX, FMOD i Wwise na wielu platformach w grach. Nie będę tu mówił o Directxie, ponieważ inni ludzie będą mieli tu mnóstwo opinii; -)

Oto, co musisz wziąć pod uwagę:

  • Prawko, stawiam to na pierwszym miejscu, bo to może podjąć decyzję za Ciebie. Niech twój prawnik przejrzy je i upewni się, że rozumiesz koszty i ograniczenia.

  • API-FMOD ma bardzo czyste, Minimalne API, które jest bardzo łatwe do grok. Wwise oferuje nieco więcej pod względem funkcjonalności, ale jego API wydaje się znacznie większy i kłopotliwy z niezręcznymi koncepcjami, które ułatwiają Ci rozeznanie.

  • Narzędzia-Wwise ma bardzo wyrafinowane narzędzia, nastawione głównie na projektantów audio, a nie programistów, jeśli chcesz dać projektantom audio dużo bezpośredniej kontroli i miejsca do eksperymentowania, Wwise może być drogą do zrobienia. FMOD nadrabia zaległości w dziale narzędzi, ale jego narzędzia są bardziej ukierunkowane na programistów I Poczuj.

  • Wydajność - to jest coś, co trzeba ocenić dla siebie, nie można powiedzieć, że jeden jest lepszy od drugiego, ponieważ zależy to od platformy i rodzaju gry. Możesz otrzymać zacytowane statystyki wydajności - weź je z przymrużeniem oka, mogą być w pewien sposób wyidealizowane. Określ swój budżet wydajności (np. 2 ms Na klatkę dla dźwięku, x liczba kanałów, x liczba strumieni) i wykonaj kilka testów dla różnych formatów dźwięku, próbki stawki i głębiny bitowe-wykresy tych frajerów.

  • Wsparcie-zarówno FMOD, jak i Wwise mają bardzo dobre kanały wsparcia, dobrych techników. Sprawdź, czy wsparcie kosztuje dodatkowo.

Jeśli prosisz mnie o wybranie jednego.. FMOD-to naprawdę bardzo dobry produkt, Ci faceci robią świetną robotę.

 5
Author: user13899,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 09:05:14

Ostatnio pracowałem nad tytułem AAA PC, który używał FMOD. Nasz programista audio uwielbiał go i był z nim bardzo produktywny, więc dałbym FMOD kciuki w górę. Używaliśmy tylko FMOD w systemie Windows, więc nie mogę w ogóle mówić o jego wieloplatformowych aspektach.

 2
Author: Jeff Hill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 06:37:39

Biblioteka Bass działa na komputerach Mac i Windows, posiada dobrą dokumentację i przykłady SDK:

Http://www.un4seen.com/

 1
Author: Daniel O,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 06:36:16

Wysłałem dwie gry PC za pomocą Miles Sound System i działało całkiem nieźle. MSS jest łatwy do integracji, szybki i stabilny. Wsparcie, które otrzymujesz od RAD Game Tools, jest doskonałe. Ta biblioteka została wykorzystana w ponad 4500 grach i jest solidna w rezultacie. To też jest tanie!

Z drugiej strony, MSS jest biblioteką dość niskiego poziomu w porównaniu do FMOD lub WWise. Biblioteka Nie umożliwia projektantowi dźwięku kontrolowania głośności dźwięku, tłumienia, randomizacji, blaknięcie, lub po prostu wszystko, co nie jest przechowywane w samym pliku dźwiękowym. Będziesz musiał sam napisać te funkcje wysokiego poziomu.

Dlatego oceniam WWise do następnej gry. Ma znacznie bardziej rozwinięty zestaw narzędzi niż Miles. To trwało dłużej, aby dostać się do pracy, ale działa dobrze do tej pory. Nie jestem wystarczająco daleko, aby go użyć, aby naprawdę zaoferować rekomendację w ten czy inny sposób.

 1
Author: Joe Ludwig,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-25 19:40:40

Wwise jest prawdopodobnie najbardziej kompletnym rozwiązaniem dla solidnego rozwoju pod względem przepływu pracy. Sposób, w jaki został zaprojektowany, naprawdę oszczędza czas programowania i daje więcej możliwości eksperymentowania i budowania złożonych struktur dźwiękowych. Dzięki Wwise udało nam się zorganizować projekt dla naszego zespołu.

Osobiście bardzo lubię ich interaktywny system muzyczny. Jest elastyczny i sprawia, że muzyka płynnie reaguje na dane wejściowe z gry.

Ponadto wsparcie Audiokinetic jest bardzo ostry też. Zawsze szybki i gotowy do pomocy.

Polecam.

 1
Author: decasteljau,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-21 18:20:40

Mogę również ręczyć za FMOD, jest on dość szeroko stosowany w tworzeniu gier ze względu na Narzędzia i doskonałą obsługę wielu platform. To projektanci są naprawdę rozkoszą do pracy. Rzecz w tym, że wymaga drogiej licencji na komercyjny rozwój.

 0
Author: Jasper Bekkers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-21 18:42:51