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