The engine should provide an abstract interface to the game code that is independent of the underlaying implementation.
Switching implementations from FMOD to OpenAL or any other implementation should not touch a line of game code, and ideally would be as simple as flipping build switches or choosing which polymorphic class to instantiate.
The engine should provide an abstract interface to the game code that is independent of the underlaying implementation. Switching implementations from FMOD to OpenAL or any other implementation should not touch a line of game code, and ideally would be as simple as flipping build switches or choosing which polymorphic class to instantiate.