02-20-2013, 09:44 AM
I'd advise swapping over to monogame, its essentially a fan continuation of XNA to run on multiple platforms, I moved my latest projects over to it, it doesn't take much, a few references changed and some changes to spritebatch calls.
Its still being developed and to my knowledge is open source, so if you would like to expand it yourself you can.
its also been designed for developing android, IOS, Mac and Linux games, this in mind it does mean OpenGL is run instead of D3D, but this is good as in many cases OpenGL can be faster than D3D and as already stated runs on other platforms.
the swap over is seamless for the most part with the exception of no content processor (but you can use Texture2D.FromStream and SoundEffect.FromStream which in many cases can prove themselves more efficient than the content processor anyway)
I'd advice to handle this problem for you make an AssetManager, which keeps assets like textures and sounds in dictionaries which keep their file paths, so if the file is already loaded it will instead return the already loaded asset, its what I do and it works fairly nicely.
Its still being developed and to my knowledge is open source, so if you would like to expand it yourself you can.
its also been designed for developing android, IOS, Mac and Linux games, this in mind it does mean OpenGL is run instead of D3D, but this is good as in many cases OpenGL can be faster than D3D and as already stated runs on other platforms.
the swap over is seamless for the most part with the exception of no content processor (but you can use Texture2D.FromStream and SoundEffect.FromStream which in many cases can prove themselves more efficient than the content processor anyway)
I'd advice to handle this problem for you make an AssetManager, which keeps assets like textures and sounds in dictionaries which keep their file paths, so if the file is already loaded it will instead return the already loaded asset, its what I do and it works fairly nicely.