Game Development Community

Plan for Matthew Overlund

by Matthew Overlund · 12/10/2005 (12:10 am) · 10 comments

I've been having no luck getting workable sound in any of the HEAD versions of T2D, TGE or TSE.
I read thru this forum thread: http://www.garagegames.com/mg/forums/result.thread.php?qt=36879 and I'm going to spend the weekend seeing what kind of progress can be made on the audio abstraction.

I downloaded the latest FMOD SDK which I plan on reviewing to give some bias to the design of the audio abstraction layer. Depending on whether or not I fix all my OpenAL issues in the course of the abstraction development, I may also implement FMOD as an optional audio provider, assuming of course that each developer would have to account for thier own FMOD license if they go to production with it. (It's free to use so long as you dont make any money, so great tool for development testing against OpenAL)

I've read every applicable forum thread I could find regarding OpenAL, which really wasnt a whole lot, other than confirmation that I'm not alone in my audio silence.

If anyone has any input on the abstraction layer design, or would like to send me links to audio API's you think deserve a look at, let me know.

#1
12/10/2005 (1:40 am)
Erm, am I reading something wrong here... OpenAL works fine in T2D, TGE and TSE. What exactly is it you are having issues with?

As for audio API's to support,

FMOD, BASS, PortAudio maybe?
#2
12/10/2005 (2:09 am)
I'd love to see FMOD in Torque. I'm really not happy with OpenAL. Some important things are just not working for me, like pausing an audio stream for example. I'm sure FMOD can do this with one command. Plus FMOD is cheap for small developers, it's feature-full, and ported to all major platforms (including gaming consoles). There is also Audiere, which is free and I hear good things about. Check it out here http://audiere.sourceforge.net/
#3
12/10/2005 (2:44 pm)
same.. not happy with openAL at all.
#4
12/10/2005 (2:54 pm)
But they are using different versions of OpenAL that's one issue...
#5
12/10/2005 (2:54 pm)
@ Phil ... OpenAL sometimes works fine in T** and sometimes refuses to work at all depending on platform, flavour of platform and sound card type. Onboard sound chips seem to be the least reliable and WinXP seems to want a different dll than all other windows.
#6
12/10/2005 (6:27 pm)
@Phil,
I cannot get any sound on 4 differently configured WinXP machines that I've tested using the current build of T2D, TGE or TSE. The OpenAL samples run perfectly fine using the same DLL's. I did get sound from Minions of Mirth www.prairiegames.com with no problem, however the MoM demo I downloaded enumerated 1.0 OpenAL devices only. Taking the DLL from the mirth distro and dropping it in current builds had no noticable effect.

My goal isn't to replace OpenAL but more to restructure the current audio sub-engine such that when problems like mine arise, swapping in a viable replacement API is a trivial process, hopefully something that either becomes merged with the head version of the engines or available as a series of resources.

PS - Loved the Worms games btw :)
#7
12/10/2005 (8:41 pm)
There was some work done on using FMOD in Torque back in the day: www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=2305
#8
12/11/2005 (5:03 am)
I have OpenAL working fine and I am using TGE 1.3. I have successfully ported it to 1.4rc2 and it works there also. I have tried it on 5 different PC's(Windows Only) and also on a local LAN connection. I have also updated to the latest OpenAL drivers and have full EAX support working. If you are having problems make sure that you have OpenAL32.dll AND wrap_oal.dll (directx wrapper) in you your root directory and make sure it is loaded correctly in winOpenAL.cc.

bool OpenALDLLInit()
{
   OpenALDLLShutdown();

   winState.hinstOpenAL = LoadLibrary( "wrap_oal.dll" );  [b]<<<<<<<<<[/b]
   if(winState.hinstOpenAL != NULL)
   {
      // if the DLL loaded bind the OpenAL function pointers
      if(bindOpenALFunctions())
      {
         // if EAX is available bind it's function pointers
            bindEAXFunctions();
         return(true);
      }

      // an error occured, shutdown
      OpenALDLLShutdown();
   }
   return(false);
}

Hope this might help.

Also....

FMOD pricing if you want to make any money off your games....

Platform pricing for 1 title, per platform. (US Dollars)

Platform FMOD 3 FMOD Ex
PC WinCE $1,000 n/a
PC Linux * $1,000 $4,000
PC Win32 / Win64 $2,000 $4,000
PC Macintosh $2,000 $4,000

Console PlayStation 2 $4,000 $4,000
Console Xbox $4,000 $4,000
Console GameCube $4,000 $4,000
Console PlayStation Portable $4,000 $4,000
Console Xbox 360 n/a $4,000
Console PlayStation 3 n/a $4,000

* Linux is thrown in for free if purchased with another platform.
By itself it costs the standard license fee advertised above.

A little bit pricey for an Indy.
#9
12/11/2005 (9:39 pm)
Jackie, you left out some important pricing info.. if you scroll down their licensing page.

It's still not as cheap as OpenAL of course... but look at the

Shareware, hobbyist agreement
Because some developers are single hobbyist programmers, or sell at an extreme low price-points with no distribution except through a website, and no expectations of high sales that could warrant or recoup the price of a normal product/site license, the 'shareware/budget' license option has been created. 

1 product, PC* only. 	0

      * PC is classified as WinCE, Win32, Linux or Macintosh       

      As in the full commercial license pricing information above, the multi-platform discount applies, but all platforms are based on the 0 price point across the board.  For a site license (unlimited shareware/budget products), the 2.5 multiplier still applies.

    *  FMOD can of course also be purchased for multiple platforms. To do this simply add the prices of the platforms you require together, then see below for multiple platform discounts! 

Discounts for multiple platforms for FMOD Ex.
2 of ANY platform 	              20% off
3 or more of ANY platform 	30% off

If Linux is included free, it does not count towards platform discounts.
#10
12/12/2005 (1:38 am)
I haven't looked at BASS yet, I need to do that. I think PortAudio is lacking the necessary 3d sound support to really consider, but I'll review it to be sure.
FMOD is definitely on my list to be implemented.

I'll post a new .plan tomorrow to cover next week and some more details on my progress as I get deeper into the code, and see how things pan out.