Cross-Platform engine progress

If you read my recent posts you know I’ve been bringing Basalt to C++.
The plan is to support both DirectX and OpenGL render API’s and OpenGLES for iOS devices. I’m tired of porting stuff so I want to make a better framework for future projects and I’ll leave the XNA branch for Xbox360 and Windows Phone 7. I really wished I had this before.

Since the iPhone branch is stable I move on to making it compatible with Win32 and MacOSX.

This past week I added OpenGL support, not very different from OpenGLES but I still don’t have any shader support, just basic stuff is working now. After that Vizati iPhone code worked like a charm on Windows, as intended the game itself didn’t depend on platform specifics and it’s abstracted from all that, which was one of the major mistakes I did when starting the framework back in February.

Sound is working too, using Vorbis OGG which is cross-platform and open-source.

I still have a lot of work to do but It’s on good track, I’ll leave DirectX 9 support for the end, I want to get everything else in place first.

A little curiosity, between Vizati (.Net + XNA) and Vizati (Basalt C++/OpenGL), with the same assets, well on XNA it’s MP3 and C++ is OGG, I’m getting very different memory usage.
Around 165MB on XNA and around 20MB on C++/OpenGL. I’m probably doing something wrong on .Net side but since the difference is so big I can’t really understand what.

Even if I use uncompressed music the memory only jumps to 70MB, still a long stretch to 165MB.

Leave a Reply