2010-03-08 24 views

Respuesta

5

Hace mucho tiempo, había OpenAL y era moderadamente exitoso en Linux.

Es bastante fácil, se basa en los principios de la biblioteca OpenGL.

+5

... y el proyecto todavía está muy vivo y popular hoy ... – seanhodges

+0

Para ser sincero, no lo he visto desde que abandoné esa escena hace varios años. –

+0

Gracias, pero no son míos. –

1

He clavaban única trivialmente un rato con él, pero SDL es un muy popular, multiplataforma, C++ biblioteca de juegos prog. Incluye soporte para gráficos, sonido, entrada.

También recuerdo que es muy modular. Es decir, es menos un marco y más una biblioteca que algunas otras soluciones. Dale una mirada.

1

¿Hay alguna razón específica por la que necesita código abierto o la "fuente disponible" es lo suficientemente buena? Una popular es fmod http://www.fmod.org

Es gratis para productos no comerciales, y también ofrece código fuente bajo una licencia. Es muy popular y se usa en muchos juegos conocidos.

+0

FMod es muy, muy bueno. Probablemente sea una de las mejores bibliotecas de cualquier tipo que haya usado alguna vez. Gran documentación y muy directo. – mfperzel

0

SDL es buena opción para los gráficos/sonido

marco de trabajo QT tiene también un buen soporte para sonido y los gráficos

PortAudio es también una buena opción

+0

Aunque estoy de acuerdo con que PortAudio fue una buena alternativa: "La propuesta actual es completar la versión V19 en 1 mes (4 de junio de 2006)". Está muerto :( – Andreas

1

El motor de sonido irrKlang es muy solicitadas tanto de los desarrolladores independientes . Es gratis para uso no comercial y aún muy barato, si desea comenzar a ganar algo de dinero con su juego.

Es compatible con todas las plataformas principales (Windows, Linux, Mac) y tiene API para C++ y .NET.

2

Si bien obtuvo algunas respuestas sobre cómo emitir sonido, creo que esa no era su pregunta.

Si recibí su pregunta correctamente, creo que "Sound Synthesis" es lo que está buscando.

Todo lo que necesita es un grupo de generadores (por ejemplo, Sine, Sawtooth, Noise) y filtros (bajo, alto, banda); Y combina estos.

El siguiente paso sería agregar LFO (Osciladores de baja frecuencia) para modular los parámetros de los generadores y filtros.

Soy consciente de que esta no es la respuesta completa que buscaste, pero la síntesis de sonido es una ciencia en sí misma y las palabras clave anteriores te ayudarán a empezar por el camino correcto.

En cuanto a síntesis en tiempo real de SFX para juegos. Respuesta simple: ¡No lo hagas!

Es una pérdida de recursos y, a menos que tenga límites de tamaño muy estrictos, el tamaño de las muestras utilizadas para SFX no lo matará.

Para nuestro juego actual, la muestra promedio tiene un tamaño (n en el disco) de alrededor de 7 KB. (Usamos 16KHz, mono, ADPCM wavs la mayor parte del tiempo.)

1

Sé que es una vieja pregunta, pero creo que SFML debe ser representado aquí. SFML está disponible en C++, C, .Net (C#, VB.Net, C++/CLI, etc.), Python, D y Ruby, y está diseñado para ser pequeño y rápido.

Features específica a de audio:

  • utiliza la aceleración de hardware siempre que sea posible
  • puede cargar y guardar los formatos estándar de sonido: OGG, WAV, FLAC, AIFF, AU, crudo, paf, SVX, NIST , voc, IRCAM, W64, mat4, PVF mat5, htk, sds, avr, SD2, CAF, wve, mpc2k, RF64
  • puede cargar todos los recursos de audio directamente de los archivos en la memoria
  • 3D espacialización del sonido
  • fácil interfaz para capturar audio
  • administra la memoria de manera eficiente, de modo que usted no tiene que preocuparse acerca de la vida de almacenamiento de los recursos o
  • soporte a descarga de archivos de gran tamaño; incluso se puede escribir su clase de flujo continuo a medida para cualquier fuente (red, ...)
  • compatible con los formatos de múltiples canales (mono, estéreo, 4.0, 5.1, 6.1, 7,1)

Para la cuestión específica de recreando los sonidos del motor, generalmente los juegos toman un solo sonido de bucle y ajustan el tono. Un juego de código abierto que hace esto muy bien es VDrift.

Cuestiones relacionadas