隨著adobe flash player版本的不斷更新,網頁遊戲在遊戲的表現力上也在不斷的得到提公升。其中,flash player11引入的stage3d技術,adobe推出一系列面向遊戲的功能庫和開發工具,gamesdk遊戲庫,flash builder4.7,actionscript3。儘管有了優秀的工具的支援,但是因為flash player本身執行環境有限,所以想開發出真正高效能的遊戲還是一件很難的事。
\u0026#xd;\n
今年7月18日-19日在archsummit 2014上,上海江游英雄神殿網頁端主程馬強將會就《網頁遊戲開發中的效能優化和分析工具的使用》這一話題進行分享。在大會開始之前,infoq請馬強就頁遊架構及開發瓶頸等話題分享一些自己的觀點,採訪內容如下:
\u0026#xd;\n
\u0026#xd;\n
\u0026#xd;\n\u0026#xd;\n馬強:我目前的工作主要是完成《英雄神殿》網頁端架構的設計和實現,帶領我的團隊按照專案的要求完成各個功能模組的開發,保證程式的穩定和流暢。關注的領域還是主要在遊戲相關的開發上,目前主要集中在頁遊相關的開發上,從技術上怎樣提高網頁遊戲更好的表現力,怎樣提供更好的程式架構,保證開發的進度;同時在培訓自己的團隊,找到一些合適的方法提高團隊其他程式的技術能力。
\u0026#xd;\n
infoq:針對《英雄神殿》的頁遊架構,如何解決遊戲效能無法提高的瓶頸,具體用到了哪些方法?
\u0026#xd;\n
\u0026#xd;\n\u0026#xd;\n馬強:flash player作為瀏覽器的乙個外掛程式嵌入在瀏覽器裡面執行,其執行效率必然不能很高,同時flashplayer又採用幀作為執行的驅動力,這就導致每幀內不能做太多的事情,需要把要做的事情盡量分攤到每個幀上去。比如角色的解碼,可以採用使用的時候再解碼的方式,每幀使用哪幀的,再解碼哪幀的,而不是在一幀內解碼所有的,這樣很容易造成程式執行的不平順。
\u0026#xd;\n
flash player的記憶體**是由flash player自身控制的,開發人員並不能控制何時進行記憶體**。即使開發人員釋放了不用的記憶體,flash player也不是立即做記憶體**,記憶體**的效率是很低的。為了盡量避免flash player進行記憶體**,我們採用物件池的方式快取當前不需要使用的物件,盡量迴圈利用已經申請的記憶體,同時設定flash player的記憶體**頻率,盡量在場景切換的時候讓flash player**記憶體,在其他時候盡量少進行記憶體**操作,保證程式平順的執行。
\u0026#xd;\n
infoq:as3的快速遊戲開發與flash player有限的執行環境,您是如何平衡、博弈兩者之間的關係的?能否舉例說下。
\u0026#xd;\n
\u0026#xd;\n\u0026#xd;\n馬強:as3作為adobe推出的第三代開發語言,確實在開發效率上有了很大的提高。as3作為一種高階語言,為我們在記憶體管理,底層控制上做了很多的封裝,恰恰是這些封裝導致開發人員不能有效的避免flash player有限的執行環境。
\u0026#xd;\n
比如記憶體的管理,as3提供new方法讓開發人員可以任意的申請記憶體,但是flash player的記憶體**機制,並不能很好的幫助開發人員管理好記憶體。這顆定時炸彈什麼時候引爆,開發人員並不能有效的控制,導致開發人員必須小心的管理自己申請的記憶體。
\u0026#xd;\n
infoq:有人說頁遊玩法核心是數值,手遊核心是關卡。從開發的角度,您如何看待頁遊與手遊之間共性和差異,如:開發時間、平台、工具、互動、測試等。
\u0026#xd;\n
\u0026#xd;\n\u0026#xd;\n馬強:無論頁遊,手遊,端遊,可玩性才是乙個遊戲的核心,表現力才是遊戲的靈魂,從技術的角度來看,是因為技術達不到對遊戲表現力的支撐,才導致了頁遊偏重於數值,手遊偏重於關卡,我相信隨著技術的不斷進步,遊戲還是要回到她的本質上的,玩家還是喜歡酷炫的遊戲。
\u0026#xd;\n
infoq:這些年,您從乙個玩家到遊戲主程,最大的感悟是什麼?
\u0026#xd;\n
\u0026#xd;\n\u0026#xd;\n馬強:玩了那麼多年的遊戲,很佩服那些遊戲製作者,一款款的經典遊戲總是勾起我們美好的回憶,如今自己也能成為一名遊戲製作者,心中充滿了無盡的感慨。
\u0026#xd;\n
現在做遊戲有太多的急功近利了,沒有太多的人願意沉下心來做好玩的遊戲。同時現在的遊戲開發已經像乙個工廠,出來的都是幾乎相同的遊戲,相同的玩法,相同的互動,相同經濟系統……真正顛覆性的遊戲,像俄羅斯方塊,魂斗羅,超級瑪麗這樣經典的遊戲很少很少。也可能每個時代對經典遊戲的定義不同吧!
\u0026#xd;\n
馬強最後總結,adobe已經意識到了遊戲這塊對於flash後面的發展有著至關重要的作用。它已經把更多的精力投入到了遊戲這塊上,gamesdk的推出,stage3d的不斷完善,都說明adobe在注重遊戲這塊的發展。但是隨著目前手機技術的不斷進步,adobe的air在手機上的表現並不理想,頁遊究竟還能走多遠,手遊技術的發展空間在**,手機的硬體發展能不能再有乙個新的高度,這些問題對遊戲開發的影響都很大。
\u0026#xd;\n
馬強,從小熱愛遊戲,為了能做自己喜歡的遊戲,高考選專業時所有的志願都是計算機專業,畢業後一直從事和遊戲開發相關的技術研究。先在51.com遊戲事業部從事遊戲前端的開發,又在盛大雲計算研究院從事網路及後端架構的開發,通過前後端技術的研究開發,對整個網路遊戲的前後端架構有比較清楚的認識和見解。目前擔任上海江游《英雄神殿》專案組網頁端主程,全面負責網頁端技術的架構
\u0026#xd;\n\u0026#xd;\n
感謝郭蕾對本文的審校。
\u0026#xd;\n
頁遊開發在Flashplayer與AS3上的博弈
隨著adobe flash player版本的不斷更新,網頁遊戲在遊戲的表現力上也在不斷的得到提公升。其中,flash player11引入的stage3d技術,adobe推出一系列面向遊戲的功能庫和開發工具,gamesdk遊戲庫,flash builder4.7,actionscript3。儘管有...
頁遊開發必備知識
1 全面學習as3 api,著重了解顯示列表 網路通訊 bitmapdata drawapi 二進位制操作 注 欠缺網路通訊和bitmapdata 2 了解如何與美術配合,如何從swf中獲取你需要的資源 3 了解嵌入和載入外部資源的方法,外部資源主要包括swf png jpg 建議必須學習flash...
Android開發 在ImageView上繪製圓環
繪製圓環其實很簡單,有大概以下三種思路.這裡先說網上提到的一種方法。思路是先繪製內圓,然後繪製圓環 圓環的寬度就是paint設定的paint.setstrokewidth的寬度 最後繪製外圓。請看核心原始碼 package yan.guoqi.rectphoto import android.con...