Over a million developers have joined DZone.

Cross-Platform engine progress

DZone's Guide to

Cross-Platform engine progress

· Mobile Zone
Free Resource

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.


Published at DZone with permission of David Amador, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}