2014年12月31日 星期三

Unity 2014總結,邁向2015

作者:VILMANTAS BALASEVICIUS 原文連結

在2014的最後一天,祝福所有Unity 的用戶新年快樂,羊年大吉!我們希望在2015到來之前與大家分享Unity對iOS 64-bit支援進度和Web開發的策略更新。

關於64位iOS應用

大概一個月前,我們宣布將在Unity5中對64位iOS的支援。最近蘋果針對64位iOS應用發表了另一項聲明 :

我們在10月宣布過,從2015年2月1日開始,新的AppStore的iOS App必須支援64位元系統,且必須使用iOS8 SDK編譯。而從2015年6月1日開始,更新的App也要滿足上述條件。為了使專案支持64位元系統,我們建議使用Xcode預設的發佈設定“Standard architectures”,編譯出可以同時支援32位和64位的二進制文檔。

那這對你有什麼影響呢,我們會如何解決這個問題呢?

立即升級你的專案

我們將在Unity4.6.x和Unity5中透過IL2CPP來支援64位元iOS系統。如果你要發佈新的App到Apple iOS App Store,或是更新已上線的App,那就必須將專案升級至Unity4.6.x或Unity5.0。如果你使用Unity4.x或3.x的版本開發的項目已經完成或是接近尾聲,請立即升級到Unity4.6.1並更新。當支援64位元iOS系統的Unity4.6.x版本發布後,就可以快速將你的遊戲轉為64位元iOS App。

然而如果你有Unity5.x Pro,你的遊戲又處於開發初期,或者你想使用一些進階的Unity 5功能,那就直接用Unity5版本來升級。已經使用Unity5開發專案的開發者可以繼續開發,不用擔心,我們會在Unity5.x的版本中積極改善支援64位iOS系統以及Metal渲染的問題。

Unity 5關於64位iOS系統支援的進展

我們已經構建了一個Unity5的alpha版本,交給Close Beta測試組進行測試,成立小組並收集了一些初步反饋。我們也製作了幾個可以在64位元iOS 8系統上執行的游戲。我們還與Prime31的開發者合作,將一些人氣插件升級支援IL2CPP及64位元系統。我們計劃在聖誕節後將這些改動合併到Unity5 beta,作為Unity 5 beta版的一部分來發表。這樣一來,所有預購Unity 5 pre-order的開發者都可以在2015年1月上旬開始使用新功能。

Unity 4.6x關於64位元iOS系統支援的進展

由於Unity4.x的超高人氣,成千上萬使用4.x製作的游戲處於開發後期,所以我們決定在Unity 4.6.x的版本中也加入對64位元iOS系統的支援。

就在今天,我們使用Unity4.6.1構建了第一個支援64位元iOS系統的測試專案並送到了Close Beta測試組。我們希望在2015年1月結束之前,可以發佈一個支援64位元iOS系統的Unity4.6版本。

Unity 4.6x中的Metal渲染

我們最初的計劃是只在Unity5中支援iOS系統的Metal渲染,但在收到了大家的擔憂及反饋後,我們了解它在Unity 4.x也是很重要的。所以我們開始在Unity4.6.x中反向移植Metal渲染,並準備成立對應的Close Beta測試組。我們計劃於2015年1月發佈支援Metal渲染的Unity4.6.x beta版,並另外發佈支援64位元iOS系統的正式版。

底層有什麼內容

我們致力於IL2CPP已經有很長時間了,IL2CPP可以幫助提高腳本性能(請查閱 WebGL平台的性能一文),同時也能更加靈活且有效地支援64位元iOS等多個平台。想了解關於該技術的完整內容,請查閱之前發布的文章《Unity腳本的未來》。

在Unity4.6.x及Unity 5中,我們會在底層支援兩種腳本:即Mono和IL2CPP。在iOS平台的PlayerSettings中有一個新的Scripting Backend選項:


Scripting Backend可以設置為Mono或IL2CPP。如果選擇Mono就是構建32位ARM v7專案。2015年1月前,都可以使用Mono選項來更新已上線App或是內部測試。如果選擇IL2CPP,則Architecture選項可以被設定為32-bit,64-bit或是Universal(如果設備包括高階及低階設備建議選此項)。

我們的目標是透過IL2CPP轉換到iOS的腳本與Mono完全一致,這樣在Player Settings中將Scripting Backend設為IL2CPP時感覺不到變化。但實際上有幾點不同:

•編譯時間變長,因為需要額外的步驟將IL碼轉換為C++,並編譯為Unity引擎庫。

•更大的iOS二進制文件,因為在Universal應用中,我們要同時保存32位元及64位元的iOS二進制編碼,以便游戲在32位元舊設備和64位元新設備上都能執行。

IL2CPP會一直啟用Code-Stripping來減小代碼尺寸,這代表可能需要手動增加不在編譯中的類型。短期內IL2CPP可能會有些缺陷,我們會在最快時間解決你發現的問題並發佈更新。

關於Unity 中的Web游戲開發

我們將推出在Unity5中一個振奮人心的新平台——WebGL,幾個月前我們已經移植了一款很酷的遊戲到WebGL平台上。我們堅信WebGL可以改變網頁遊戲的現狀,遊戲開發商無需安裝額外的插件就能擁有數十億的玩家。但目前瀏覽器廠商在各自的瀏覽器中提供了不同的WebGL支持水準,所以在2015年游戲開發商可能需要通過混合策略來獲取最大的成功。最近Chrome團隊宣布了關於NPAPI更新的末日計劃, 內容如下:

從2015年4月開始Chrome將預設不支持NPAPI,而且將下架Chrome Web Store中所有用到NPAPI的插件。盡管廠商都在很努力地找替代技術進行移植,還是存在小部分用戶使用沒有完全移植的插件。我們將為高階用戶(通過chrome://flags/#enable-npapi)以及企業用戶(通過企業用戶政策)提供接口,用來暫時啟用NPAPI直至相關的重要插件全部移植完成。

我們將在2015年2月移除接口,在那之後Chrome將不再支援NPAPI。已安裝的NPAPI插件擴展將不被允許再使用。

好消息是,Microsoft IE、Mozilla Firefox 和 Apple Safari瀏覽器團隊都還未宣布任何取消NPAPI支援的計劃。

至少在2015年我們會致力於在Unity 5中支持Unity Webplayer ,只要它是對開發者有用的。

網頁專案目前想獲得大量玩家最好的辦法就是將你的游戲同時移植到Unity 5 WebPlayer及WebGL兩個平台上。現在WebGL平台的游戲在功能和性能上都還有限制,所以如果要開發新專案,建議你將Unity 5 WebGL作為目標平台,並在之後將游戲移植到Webplayer平台,然後充分利用Webplayer特性來增加額外的功能。這樣一來玩家可以在Mozilla Firefox、Google Chrome, Apple Safari 8.x中體驗WebGL游戲,或是在Microsoft Internet Explorer及 Apple Safari 7.x中體驗Unity Webplayer 游戲。

沒有留言:

張貼留言

著作人