18

我必须开发一个可以在Windows、Linux、MacOSX、Android 和 IOS上运行的跨平台多媒体应用程序。此应用程序必须能够播放音频/视频内容、显示照片和图表,并且可能显示简单的 2D 动画。经过大量搜索,似乎解决问题的“最便携的方法”是使用C++语言和OpenGL ES绘图API,因为几乎任何一对设备/操作系统都支持这两种方法,性能水平和视觉外观都会很好在每个(组)设备上应该几乎相同。

显然,我知道我必须调整应用程序的外观以在具有不同显示尺寸和分辨率的不同设备上“缩放”。我也知道,在如此不同的架构上要求任何一段代码具有完全相同的行为是不现实的。我只是想尽量减少编写的代码(例如,必须避免先用 C++ 重写一段接口,然后再用 Java 重写)。

我不是 OpenGL ES 编程方面的专家,但查看一些示例,我似乎需要一个框架来拥有一些现成的小部件(菜单、按钮、文本框)。我不想重新发明轮子。

这是一个低预算项目,所以我需要一个完全免费和开源的框架。当重要的东西丢失或行为不端时,后一个要求还提供了添加/修改框架 API 的自由。我不是要求一个多用途框架(例如 Qt),能够处理输入、网络、存储等,只是因为我强烈怀疑我提到的平台不存在这样的框架。我只想要一种 OpenGL 包装器,它能够抽象出它的许多低级细节,但也像 Qt 那样提供一些 UI 小部件。我将分别处理输入、网络、存储、传感器,可能使用其他跨平台开源库,如此处所建议

我在 Stackoverflow 和Gamedev上阅读了很多类似的问题,并且我听说过很多框架(UnityCorona SDKLÖVELibGDXOgreCocos2D-x),主要是为游戏开发而创建的。例如,Ogre 和 Cocos2D-x 似乎符合我的一些要求,但如果我决定使用其中之一,我将不得不编写几乎所有 UI 元素的代码(不是那么大的负担,有人可能会争辩)。

几点说明:

  • 该应用程序是 2D 的,因此 OpenGL 可能看起来有点矫枉过正。但是,选择 OpenGL ES 是因为它具有很好的可移植性,并且即使在旧硬件上也具有高性能水平。
  • 我基本上是一名 Linux C++ 开发人员,所以我宁愿不要切换到 HTML5(还太年轻)或 .NET/Mono(效率较低)而没有显着的优势作为回报。而且,短时间内我也无法真正掌握这些语言。
  • 我对这篇文章中的故事印象深刻。我相信这可能是正确的方法:混合使用适合项目需求的开源工具和库。但我仍然缺少最重要的部分:图形框架。
  • 写这个问题,我发现了这个令人沮丧的答案。我希望我的要求不会产生空集。我真的无法在n 个不同的平台上维护n 个不同的 UI 。我真的需要与平台无关的东西。

任何帮助或建议将不胜感激。

4

2 回答 2

10

我只是偶然发现了这个:GamePlay 3D

支持的平台是 Blackberry、Android、iOS、Windows、Linux 和 Mac OS X。

您始终可以使用 3D 框架进行 2D。

于 2013-05-09T13:33:22.817 回答
3

开放框架

做你问的一切。

于 2014-03-11T01:56:43.470 回答