我正在与一个为各种2D和最终3D迷你游戏构建引擎的团队合作.我们面临的问题是一个可靠,跨平台,健全的API.显然,由于我们对跨平台功能的需求,DirectX是不可能的.SDL很好,而且效果很好,但让我们面对它SDL_Mixer在它可以做的事情上有点受限.我们目前正在使用它,但是当我们最终扩展到3D时,它将成为一个问题.
我一直在搞乱OpenAL,但是我发现的大部分文档都已经过时了,似乎没有那么好用.我愿意学习OpenAL,并通过它来解决问题,但我想更确定一点,我不是在浪费时间.除了DevMaster教程之外,我还没有看到太多的文档让我感到震惊.如果某人有比我发现的更好的材料,那就太棒了.
我也看过FMOD这样的项目,尽管获得了许可,但看起来还不错.但是,与OpenAL一样,它们几乎没有文档.当然,我可以倾倒代码来推断我的选择,但考虑到我最终会为此付出代价,这似乎有点痛苦.
无论如何,想法,评论,关注?非常感谢!
NeA*_*RAZ 10
(注意:我有FMOD,BASS,OpenAL和DirectSound的经验;当我列出下面的其他库时,我还没有使用它们).
BASS和FMOD都很好(实际上我很喜欢FMOD的文档;为什么你会说它"不存在"?).还有Miles Sound System,Wwise,irrKlang和一些其他中间件包.
OpenAL应该是跨平台的,并且在每个平台上它都有它自己的怪癖.它也不完全是"开放的".而且我不确定它的未来是什么; 当Creative抓住它时,它似乎被卡住了.不过,最近有一项努力从头开始构建实现:OpenAL Soft.
然后是原生平台API,如适用于Windows的DirectSound或XAudio2,适用于OS X的Core Audio,适用于Linux的ALSA,适用于控制台的专有API等.我认为在每个平台上使用本机API非常有意义; 你只需在你需要的通用接口下抽象它,并在每个平台上有不同的实现.当然,它比使用OpenAL更有用,但OpenAL在某些平台上甚至不可用,并且在其他平台上有各种怪癖甚至无法修复(因为没有源代码可以修复).从FMOD或Miles等商业图书馆获得许可是一种选择,因为所有这些平台相关的工作已经为您完成.
我们现在正在使用OpenAL,但正考虑转而使用它,因为它不会去任何地方,我们无法修复怪癖.因此,虽然OpenAL很容易上手,但它并没有让我的投票成为一个不错的选择.
我在已发布的游戏的各种平台上使用过DirectX,FMOD和Wwise.我不会在这里讨论DirectX,因为其他人会在这里有很多反馈;-)
以下是您需要考虑的事项:
许可证,我先把它放在首位,因为这可能会让你做出决定.让你的律师检查他们,并确保你了解成本和限制.
API - FMOD有一个非常干净,最小的API,非常容易理解.Wwise在功能方面提供了更多功能,但它的API似乎更大,更笨重,笨拙的概念让你头脑发热.
工具 - Wwise拥有非常复杂的工具,非常适合音频设计师而非程序员,如果你想给音频设计师提供很多直接控制和实验空间,Wwise可能就是你的选择.FMOD正在赶上工具部门,但它的工具更适合我认为的程序员.
性能 - 这是你需要自己评估的东西,你不能说任何一个比另一个好,因为它取决于你的平台和游戏类型.您可以获得引用给您的性能统计数据 - 将它们与一些盐一起使用,它们可能会以某种方式理想化.确定您的性能预算(例如,声音的每帧2毫秒,通道的X个数量,X个流的数量),并针对不同的声音格式,采样率和位深度进行一系列测试 - 绘制那些吸盘.
支持 - FMOD和Wwise都有非常好的支持渠道,优秀的技术人员.检查支持费用是否额外.
如果你要我选一个...... FMOD - 它真的是一个非常好的产品,那些家伙做得很好.