Buscando el framework OpenGL ES para el desarrollo multiplataforma en Win / Linux / MacOSX / Android / IOS

Tengo que desarrollar una aplicación multiplataforma multimedia que se ejecutará en Windows, Linux, MacOSX, Android e IOS . Esta aplicación tendrá que ser capaz de reproducir contenido de audio / video, mostrar fotos y gráficos y, probablemente, mostrar animaciones 2D simples. Después de mucha búsqueda, parece que el "enfoque más portátil" al problema es usar C++ como lenguaje y OpenGL ES como API de dibujo, ya que ambos son compatibles con casi cualquier par de dispositivos / SO, el nivel de rendimiento será bueno y El aspecto visual debe estar cerca del mismo en cada (grupo de) dispositivos.

Obviamente, sé que voy a tener que ajustar la apariencia de la aplicación para "escala" en diferentes dispositivos con diferentes tamaños de pantalla y resoluciones. También sé que no es realista exigir exactamente el mismo comportamiento para cualquier pieza de código en arquitecturas tan diferentes. Sólo quiero minimizar el código escrito (por ejemplo, la reescritura de una pieza de interfaz primero en C + +, a continuación, en Java debe evitarse).

No soy un experto en programación de OpenGL ES, pero mirando algunas muestras, parece que necesitaré un marco para tener algún widget ready-made (menús, botones, textboxes). Prefiero no reinventar la rueda.

Este es un proyecto de bajo presupuesto, por lo que necesitaré un marco que sea completamente gratuito y opensource . Este último requisito también da la libertad de añadir / modificar API del marco cuando algo importante falta o se está portando mal. No estoy pidiendo un framework multipropósito (como Qt por ejemplo), capaz de manejar entrada, redes, almacenamiento, etc., solo porque sospecho que ese framework no existe para las plataformas que mencioné. Sólo quiero una especie de envoltorio OpenGL capaz de abstraer muchos de sus detalles de bajo nivel, pero también ofrece algún widget de interfaz de usuario como lo haría Qt. Voy a manejar intput, redes, almacenamiento, sensores por separado, probablemente utilizando otras bibliotecas de código abierto multiplataforma, como se sugiere aquí .

He leído muchas preguntas similares sobre Stackoverflow y Gamedev , y he oído hablar de muchos frameworks ( Unity , Corona SDK , LÖVE , LibGDX , Ogre , Cocos2D-x ), creados principalmente para el desarrollo de juegos. Ogre y Cocos2D-x, por ejemplo, parecen coincidir con algunos de mis requisitos, pero si decido usar uno de ellos tendré que codificar casi todos mis elementos de IU (no una carga tan grande, alguien podría argumentar).

Algunas observaciones:

  • La aplicación es 2D, por lo que OpenGL puede parecer un exceso. Sin embargo, OpenGL ES ha sido elegido debido a su muy buena portabilidad y su alto nivel de rendimiento incluso en hardware antiguo.
  • Soy básicamente un desarrollador de Linux C ++, así que prefiero no cambiar a HTML5 (todavía demasiado joven) o .NET / Mono (menos eficiente) sin ventajas notables a cambio. Por otra parte, no podría realista dominar estos idiomas en el período corto.
  • Me ha impresionado la historia de este artículo . Creo que este podría ser el enfoque correcto: una mezcla de herramientas de código abierto y bibliotecas que se ajusten a las necesidades del proyecto. Pero sigo perdiendo la pieza más importante: el marco gráfico.
  • Escribiendo esta pregunta, encontré esta respuesta desalentadora . Espero que mis requisitos no produzcan un conjunto vacío. Realmente no puedo affort mantener n diferentes UIs en n plataforma diferente. Realmente necesito algo que sea agnóstico en la plataforma.

Cualquier ayuda o consejo sería muy apreciada.

Acabo de tropezar con este: GamePlay 3D

Las plataformas soportadas son Blackberry, Android, iOS, Windows, Linux y Mac OS X.

Siempre se puede hacer 2D usando un marco 3D.

Openframeworks

Hace todo lo que pediste.

  • Creación de una pantalla apropiada de Splash / Loading de Android
  • Multiplicación apropiada de matrices para rotación / traducción
  • Aprenda OpenGL: ¿por dónde empezar o cómo ha aprendido OpenGL?
  • Android SIGSEGV al dibujar ruta mediante aceleración de hardware
  • Error al intentar obtener Alraedy creado Surface y recibir EGLNativeWindowType ya conectado a otro error de API
  • NVidia PerfHUD ES Tegra en Google Nexus 7
  • Filtro esférico en android
  • Crash al usar matrices como atributos de sombreado de vértices
  • La previsualización de la cámara Android se extendió utilizando el código Grafika CameraCapture
  • la animación adview admob hace que glsurfaceview se retrasa
  • GLSurfaceView procesa continuamente a pesar de cambiar el modo de render
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.