Page 5 of 6

Re: RF2 Update: Player class and crude movement

Posted: Fri Dec 11, 2009 2:09 pm
by bernie
Well it needs to be usable on all platforms. DirectSound will work on all sound cards for Windows, OpenAL obviously doesn't, FMOD may or may not so two dll's are going to be needed. Give the user the choice of OpenAL/FMOD (depending on which you decide to use) OR DirectSound as Neoaxis does (You choose the dll on startup). It is interesting to note that NeoAxis have dropped FMOD in favour of OpenAL for their latest release, although I don't know the reasons why. But as for the licence, if the user chooses FMOD for their commercial game then they have to pay FMOD the fee, it's nothing to do with RF2 at all provided that it is made clear in the RF2 licence.

Re: RF2 Update: Player class and crude movement

Posted: Fri Dec 11, 2009 4:51 pm
by Jay
Ah well, i didn't think of the possibility of using OpenAL and DirectSound together. That one would be the best, i think. When we use FMOD, which is more of a complete package than DirectSound is (from looking at the features), it could become difficult from a design perspective. Either build our own version of the features that FMOD has, or having two 'sound drivers' that cannot do the same thinghs.(Like we have it with graphics drivers in RF now, the OpenGL driver is outdated in comparision to the DX driver, this is not nice). AND we have to update both and easily can have doubled code. OpenAL seems to be more "lightweight" and therefore it becomes easier to build a 'wrapper' around those two that then either interfaces to OpenAL or DirectSound (abstract base class SoundInterface which then is either DirectSoundInterface or OpenALInterface). Then we interface to that wrapper through another class (SoundManager) and do the actual work.

Also, no license fee problems.

Also, bernie, do you have the debug dlls of directsound installed on your computer? I have read something strange in a german forum with OpenAL and the directsound debug dlls combined. If you have not, try to get them, and try again. (If in doubt, just install all the dx debug libraries. This is a really wild guess and it is probable that nothing changes at all)

Re: RF2 Update: Player class and crude movement

Posted: Fri Dec 11, 2009 8:41 pm
by paradoxnj
Just to be clear...both libraries (OpenAL and FMOD) use DirectSound as it's sound interface API on a Windows platform. This is why I find Bernie's issue to be interesting. I'm thinking Bernie's issue might be caused by EAX.

DirectSound is a low level API in which you would have to implement all the stuff that FMOD supports. OpenAL is a generic audio interface for all platforms. It's API resembles that of OpenGL and is open source.

Jay, RF2 code does not have a lick of code from RF1. It's all new code and needs to be maintained just like RF1 does. One of the goals of RF2 is to be cross platform, but I don't consider that a must have. It's more of a nice to have. I am developing this on Windows and making it as generic as possible so that if someone wants to attempt a Linux or Mac port, they can. Unfortunately, Windows is the platform that is most supported for PC gaming with Mac being a very distant second.

That being said...what I suggested was to create a generic API which has pure abstract classes. Then anyone can create their own API by deriving from those classes. I would create a DirectSound API using that interface. If someone wanted to create an OpenAL or FMOD interface, they could derive from the same interfaces. Like a "Sound driver". This is what NeoAxis does. If I give the user an option through this method (like Genesis does with the DX and OpenGL drivers), the maintenance would be minimal.

Re: RF2 Update: Player class and crude movement

Posted: Fri Dec 11, 2009 9:29 pm
by bernie
Just confirming here that NeoAxis works ok in both DirectX AND OpenAL modes with latest release of NA 0.83. so it doesn't appear to be an OpenAL problem.

Re: RF2 Update: Player class and crude movement

Posted: Fri Dec 11, 2009 9:37 pm
by paradoxnj
It has to be EAX then. Let me remove EAX from the mix and see if that helps you out.

Re: RF2 Update: Player class and crude movement

Posted: Fri Dec 11, 2009 10:34 pm
by bernie
My card supports EAX effects and they are enabled in the audio console. Although I didn't have an eax.dll but I downloaded one I found. Maybe that's the offending item.

Re: RF2 Update: Player class and crude movement

Posted: Fri Dec 11, 2009 10:36 pm
by paradoxnj
Ok. Download the latest one from Creative.

Re: RF2 Update: Player class and crude movement

Posted: Fri Dec 11, 2009 11:43 pm
by bernie
Right, what I get now is... if I try to run from vc8 I get can't run main script message box up and then I click ok and the pc freezes black screen have to power off to get out of it. If I run from the RFOgre_d.exe from the bin folder I get the RF2 logo then I get a screen with a huge ninja Legs. The debug info is: Creating component actor. Then Material - Examples/Ninja then a straight line cursor vertical "|" and freezes but I can get out with escape key and a crash. So we are getting a bit nearer.

Re: RF2 Update: Player class and crude movement

Posted: Sat Dec 12, 2009 3:17 am
by paradoxnj
I know about the escape key crash. So you have been running it from the IDE. You have to set your working directory in the debug preferences of the project.

Re: RF2 Update: Player class and crude movement

Posted: Sat Dec 12, 2009 12:01 pm
by bernie
I know about the escape key crash. So you have been running it from the IDE. You have to set your working directory in the debug preferences of the project.
Yes Ive done that but it still hangs in both vc9 and IDE at the same point ie just after it loads the ninja matrerial. The only key that does anything is the escape key when I run from IDE I can only get out of it when running from vc9 is by powering off.

Re: RF2 Update: Player class and crude movement

Posted: Sat Dec 12, 2009 4:45 pm
by paradoxnj
Delete the rfogre.cfg file and use Windowed mode for now (select FullScreen: No). I will fix that stupid crash next.

Re: RF2 Update: Player class and crude movement

Posted: Mon Dec 14, 2009 3:46 pm
by Jay
Am i getting this right, the OpenAL does not cause the crash but something else? If so, then we can stay at OpenAL, would be perfectly ok for me.

Re: RF2 Update: Player class and crude movement

Posted: Mon Dec 14, 2009 4:19 pm
by bernie
OpenaL is not causing the crash it was a bad eax.exe file that has now been fixed with a new download. Paradox knows about the escape key crash and is fixing that, but don't know what is causing it to hang. I can't run from vc9 because it hangs and I cant get out of it unless I power off. Going to windowed mode is no help because the keyboard and mouse don't work once the program is running. The escape key only works if I run from IDE.

Re: RF2 Update: Player class and crude movement

Posted: Mon Dec 14, 2009 10:37 pm
by paradoxnj
@Bernie, when that happens try using Alt-Tab or Alt-F4 to close the window. You cannot type you Working Directory in VC. You have to browse to it. It should contain the full path including drive letter to the path where the RFOgre.exe is.

@Jay, I already switched back to OpenAL. I love version control. :)

Re: RF2 Update: Player class and crude movement

Posted: Tue Dec 15, 2009 4:04 pm
by bernie
I did browse to the working directory. Alt F4 or Alt tab doesn't work the keyboard is frozen. The only key that works is escape if I run from IDE. The program freezes at the same point in RFogre if I run from VC or from IDE but I can at least get out of it if I run from IDE.