I have to develop a cross-platform multimedia application that will run on Windows, Linux, MacOSX, Android and IOS. This application will have to be able to play audio/video content, display photos and graphs and, probably, show simple 2D animations. After lot of searching, it seems that the "most portable approach" to the problem is to use C++
as language and OpenGL ES
as drawing APIs, because both are supported on almost any pair of device/OS, the performance level will be good and the visual appearance should be near the same on each (group of) devices.
Obviously, I know that I'll have to tweak the appearance of the app to "scale" on different devices with different display sizes and resolutions. I also know that it's unrealistic to demand the exact same behavior for any piece of code on such different architectures. I just want to minimize the written code (e.g. the rewrite of a piece of interface first in C++, then in Java must be avoided).
I'm not an expert in OpenGL ES programming, but looking at some samples, it seems that I will need a framework to have some ready-made widget (menus, buttons, textboxes). I'd prefer not to reinvent the wheel.
This is a low-budget project, so I'll need a framework that is completely free and opensource. The latter requirement also gives the freedom to add/modify APIs of the framework when something important is missing or is misbehaving. I'm not asking for a multipurpose framework (such Qt for example), able to handle input, networking, storage, etc., just because I strongly suspect that such a framework doesn't exist for the platforms I mentioned. I just want a sort of OpenGL wrapper able to abstract many of its low level details but also offering some UI widget as Qt would do. I'll handle intput, networking, storage, sensors separately, probably using other cross-platform open source libraries, as suggested here.
I've read a lot of similar questions on Stackoverflow and Gamedev, and I've heard about a lot of frameworks (Unity, Corona SDK, LÖVE, LibGDX, Ogre, Cocos2D-x), mainly created for game development. Ogre and Cocos2D-x, for example seem to match some of my requirements, but if I decide to use one of them I'll have to code almost all my UI elements (not such a big burden, someone might argue).
A few remarks:
Any help or advice would be greatly appreciated.
I just stumbled onto this one: GamePlay 3D
Supported platforms are Blackberry, Android, iOS, Windows, Linux and Mac OS X.
You can always do 2D using a 3D framework.
openframeworks
Does everything you asked.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With