【问题标题】:Game Development Sound Frameworks游戏开发声音框架
【发布时间】:2010-09-10 13:39:33
【问题描述】:

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

我一直在搞乱 OpenAL,但我发现的大多数文档都已经过时了,而且似乎并没有那么好用。我愿意学习 OpenAL,并努力通过它,但我想更加确定我没有浪费我的时间。不过,除了 DevMaster 教程之外,我还没有看到太多让我大吃一惊的文档。如果有人有比我找到的更好的材料,那就太棒了。

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

无论如何,想法、cmets、关注点?非常感谢!

【问题讨论】:

    标签: c++ openal audio


    【解决方案1】:

    (注意:我有使用 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 很容易上手,但它并不是一个好的选择。

    【讨论】:

    • 感谢您提供的信息。至于FMOD,我只记得浏览过文档,感觉有点欠缺。不过,我现在必须加倍努力。非常翔实的答案,给了我一些方向,谢谢!
    • OpenAL 没有打开?源代码在公共 SVN 上可用。
    • 对此答案的一点评论(更新):这是 OpenAL repo。它是完全开源的:github.com/kcat/openal-soft。我也将它用于我在 iOS/Android/Windows 上的应用程序并且没有问题.如果您熟悉 OpenGL 之类的 API,那么 API 非常简单和干净。但是,我看到答案可以追溯到 2008 年。呵呵,从那时起发生了很多变化。就像现在使用 FMOD 的 Unity :)
    【解决方案2】:

    我在已发行游戏的一系列平台上使用过 DirectX、FMOD 和 Wwise。我不会在这里谈论 DirectX,因为其他人会在这里有很多反馈;-)

    您需要考虑以下几点:

    • 许可证,我把它放在第一位,因为这可能会为您做出决定。让您的律师仔细检查,确保您了解费用和限制。

    • API - FMOD 有一个非常干净、最小的 API,非常容易理解。 Wwise 在功能方面提供了更多功能,但它的 API 似乎更大、更笨重,带有令人难以理解的概念。

    • 工具 - Wwise 拥有非常复杂的工具,主要面向音频设计师而非程序员,如果您想为音频设计师提供大量直接控制和实验空间,Wwise 可能是您的不二之选。 FMOD 在工具部门正在迎头赶上,但我觉得它的工具更适合程序员。

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

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

    如果您要我选择一个.. FMOD - 它确实是一个非常好的产品,这些家伙做得很好。

    【讨论】:

      【解决方案3】:

      我最近在制作一个使用 FMOD 的 AAA PC 游戏。我们的音频程序员很喜欢它,并且非常高效,所以我要对 FMOD 竖起大拇指。我们只在 Windows 上使用了 FMOD,所以我根本无法谈论它的跨平台方面。

      【讨论】:

        【解决方案4】:

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

        http://www.un4seen.com/

        【讨论】:

          【解决方案5】:

          我已经发布了两款使用 Miles Sound System 的 PC 游戏,并且运行良好。 MSS 易于集成、快速且稳定。您从 RAD Game Tools 获得的支持非常好。该库已在超过 4500 款游戏中使用,因此它坚如磐石。也很便宜!

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

          这就是我为下一场比赛评估 WWise 的原因。它拥有比 Miles 更发达的工具集。启动和运行需要更长的时间,但到目前为止运行良好。我还远远没有使用它来真正以一种或另一种方式提供推荐。

          【讨论】:

            【解决方案6】:

            就工作流程而言,Wwise 可能是声音开发最完整的解决方案。它的设计方式真正节省了您的编程时间,并为您提供了更多尝试和构建复杂声音结构的可能性。借助 Wwise,我们能够为我们的团队保持项目井井有条。

            我个人非常喜欢他们的互动音乐系统。它很灵活,可以让您的音乐对您的游戏输入做出流畅的反应。

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

            我推荐。

            【讨论】:

              【解决方案7】:

              我也可以担保 FMOD,由于工具和出色的多平台支持,它在游戏开发中被广泛使用。与它的设计师合作真的很幸福。但问题是,它需要昂贵的商业开发许可证。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-12-11
                • 1970-01-01
                • 1970-01-01
                • 2023-04-02
                • 1970-01-01
                • 2012-11-05
                • 2011-11-09
                • 2019-04-14
                相关资源
                最近更新 更多