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