游戏中的音效开源库

8

有没有人知道一个开源的声音库,可以用C ++或其他流行的语言,在开源游戏中重新创建声音,特别是在赛车游戏中重新创建引擎声音?

谢谢

7个回答

5
很久以前,有一个名为OpenAL的东西,在Linux上相当成功。
它相当容易,以OpenGL库原理为模型。

5
这个项目至今仍然非常活跃和受欢迎。 - seanhodges
说实话,自从我几年前离开那个领域以来,我就没有再看过它。 - graham.reeds
谢谢,但它们不是我的。 - graham.reeds

2
虽然你得到了一些有关如何输出声音的答案,但我认为那不是你的问题。
如果我理解你的问题正确,我认为你在寻找“声音合成”。
你所需要的只是一堆生成器(例如正弦波、锯齿波、噪声)和滤波器(低通、高通、带通);然后将它们组合起来。
下一步是添加LFO(低频振荡器)来调制生成器和滤波器的参数。
我知道这不是你要找的完整答案,但声音合成本身就是一门科学,上述关键词应该能让你朝着正确的方向开始。
至于实时合成游戏SFX。简单地说: 不要这样做! 这是浪费资源的行为,而且除非你有非常严格的大小限制,否则用于SFX的样本大小不会影响你。
对于我们当前的游戏,平均样本的(磁盘上的)大小约为7KB。 (我们大多数时候使用16KHz、单声道、ADPCM wav格式。)

1

我知道这是一个老问题,但我认为SFML需要在这里得到代表。SFML可用于C ++,C,.Net(C#,VB.Net,C ++ / CLI等),Python,D和Ruby,并且旨在小巧快速。

音频相关的功能

  • 尽可能使用硬件加速
  • 可以加载和保存标准音频格式:ogg、wav、flac、aiff、au、raw、paf、svx、nist、voc、ircam、w64、mat4、mat5 pvf、htk、sds、avr、sd2、caf、wve、mpc2k、rf64
  • 可以直接从内存中的文件加载所有音频资源
  • 3D声音空间化
  • 易于捕获音频的界面
  • 高效地管理内存,因此您不必担心资源寿命或存储
  • 支持大文件流式传输;您甚至可以为任何来源(网络等)编写自定义流式传输类
  • 支持多通道格式(单声道、立体声、4.0、5.1、6.1、7.1)

对于重新创建引擎声音的具体问题,通常游戏会采用单个循环声音并调整音高。一个非常好的开源游戏是VDrift


1

我只是简单地尝试了一下,但SDL是一个非常流行、跨平台的C++游戏开发库。它包括对图形、声音和输入的支持。

我还记得它非常模块化。也就是说,与其他一些解决方案相比,它更像是一个库而不是框架。可以去看一看。


1

你需要开源的特定原因吗?还是“可用源代码”就足够了?一个流行的选择是fmod http://www.fmod.org

它对于非商业产品是免费的,并且提供许可下的源代码。它非常受欢迎,被用于许多知名游戏中。


FMod非常非常好。可能是我使用过的任何类型库中最好的之一。文档很棒,非常直观易懂。 - mfperzel

1

irrKlang音频引擎在独立开发者中非常受欢迎。如果您想开始通过游戏赚钱,它可以免费用于非商业用途,而且价格仍然非常便宜。

它支持所有主要平台(Windows、Linux、Mac),并提供C++和.Net语言的API。


0

SDL 是处理图形和声音的好选择

QT 框架也有很好的声音和图形支持

PortAudio 也是一个不错的选择


虽然我同意PortAudio是一个不错的替代方案: “目前的提议是在一个月内完成V19版本的发布(2006年6月4日)。” 但它已经死了 :( - Andreas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接