久久精品国产99国产精2020丨,亚洲成αv人片在线观看,www.黄色av免费,亚洲黄色在线,福利无码视频世界,欧美色综合一区二区三区,2017夜夜爱毛片

蘋果全球開發(fā)者大會(huì) iOS游戲開發(fā)3個(gè)新框架全解

來(lái)源:網(wǎng)絡(luò)

點(diǎn)擊:1040

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞: WWDC,iOS,游戲開發(fā)

      在此次WWDC的游戲相關(guān)視頻中,蘋果再一次展現(xiàn)了它非凡的技術(shù)整合和持續(xù)創(chuàng)新能力。除了繼續(xù)完善已有的2D游戲框架SpritKit,  3D游戲框架SceneKit和全新的圖形渲染API Metal 外,今年還新增加了GamePlayKit,ReplayKit和Model  I/O三個(gè)新框架。

      GamePlayKit給游戲開發(fā)者帶來(lái)了全新的游戲架構(gòu)(“實(shí)體組件系統(tǒng)”)和一些通用模式(比如:狀態(tài)機(jī), Goal-agent-behavior  系統(tǒng)等),同時(shí)它還提供了大量游戲算法,比如尋路算法,模糊邏輯和規(guī)則系統(tǒng)等。

      ReplayKit可以讓玩家在游戲中錄制游戲視頻,并且可以添加語(yǔ)音評(píng)論,然后通過(guò)社交網(wǎng)絡(luò)分享出去。

      而Model I/O框架,主要是用來(lái)處理3D資源和數(shù)據(jù),同時(shí)可以給一些資源做離線處理,提高游戲運(yùn)行時(shí)性能。

      SpriteKit新功能

      SpriteKit是蘋果在2013年推出來(lái)的2D游戲開發(fā)框架,它最初的設(shè)計(jì)很多來(lái)自Cocos2D-iPhone項(xiàng)目,特別是API方面,幾乎和Cocos2D-iPhone沒(méi)有差別。得益于此,Cocos2D用戶可以用很小的成本轉(zhuǎn)到SpriteKit上面來(lái)。

      在去年的WWDC中,蘋果推出了一系列重磅級(jí)功能特性:物理集成,XCode資源打包、實(shí)時(shí)編輯器,SceneKit  3D框架,Metal圖形API等,這讓SpriteKit成為了開發(fā)iOS/OS X平臺(tái)上的游戲的首選游戲框架。

      今年,蘋果繼續(xù)發(fā)力,添加了3個(gè)新的節(jié)點(diǎn)類型,同時(shí)還完善了整個(gè)游戲開發(fā)流程和工具鏈支持。

      SKCameraNode

      此類模擬游戲里面的照相機(jī),它可以定義游戲的可見(jiàn)視圖,同時(shí)它也是一個(gè)node,可以對(duì)它進(jìn)行縮放,旋轉(zhuǎn)和平移等操作。此類是開發(fā)者繼去年  WWDC后最希望實(shí)現(xiàn)的功能,對(duì)于實(shí)現(xiàn)一些大地圖的冒險(xiǎn)類游戲和RPG游戲非常有幫助,可以給主角添加一個(gè)SKCameraNode子節(jié)點(diǎn),然后游戲視角  就會(huì)跟隨主角的移動(dòng)而移動(dòng)了。另外,游戲里面可以支持多個(gè)SKCameraNode.

      SKAudioNode

      此類可以實(shí)現(xiàn)基于位置的音效,環(huán)境音效和沉浸性音效??梢韵胂褚幌?,一顆導(dǎo)彈向你的主角飛過(guò)來(lái),聲音由遠(yuǎn)及近,當(dāng)導(dǎo)彈離你的主角很近時(shí),甚至可以聽(tīng)到導(dǎo)彈尾部噴氣的聲音,這種游戲音效會(huì)給玩家?guī)?lái)非凡的聽(tīng)覺(jué)感受。

      SKReferenceNode

      此類是SpriteKit的一個(gè)亮點(diǎn),它可以實(shí)現(xiàn)已有組件的序列化,支持?jǐn)?shù)據(jù)驅(qū)動(dòng)式的游戲開發(fā)。

      配合XCode,序列化的組件可以被當(dāng)作游戲資源在各個(gè)不同的工程和游戲里面重用。

      而且它會(huì)自動(dòng)Cache,同樣的文件不會(huì)被加載多次。對(duì)于一些復(fù)雜的場(chǎng)景和組合動(dòng)作序列,當(dāng)需要重用它們的時(shí)候,SKReferenceNode是個(gè)大殺器。

      Metal支持

      目前iOS 9全面支持Metal,已有的SpriteKit游戲跑在iOS  9上面,不需要做任何修改即可享受Metal帶來(lái)的性能提升。如果你的設(shè)備支持Metal,那么它就會(huì)使用Metal,反之則切換到OpenGL ES.

      SpriteKit 相關(guān)工具

      一個(gè)好的游戲框架離不開一個(gè)好用的工具支持,游戲開發(fā)者可以通過(guò)工具快速地進(jìn)行迭代式開發(fā)。蘋果一直致力于完善SpriteKit的工作流,讓開發(fā)者可以更快速地開發(fā)游戲,同時(shí)讓玩家可以不用關(guān)心技術(shù)細(xì)節(jié),只需要專心游戲玩法即可。

      今年WWDC XCode工具支持方面主要有以下幾點(diǎn):

      資源分類( Asset catalog  )支持,開發(fā)者可以更精確地控制不同設(shè)備使用的資源分辨率,最重要的是,玩家在下載游戲到設(shè)備里面時(shí),只會(huì)下載與其設(shè)備分辨率匹配的資源。

      按需加載資源,通過(guò)給不同的資源設(shè)備Tag,可以指定某些場(chǎng)景和關(guān)卡只加載特定Tag的資源。

      XCode快速預(yù)覽:支持在Playgound里面使用Swift編寫一些測(cè)試代碼,然后快速預(yù)覽效果。不需要額外的編譯,立馬就可以看到API的使用效果,這對(duì)于測(cè)試一些API和驗(yàn)證一些想法非常有幫助。

      2D時(shí)間軸動(dòng)作編輯器:這個(gè)應(yīng)該算是SpriteKit的大殺器了,它是一個(gè)功能完善的2D動(dòng)作編輯器,可以支持實(shí)時(shí)預(yù)覽動(dòng)作效果,并且同時(shí)支持2D和3D。

      數(shù)據(jù)驅(qū)動(dòng):SKReferenceNode可以讓可重用的游戲組件數(shù)據(jù)化,讓玩家可以用更少的代碼來(lái)完成游戲開發(fā)。

      小結(jié):

      整個(gè)SpriteKit在性能,工具和易用性方面都有了較大的提升,另外,配合SceneKit,開發(fā)者可以更容易地開發(fā)3D休閑類游戲了。

      SceneKit新功能

      SceneKit是蘋果為了讓游戲開發(fā)者更方便地開發(fā)3D游戲而推出來(lái)的,它支持iOS和MacOS X。

      同時(shí),它還完美支持粒子系統(tǒng),物理集成和SpriteKit。今年,蘋果改進(jìn)了場(chǎng)景編輯器,同時(shí)對(duì)Metal的支持也更加完善了。

      新的場(chǎng)景編輯器

      新的場(chǎng)景編輯器的功能總結(jié)如下:

      支持更多的3D文件格式: DAE,OBJ,Alembic, STL和PLY文件格式。

      新的原生文件格式,使用NSKeyedArchiver來(lái)存取

      Shader修改器和環(huán)境光遮蔽(Ambient Occlusoni)

      天空盒(Skybox)和幾何修改器

      SCNTechnique 支持

      支持聲音節(jié)點(diǎn)

      支持Model I/O(后面會(huì)具體介紹Model I/O是什么)

      除了這7點(diǎn)以外,還有諸如compute shader, relfective cub map等功能。

      Metal支持和 SKTransitions

      新的SceneKit可以根據(jù)設(shè)備類型自動(dòng)匹配是否使用OpenGL或Metal作為渲染后端,同時(shí)它支持SpriteKit的切換場(chǎng)景切換,制作SceneKit場(chǎng)景切換效果更容易了。

      Metal 新功能及性能優(yōu)化

      今年WWDC游戲相關(guān)視頻中,蘋果用了3個(gè)視頻介紹了Metal的新特性以及性能優(yōu)化方法,同時(shí)SpriteKit和SceneKit在iOS  9中都是默認(rèn)使用Metal作為渲染API。Metal作為蘋果生態(tài)圈的高性能圖形渲染API,大有可能在將來(lái)某一天取代OpenGL的趨勢(shì)。

      新功能介紹

      這里簡(jiǎn)單給大家介紹一下Metal的新功能,具體的細(xì)節(jié)還需要查看相關(guān)文檔和視頻。

      新的內(nèi)存模型:它一共支持3種內(nèi)存模型,分別是共享內(nèi)存模型,私有內(nèi)存模型和托管內(nèi)存模型。

      新的紋理壓縮格式(ASTC):

      設(shè)備GPU 類型判斷:自動(dòng)根據(jù)設(shè)備的GPU類型來(lái)判斷支持的特性集合。

      MetalKit框架:讓Metal應(yīng)用開發(fā)更加簡(jiǎn)單方便。

      Metal performance shader框架:提供了一系列數(shù)據(jù)并行算法。

      Metal調(diào)試工具:更方面地調(diào)試Metal圖形應(yīng)用。

      Metal應(yīng)用程序瘦身:這一點(diǎn)和上面介紹的SpriteKit瘦身原理是一樣的。

      MetalKit框架

      MetalKit對(duì)于一些常見(jiàn)的應(yīng)用場(chǎng)景提供了高效的實(shí)現(xiàn),開發(fā)者可以用更少地代碼來(lái)開發(fā)應(yīng)用,并且開發(fā)出來(lái)的應(yīng)用性能和穩(wěn)定性會(huì)更高。

      MetalKit提供了一個(gè) MTKView  類,它統(tǒng)一處理了渲染一個(gè)Metal場(chǎng)景所需要的設(shè)置代碼,另外,它提供了一個(gè)紋理加載器,它可以從一個(gè)圖片文件中創(chuàng)建一個(gè)Metal紋理。最后,MetalKit完美支持Model  I/O,讓3D模型的處理更加簡(jiǎn)單。

      Metal performance shader框架

      Metal performance shader是一個(gè)為GPU提供數(shù)據(jù)并行算法的一個(gè)框架,目前只支持A8處理器。

      它定義了一些類似操作CPU風(fēng)格的API,這樣可以讓GPU編程變得更加簡(jiǎn)單。它提供了很多內(nèi)置的并行算法,比如蘭索斯重新取樣(Lanczos  resampling),卷積函數(shù)(比如高斯濾鏡等),直方圖等。

      Metal調(diào)試工具和最佳實(shí)踐

      眾所周知,圖形應(yīng)用是非常難以調(diào)試的,而Metal在設(shè)計(jì)之初就考慮了多線程,而多線程的調(diào)試也是很困難的。因此,如果沒(méi)有好用的工具支持,調(diào)試Metal應(yīng)用將會(huì)變得非常困難。

      此次,蘋果圍繞Metal提供了一系列好用的工具。比如:一個(gè)可視化的幀調(diào)試器,一個(gè)資源和狀態(tài)查看器,shader性能分析工具,集成的離線Metal編譯器等。

      讀者可以根據(jù)WWDC中關(guān)于Metal性能優(yōu)化的視頻去了解更多詳細(xì)的信息。

      另外,蘋果給我們定義了一些最佳實(shí)踐:

      要盡早分析和經(jīng)常分析代碼

      在最合適的時(shí)機(jī)去獲得Drawable對(duì)象。

      盡可能基于GPU去考慮多線程渲染。

      提前創(chuàng)建好一些耗時(shí)的對(duì)象并盡可能地重用這些對(duì)象,提前編譯好著色器程序。

      小結(jié):

      Metal已經(jīng)成了蘋果在3D圖形渲染的一張王牌,它的性能遠(yuǎn)超OpenGL,開發(fā)者應(yīng)該全面擁抱它,利用它來(lái)開發(fā)出性能更好的圖形應(yīng)用和游戲。同時(shí),使用Metal,也可以用更少的代碼來(lái)編寫圖形應(yīng)用,另外,它也會(huì)讓你的程序會(huì)更容易維護(hù)。

      GamePlayKit介紹

      GamePlayKit是今年WWDC游戲開發(fā)方面最大的亮點(diǎn),它提供的實(shí)體組件系統(tǒng)將直接改變之前以繼承為主的開發(fā)游戲方式。另外,還為游戲開發(fā)提供了大量實(shí)用的算法與設(shè)計(jì)模式,iOS游戲開發(fā)從未如此簡(jiǎn)單。

      實(shí)體組件系統(tǒng)

      實(shí)體組件系統(tǒng)是一種非常流行和先進(jìn)的組織游戲邏輯的方式,采用它編寫的游戲代碼,更容易維護(hù),更容易擴(kuò)展,同時(shí)也更加靈活。

      GKEntity  在實(shí)體組件系統(tǒng)里面,所有的游戲?qū)ο蠖急唤M織成游戲?qū)嶓w(GKEntity),它只是一個(gè)組件(GKComponent)容器,可以在游戲過(guò)程中動(dòng)態(tài)地添加和刪除游戲組件。并且可以通過(guò)組件類型來(lái)訪問(wèn)組件并更新所有組件。

      GKComponent  GKComponent是所有游戲組件的基類,它負(fù)責(zé)存儲(chǔ)游戲數(shù)據(jù),同時(shí)會(huì)隨著實(shí)體的Update方法來(lái)更新自身的狀態(tài)。所有的游戲邏輯被放置在  updateWithDeltaTime 方法中。

      GKComponentSystem  組件系統(tǒng)是處理組件的容器,它包含了所有同種類型的組件,并通過(guò)統(tǒng)一的邏輯來(lái)處理這些組件。組件系統(tǒng)并不關(guān)心實(shí)體,它會(huì)透明地對(duì)象所有同種類型的組件并更新其狀態(tài)。

      尋路算法

      尋路算法可以讓你指定一些節(jié)點(diǎn)生成一個(gè)雙向連接圖,然后可以通過(guò)簡(jiǎn)單的API調(diào)用找到任意兩個(gè)點(diǎn)之間的最優(yōu)路徑。所有的有向圖的基類是GKGraph,它是一個(gè)抽象類。它提供一些共用的邏輯,比如動(dòng)態(tài)地添加和刪除節(jié)點(diǎn),連接這些節(jié)點(diǎn)并找到任意兩個(gè)節(jié)點(diǎn)之間的路徑。

      此外,GamePlayKit還提供了兩種特殊類型的圖節(jié)點(diǎn): GKGridGraph 和 GKObstacleGraph  。GKGridGraph非常適合2D游戲里面的路徑查找。而GKObstacleGraph則可以設(shè)置一些障礙物,節(jié)點(diǎn)在尋路的時(shí)候,這些障礙物是無(wú)法穿越的。SKNode的邊界,物理剛體和紋理都可以當(dāng)作障礙物。

      狀態(tài)機(jī)

      狀態(tài)機(jī)是游戲玩法的骨架,游戲本身就是由一系列的狀態(tài)機(jī)組成的。比如主角動(dòng)畫,AI狀態(tài),UI切換,關(guān)卡切換等,這些都可以使用狀態(tài)機(jī)巧妙地解決。

      GamePlayKit通過(guò)封裝了 GKStateMachine 和 GKState  類,把一些共用的邏輯全部抽象出來(lái)了,開發(fā)者再也不用為每一個(gè)游戲去開發(fā)單獨(dú)的狀態(tài)機(jī)了。

      Goal, Agent和Behavior

      Agent指的是會(huì)自已移動(dòng)的游戲?qū)嶓w,它們通過(guò)Goal和Behavior來(lái)驅(qū)動(dòng)自身的邏輯。Behavior是由一系列的Goal組成的,每一個(gè)Goal都包含有相應(yīng)的權(quán)重。Agent在與玩家進(jìn)行游戲交互的時(shí)候,可以表現(xiàn)得更像人類,因?yàn)樗鼈円矔?huì)做決策。

      以往只有在一些很復(fù)雜的游戲里面才會(huì)看到的AI,如今通過(guò)GamePlayKit,我們可以非常輕松地給自己的游戲也添加了。通過(guò)給游戲里面的怪物添加一些AI,能夠極大地增強(qiáng)游戲的趣味和粘性。

      AI 策略(MinMax AI)

      MinMax  AI主要用于一些回合類游戲,比如象棋,圍棋,Tic-Tac-Toe等。它還能給人類玩家提供一些建議,比如告訴你下一步棋該怎么下。另外,通過(guò)計(jì)算時(shí)間的設(shè)置,AI可以定義不同的難度等級(jí)。

      規(guī)則系統(tǒng)

      規(guī)則系統(tǒng)可以讓你制作更加復(fù)雜的游戲AI,游戲世界的交互不再是“黑即是黑,白即是白”,而是以事先定義好的一定的規(guī)則去交互。游戲AI可以實(shí)現(xiàn)所謂的模糊邏輯,游戲怪物的活動(dòng)可以根據(jù)定義好的規(guī)則系統(tǒng)去動(dòng)態(tài)地調(diào)整和評(píng)估自己的行為。

      隨機(jī)數(shù)發(fā)生器(Random Sources)

      每個(gè)游戲都有一些特別的隨機(jī)數(shù)生成需求,而rand()函數(shù)只能生成一些偽隨機(jī)數(shù),并且可能跟平臺(tái)實(shí)現(xiàn)還有一些出入。作為開發(fā)者,我們需要一個(gè)與具體平臺(tái)無(wú)關(guān)的隨機(jī)數(shù)生成器,另外這個(gè)隨機(jī)數(shù)生成器還能產(chǎn)生符合一定數(shù)學(xué)分布的隨機(jī)數(shù)。

      Demobots示例

      這是一個(gè)非常有價(jià)值的游戲demo,里面幾乎涉及了GamePlayKit里面的大部分技術(shù),是一個(gè)值得深入學(xué)習(xí)的游戲示例。這里是 下載鏈接

      小結(jié):

      實(shí)體組件系統(tǒng)不是蘋果的原創(chuàng),但是這一次GamePlayKit巧妙地整合了已有的游戲開發(fā)框架,iOS游戲開發(fā)變得從未如此簡(jiǎn)單和有效。配合強(qiáng)大的Swift和Xcode支持,更加如虎添翼。

      ReplayKit和 Game Center

      ReplayKit可以讓玩家在游戲中錄制游戲視頻,并且可以給這些視頻添加語(yǔ)音評(píng)論并且通過(guò)社交網(wǎng)絡(luò)分享出去。另外Game  Center允許訪客模式,并且整合了產(chǎn)品服務(wù)器和沙盒服務(wù)器,這樣測(cè)試和開發(fā)基于Game Center的游戲就變得更加簡(jiǎn)單了。

      ReplayKit只有在iOS  9才能使用,另外開發(fā)者可以定制是自動(dòng)在某些游戲場(chǎng)景開啟視頻錄制還是讓玩家自己選擇錄制時(shí)機(jī)。錄制完的視頻還可以被編輯和預(yù)覽,從此玩游戲不再孤單。

      另外,訪客模式是不需要取得認(rèn)證即可參與游戲的,訪客不會(huì)取得任何游戲成就,也不可以發(fā)布游戲得分。開啟訪客模式的游戲,玩家只能與其它運(yùn)行iOS  9的玩家進(jìn)行游戲。

      Model I/O模塊介紹

      Model I/O是用處理3D資源和數(shù)據(jù)的框架,我們可以通過(guò)Model  I/O快速地加載和導(dǎo)出3D資源文件。另外,它集成在Xcode里面并且和可以非常容易地與GameKit API配合。它的主要功能特性如下:

      支持多種3D文件格式的

      可以對(duì)資源進(jìn)行修改和Bake

      支持3D模型三維像素化(Voxels)

      集成Playground, Swift和Finder,并且能夠在Finder的Quick look里面預(yù)覽資源。

      支持基于物理的材質(zhì)和光照

      總結(jié):

      從本次蘋果對(duì)游戲開發(fā)所做的改進(jìn)來(lái)看,休閑社交游戲仍然是其主推的游戲類型。不過(guò)有了Metal的支持,在MacOS  X開發(fā)AAA游戲也是完全有可能的。另外,主流的游戲廠商Unity和Unreal都聲稱直接了Metal,相信以后蘋果生態(tài)圈里面會(huì)出現(xiàn)更多高品質(zhì)的游 戲。

      另外,隨著虛擬現(xiàn)實(shí)和現(xiàn)實(shí)增強(qiáng)的火爆,相信在不久的將來(lái),蘋果也可能推出自家的VR設(shè)備。到時(shí)候,這些游戲開發(fā)框架和工具必將是您開發(fā)蘋果VR游戲的首選。

    (審核編輯: 智匯張瑜)

    聲明:除特別說(shuō)明之外,新聞內(nèi)容及圖片均來(lái)自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請(qǐng)聯(lián)系我們刪除。