2011-08-17 107 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上運行,當然這與您的價格大大減少你的市場。

相關問題