我正在与一个团队合作,该团队正在为各种2D以及最终的3D迷你游戏构建引擎。我们面临的问题是一个可靠的、跨平台的、完善的API。显然,由于我们对跨平台功能的需求,DirectX是不可能的。SDL很好,而且效果很好,但让我们面对它,SDL_Mixer在它能做的事情上是有一点限制的。我们目前正在使用它,但当我们最终扩展到3D时,这将是一个问题。
我一直在使用OpenAL,但我发现的大多数文档都相当过时,而且似乎工作得并不是很好。我愿意学习OpenAL,并努力克服它,但我想更确定一点,我不是在浪费时间。不过,除了DevMaster教程之外,我还没有看到太多让我印象深刻的文档。如果有人有比我找到的更好的材料,那就太棒了。
我也看到了像FMOD这样的项目,尽管有许可,它看起来还是不错的。但是,像OpenAL一样,它们的文档几乎不存在。诚然,我可以倒在代码上来推断我的选择,但考虑到我最终可能会为此付出代价,这似乎有点痛苦。
不管怎么说,想法,评论,担忧?非常感谢!
发布于 2008-09-18 06:52:46
(注意:我有使用FMOD、BASS、OpenAL和DirectSound的经验;虽然我在下面列出了其他库,但我还没有使用过它们)。
BASS和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很容易上手,但我并不认为它是一个好的选择。
发布于 2008-09-18 09:05:15
我已经在一系列平台上使用过DirectX、FMOD和Wwise。我不会在这里讨论DirectX,因为其他人在这里会有很多反馈;-)
下面是你需要考虑的:
如果你要我选一个..。FMOD -它真的是一个非常好的产品,那些人做得很棒。
发布于 2008-09-18 06:37:39
我最近开发了一个使用FMOD的AAA PC游戏。我们的音频程序员喜欢它,而且使用它非常高效,所以我对FMOD竖起了大拇指。我们只在Windows上使用了FMOD,所以我根本不能谈论它的跨平台方面。
https://stackoverflow.com/questions/90503
复制相似问题