游戏开发声音框架

时间:2008-09-18 06:28:17

标签: c++ openal audio

我正在与一个为各种2D和最终3D迷你游戏构建引擎的团队合作。我们面临的问题是一个可靠,跨平台,健全的API。显然,由于我们对跨平台功能的需求,DirectX是不可能的。 SDL很好,而且效果很好,但让我们面对它SDL_Mixer在它可以做的事情上有点受限。我们目前正在使用它,但是当我们最终扩展到3D时,它将成为一个问题。

我一直在搞乱OpenAL,但我发现的大部分文档都已经过时了,似乎并没有那么好用。我愿意学习OpenAL,并通过它来解决问题,但我想更确定一点,我不是在浪费时间。除了DevMaster教程之外,我还没有看到太多的文档让我感到震惊。如果某人有比我发现的更好的材料,那就太棒了。

我也看过FMOD这样的项目,尽管获得了许可,但看起来还不错。但是,与OpenAL一样,它们几乎没有文档。当然,我可以倾倒代码来推断我的选择,但考虑到我最终可能会为此付出代价,这似乎有点痛苦。

无论如何,想法,评论,关注?非常感谢!

7 个答案:

答案 0 :(得分:10)

(注意:我有FMOD,BASS,OpenAL和DirectSound的经验;当我列出下面的其他库时,我还没有使用它们。)

BASSFMOD都很好(实际上我很喜欢FMOD的文档;为什么你会说它“不存在”?)。还有Miles Sound SystemWwiseirrKlang以及更多中间件包。

OpenAL应该是跨平台的,并且在每个平台上它都有它自己的怪癖。它也不完全是“开放的”。而且我不确定它的未来是什么;当Creative抓住它时,它似乎被卡住了。不过,最近还是努力从头开始构建实现:OpenAL Soft

然后有原生平台API,如适用于Windows的DirectSound或XAudio2,适用于OS X的Core Audio,适用于Linux的ALSA,适用于控制台的专有API等。我认为在每个平台上使用本机API非常有意义;你只需在你需要的通用接口下抽象它,并在每个平台上有不同的实现。当然,它比使用OpenAL更有用,但OpenAL在某些平台上甚至不可用,并且在其他平台上有各种怪癖甚至无法修复(因为没有源代码可以修复)。从FMOD或Miles这样的商业图书馆获得许可是一种选择,因为所有这些平台相关的工作已经为您完成。

我们现在正在使用OpenAL,但正考虑转而使用OpenAL,因为它不会去任何地方,我们无法解决这个问题。因此,虽然OpenAL很容易上手,但它并没有让我的投票成为一个好的选择。

答案 1 :(得分:5)

我在已发布游戏的各种平台上使用过DirectX,FMOD和Wwise。我不会在这里讨论DirectX,因为其他人会在这里得到很多反馈; - )

以下是您需要考虑的事项:

  • 许可证,我先把它放在首位,因为这可能会让您做出决定。让你的律师检查一下,确保你了解成本和限制。

  • API - FMOD有一个非常干净,最小的API,非常容易理解。 Wwise在功能方面提供了更多功能,但它的API似乎更大,更笨重,笨拙的概念可以帮助您解决问题。

  • 工具 - Wwise拥有非常复杂的工具,非常适合音频设计师而非程序员,如果你想给音频设计师提供很多直接控制和实验空间,Wwise可能就是这样。 FMOD正在赶上工具部门,但它的工具更适合我所感受的程序员。

  • 性能 - 这是你需要自己评估的东西,你不能说任何一个比另一个好,因为它取决于你的平台和游戏类型。您可以获得引用给您的性能统计数据 - 将它们与一些盐一起使用,它们可能会以某种方式理想化。确定您的性能预算(例如声音每帧2毫秒,X频道数量,X个流数量),并针对不同的声音格式,采样率和比特深度进行一系列测试 - 绘制这些吸盘。

  • 支持 - FMOD和Wwise都有非常好的支持渠道,优秀的技术人员。检查支持是否需要额外费用。

如果你要我选一个...... FMOD - 它确实是一个非常好的产品,那些人做得很好。

答案 2 :(得分:2)

我最近参与过使用FMOD的AAA PC游戏。我们的音频程序员喜欢它并且非常高效,因此我会给FMOD竖起大拇指。我们只在Windows上使用FMOD,所以我根本不能谈论它的跨平台方面。

答案 3 :(得分:1)

Bass库适用于Mac和Windows,并且具有良好的文档和SDK示例:

http://www.un4seen.com/

答案 4 :(得分:1)

我使用Miles Sound System发布了两款PC游戏,效果非常好。 MSS易于集成,快速,稳定。您从RAD Game Tools获得的支持非常好。这个图书馆已经在4500多个游戏中使用过,因此它非常坚固。它也很便宜!

另一方面,与FMOD或WWise相比,MSS是一个相当低级的库。该库没有为声音设计者提供任何方式来控制声音音量,衰减,随机化,淡入淡出或任何未存储在声音文件本身中的其他内容。您必须自己编写这些高级功能。

这就是我为下一场比赛评估WWise的原因。它有比Miles更加发达的工具集。启动和运行需要更长的时间,但到目前为止工作正常。我用它来真正提供推荐的方式还不够。

答案 5 :(得分:1)

Wwise可能是工作流程中声音开发最完整的解决方案。它的设计方式确实为您节省了编程时间,并为您提供了实验和构建复杂声音结构的更多可能性。通过Wwise,我们能够为我们的团队组织项目。

我个人非常喜欢他们的互动音乐系统。它非常灵活,可以让您的音乐顺利地响应您的游戏输入。

此外,Audiokinetic的支持也非常明显。始终快速并随时准备提供帮助。

我推荐。

答案 6 :(得分:0)

我也可以为FMOD担保,由于这些工具和出色的多平台支持,它在游戏开发中得到了广泛的应用。它的设计师真的很幸福。但事实上,它需要昂贵的商业开发许可证。