SurfaceView和GLSurfaceView
今天在這里大概說下現(xiàn)在為什么游戲引擎都趨向與openGL進(jìn)行的,這里大概說下;
本文引用地址:http://2s4d.com/article/201609/305036.htm當(dāng)今基本所有的國外游戲都是質(zhì)量很好,不管是從視覺上還是操作還是流暢度上,那么今天我們關(guān)注的是其流暢度;
首先有經(jīng)驗(yàn)的游戲開發(fā)者,尤其是一直做2D游戲開發(fā)的童鞋門,從J2me到Android,很多做Android的都是從J2me過來的,那么對于J2me-3D開發(fā)的基本很少,原因不多說,對于Kjava的機(jī)器我也沒什么再噴的,反正我是受夠折磨了;
很多開發(fā)者對外國的游戲狠感慨,為什么他們做的游戲都是那么流暢,不丟幀,其實(shí)狠明確的跟大家說,他們大部分游戲都是基于openGL進(jìn)行的開發(fā),不管是3D還是2D;下面詳細(xì)說下原因:
對于剛接觸Android游戲開發(fā)的來說,首先印在心理的就是利用SurfaceView畫布進(jìn)行游戲開發(fā)(除3D游戲外),那么開發(fā)過程中,越來越多的開發(fā)者都開始對Android的運(yùn)行內(nèi)存產(chǎn)生懷疑(Android運(yùn)行內(nèi)存相對于Kjava的機(jī)器那可是大了很多),因?yàn)槎奸_始又再次關(guān)注內(nèi)存的使用;動不動就卡,就OOM,我去~狠經(jīng)典的Error~
一般2D游戲開發(fā)使用SurfaceView足夠,因?yàn)樗彩莋oogle專們擴(kuò)展用于2D游戲開發(fā)的畫布;但是很早前我做過測試:
使用普通的游戲畫布(Android中2D專用游戲畫布)中進(jìn)行繪制圖片,然后在GLSurfaceView(Android中3D游戲?qū)S卯嫴?中渲染圖片的對比中發(fā)現(xiàn)GLSurfaceView的效率高于SurfaceView的30倍~呵呵,高了30倍的效率~這是什么概念,可想而知;GLSurfaceView的效率主要是因?yàn)闄C(jī)器硬件的GPU加速,現(xiàn)在flash技術(shù)也有了GPU加速技術(shù);
下面總結(jié)一下:
一般2D游戲使用SurfaceView足夠,畢竟我之前公司做的網(wǎng)游就是用SurfaceView做的,狠流暢,所以不要認(rèn)為什么都要使用GLSurfaceView(openGL),而且 GLSurfaceView的弊端在于適配能力差,因?yàn)楹芏鄼C(jī)型中是沒有GPU加速的;關(guān)于GPU童鞋門不知道的自己百度,這里不多說了;
不管是做什么游戲,對于開發(fā)者而言,流暢是最重要的;再好的游戲幾幀左右,誰都哭;
不管使用SurfaceView還是GLSurfaceView,只要內(nèi)存優(yōu)化做的好,都基本無差(排除2D3D游戲差異);希望不管當(dāng)前你是否看了此文章想將當(dāng)前的項(xiàng)目換個(gè)GLSurfaceView框架還是如何如何,我都希望你靜下心來,好好的優(yōu)化你的內(nèi)存先,不要總把問題推到SDK和硬件上,畢竟google提供了那就肯定不會那么不效率的,否則人家也不會閑著沒事給你整那么多事情來;
對于初學(xué)者千萬不要顧慮這些,對你來說,游戲的思想是最重要的,多做項(xiàng)目才是王道,否則給再給你個(gè)地球,你都認(rèn)為它2012年也會爆炸,你懂的~
評論