2011-08-17 33 views
2

简短的问题:苹果公司是否皱眉,或完全不允许应用程序专门为设备编码(不是像Retina或Compass,而是实际设备的功能)。这里的背景:苹果是否会皱眉或不允许设备特定的编码?

我正在推出一个计划为通用应用程序的iPhone/iPad的3D游戏。我已经编写了它的用户界面,使得一组屏幕坐标可以在屏幕上完美地定位2D精灵,保持纵横比差异。

我现在遇到了第一代iPad的TREMENDOUS性能问题。 iPad 2,iPhone 3GS,iPhone 4(和iPod双胞胎)效果很好(我也不支持视网膜,但启用时性能太低)。

我正处于分支到“如果iPad 1”做这种类型编码的边缘。我知道这是一个糟糕的做法,但我制作的游戏推动了过时的硬件。我正在研究更多优化技术来帮助改进,但我需要额外获得20 FPS,这是不用说的,很多。我的问题是:如果我无法提高游戏在iPad 1上以与iPad 2相同的方式进行游戏时的性能,我强烈地考虑减小仅用于iPad 1的纹理尺寸,甚至可能删除或修剪更多poly的某些对象。然而,我不希望iPad以牺牲iPad 2用户为代价,因为这些用户拥有能够跟上GPU的设备。我的情况有多糟糕?

回答

3

我玩过很多游戏,在应用程序本身提供了一个选项,它提供了使用“高分辨率”图形/纹理(专门用于iPad 2)的选项。我想说,不仅苹果不会对这种做法不以为然,而且可能会赞成它 - 因为它让你有机会展示他们最好的设备。

我建议你想要支持每种类型的两个最新设备(iPhone 4,iPhone 3GS,iPad 2,iPad 1,适当的iPod Touch型号)。我个人认为如果你只支持每个设备的最新版本,就认为你正在削减太多的市场。

与视网膜显示器使用高分辨率图形的方式大致相同,我会建议瞄准最简单的途径来提供游戏的更轻版本和更高级的版本。如你所说,提供较低分辨率的纹理和较低的多边形模型将是这样做的一种方式。现在iPhone使用GPU纹理的统一内存系统,您可以根据设备提供的总内存大小挑选纹理大小。如果你还没有这样做,你也可能想考虑使用PVRTC纹理格式的纹理,这不会太流行。

虽然我反对'预优化',但如果您遇到速度问题,您可能需要通过分析器运行您的应用程序。您可能会发现代码中存在单个瓶颈,导致您最初想到的更多问题。但是,如果您使用的是较大的纹理 - 我怀疑您会注意到旧设备的速度显着提高,只需使用较小的纹理和较低顶点数的模型即可。

+0

喜欢所有三个答复 - 谢谢大家!我最担心的事情不是做“如果!视网膜,使用低分辨率纹理”,而是“如果设备型号是iPad1,不要这样做”。我读过的一些地方他们不喜欢那样,但这可能更像是奥斯卡所做的那些只是非常糟糕的维修做法(我同意这一点)。幸运的是我这次确实找到了一个罪魁祸首,那就是主要的瓶颈,所以到目前为止我们还是挺好的!很高兴知道,但供将来参考。谢谢你们! – David

3

简短的回答:苹果公司不会对这样的编码不满。

我有点担心你在原始iPad和3GS上看不到相同的性能,因为他们有非常相似的硬件 - 而且iPad在纸上实际上更强大。

您所描述的使用不同的纹理集合的做法并不少见 - 我知道iOS和Android程序员的负担,他们也是这样做的,以便在应用程序中实现最佳性能,所以我会说去吧!

希望这有些帮助! :)

2

当您将游戏上载到Apple Store时,您可以指定您的游戏可以使用的设备,但Apple并不特别在意它是否仅适用于iPad 2,尽管建议它适用于尽可能多的设备尽可能。

我会尽力避免使用if方法,因为这将使它成为一天的噩梦维护,我只会上传它,并指定它只能在iPad 2上运行,当然这与您的价格大大减少你的市场。

相关问题