One of the things that I recently discovered was that asset bundles for meshes seem cross-compatible for at least Windows and OSX, but shaders for sure – and possibly materials – are not. The shaders bit I knew; DirectX9 shaders aren’t going to work in OpenGL.
So that’s wound up with us having to have separate asset bundles for each of the three platforms, which is a minor inconvenience but no big deal beyond that.
What is a bigger deal is that we’ve been using uAudio in order to stream mp3s off disk, and that doesn’t work on OSX. It was supposed to, I’m pretty positive, but anyhow it’s busted.
For that, I’m just going to throw my hands up and move elsewhere. I wanted a more unified audio pipeline anyhow, so that I can do some proper music ducking with sound effects playback integration once that’s in. uAudio was already going to complicate that for me (note that that’s one of a few reasons there are no sound effects, despite their being music, in the initial alpha of the game).
At any rate, I’m going to create a separate asset bundle for audio in general, and my hope is that this one can be cross-platform, which would be really nice. It won’t make much difference to you, but it saves me time uploading to Steam, and it gives more common ground between the different builds. Right now there’s almost a gig of stuff that is OS-specific, which is annoying.
Some folks were complaining to me about not wanting to support mp3 on principle, so I guess that wins out. 😉 With things in asset bundles, they’ll be in a streamable intermediate format that I believe is ogg. This will mean that in order to get the soundtrack you have to actually get the soundtrack, though; you won’t be able to just find it in your folders in the game install anymore. That’s an unintended side effect, but it will improve performance during gameplay, so there is that…
My old approach of reading oggs directly off disk was just too low-performance and memory-eating. The asset bundles approach will help preserve speed, which is a big deal in my opinion.