Pregunta

Estoy trabajando con un equipo que está construyendo un motor para una variedad de minijuegos 2D y, eventualmente, 3D.El problema al que nos enfrentamos es una API sólida, multiplataforma y sólida.Obviamente, DirectX está fuera de discusión debido a nuestras necesidades de capacidades multiplataforma.SDL es bueno y funciona muy bien, pero seamos realistas. SDL_Mixer está un poco limitado en lo que puede hacer.Actualmente lo estamos usando, pero cuando finalmente lo expandamos a 3D, será un problema.

He estado jugando con OpenAL, pero la mayor parte de la documentación que encontré está bastante desactualizada y no parece funcionar tan bien.Estoy dispuesto a aprender OpenAL y luchar para superarlo, pero me gustaría estar un poco más seguro de no perder el tiempo.Aparte de los tutoriales de DevMaster, no he visto mucha documentación que me haya dejado boquiabierto.Si alguien tiene material mejor que el que he encontrado, sería fantástico.

También he visto proyectos como FMOD, que parece decente a pesar de la licencia.Sin embargo, al igual que OpenAL, tienen documentación casi inexistente.Por supuesto, puedo leer el código para deducir mis opciones, pero parece un poco molesto considerando que eventualmente podría estar pagando por ello.

De todos modos, ¿pensamientos, comentarios, inquietudes?¡Muchas gracias!

¿Fue útil?

Solución

(nota:Tengo experiencia con FMOD, BASS, OpenAL y DirectSound;y aunque enumero otras bibliotecas a continuación, no las he usado).

BAJO y FMOD son buenos (y de hecho me gustó mucho la documentación de FMOD;¿Por qué diría que es "inexistente"?).También hay Sistema de sonido Millas, En cuanto a, irrKlang y algunos paquetes de middleware más.

OpenAL supuestamente es multiplataforma y en cada plataforma tiene sus propias peculiaridades.Tampoco es exactamente "abierto".Y no estoy seguro de cuál es el futuro para ello;parece que se quedó atascado cuando Creative se hizo con él.Sin embargo, hay un esfuerzo reciente para construir la implementación desde cero: OpenAL suave.

Luego están las API de plataforma nativa, como DirectSound o XAudio2 para Windows, Core Audio para OS X, ALSA para Linux, API propietarias para consolas, etc.Creo que usar API nativas en cada plataforma tiene mucho sentido;simplemente lo abstrae en la interfaz común que necesita y tiene diferentes implementaciones en cada plataforma.Claro, es más trabajo que simplemente usar OpenAL, pero OpenAL ni siquiera está disponible en algunas plataformas y tiene varias peculiaridades en otras plataformas que ni siquiera puedes arreglar (porque no hay ningún código fuente que puedas arreglar).Obtener la licencia de una biblioteca comercial como FMOD o Miles es una opción en el sentido de que todo este trabajo dependiente de la plataforma ya está hecho por usted.

Estamos usando OpenAL en el trabajo en este momento, pero estamos considerando dejarlo, porque simplemente no va a ninguna parte y no podemos solucionar las peculiaridades.Entonces, si bien es fácil comenzar con OpenAL, no recibe mi voto como una buena opción.

Otros consejos

He usado DirectX, FMOD y Wwise en una variedad de plataformas en juegos enviados.No hablaré sobre DirectX aquí ya que otras personas tendrán muchos comentarios aquí ;-)

Esto es lo que debes considerar:

  • Licencia, pongo esto primero porque esto puede tomar una decisión por usted.Pídale a su abogado que los revise y asegúrese de comprender los costos y las restricciones.

  • API: FMOD tiene una API mínima y muy limpia que es muy fácil de asimilar.Wwise ofrece un poco más en términos de funcionalidad, pero su API parece mucho más grande y engorrosa con conceptos incómodos de entender.

  • Herramientas: Wwise tiene herramientas muy sofisticadas, orientadas más a diseñadores de audio que a programadores. Si desea brindarles a los diseñadores de audio mucho control directo y espacio para la experimentación, Wwise puede ser el camino a seguir.FMOD se está poniendo al día en el departamento de herramientas, pero creo que sus herramientas están más orientadas a los programadores.

  • Rendimiento: esto es algo que tendrás que evaluar por ti mismo, no puedes decir que uno sea mejor que el otro porque depende de tu plataforma y tipo de juego.Es posible que le coticen estadísticas de rendimiento; tómelas con cautela, es posible que estén idealizadas de alguna manera.Determine su presupuesto de rendimiento (por ejemplo, 2 ms por cuadro para sonido, X número de canales, X número de transmisiones) y realice un montón de pruebas para diferentes formatos de sonido, frecuencias de muestreo y profundidades de bits: grafique esos tontos.

  • Soporte: tanto FMOD como Wwise tienen muy buenos canales de soporte y buenos técnicos.Sin embargo, verifique si el soporte tiene un costo adicional.

Si me estás pidiendo que elija uno...FMOD: realmente es un producto muy bueno, esos muchachos hacen un gran trabajo.

Recientemente trabajé en un título AAA para PC que usaba FMOD.A nuestro programador de audio le encantó y fue muy productivo con él, así que le daría el visto bueno a FMOD.Solo usamos FMOD en Windows, por lo que no puedo hablar en absoluto de sus aspectos multiplataforma.

La biblioteca Bass funciona en Mac y Windows y tiene buena documentación y ejemplos de SDK:

http://www.un4seen.com/

Envié dos juegos de PC usando Miles Sound System y funcionó bastante bien.MSS es fácil de integrar, rápido y estable.El soporte que recibe de RAD Game Tools es excelente.Esta biblioteca se ha utilizado en más de 4500 juegos y, como resultado, es sólida como una roca.¡Es barato también!

Por otro lado, MSS es una biblioteca de nivel bastante bajo en comparación con FMOD o WWise.La biblioteca no proporciona ninguna forma para que el diseñador de sonido tenga control sobre los volúmenes del sonido, la atenuación, la aleatorización, el desvanecimiento o cualquier otra cosa que no esté almacenada en el archivo de sonido.Tendrás que escribir estas características de alto nivel tú mismo.

Por eso estoy evaluando WWise para mi próximo juego.Tiene un conjunto de herramientas mucho más desarrollado que Miles.Tomó más tiempo ponerlo en funcionamiento, pero hasta ahora está funcionando bien.No estoy lo suficientemente avanzado en su uso como para ofrecer realmente una recomendación de una forma u otra.

Wwise es probablemente la solución más completa para un desarrollo sólido en términos de flujo de trabajo.La forma en que está diseñado realmente le ahorra tiempo de programación y le brinda más posibilidades para experimentar y construir estructuras de sonido complejas.Con Wwise, pudimos mantener el proyecto organizado para nuestro equipo.

Personalmente, me gusta mucho su sistema de música interactivo.Es flexible y hace que tu música reaccione suavemente a las entradas de tu juego.

Además, el soporte de Audiokinetic también es muy bueno.Siempre rápido y dispuesto a ayudar.

Recomiendo.

También puedo dar fe de FMOD, se utiliza bastante en el desarrollo de juegos debido a sus herramientas y su excelente soporte multiplataforma.Es realmente un placer trabajar con sus diseñadores.Sin embargo, se requiere una licencia costosa para el desarrollo comercial.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top