移動開發之我見-移動平臺遊戲開發技術的前世今生

隨着智能手機平臺的興起,移動平臺應用開發變成現在熱門的話題,而在應用開發中,遊戲的開發佔有舉足輕重的位置,而移動平臺的開發技術,尤其是遊戲的開發技術在近幾年的變化非常大,從最早門檻低的J2me技術開始,到針對各個平臺的開發技術,直到現在依賴各種框架和引擎的跨平臺技術.......大家對於技術的革新和追求從來就沒有停止,本文就從一名普通開發者的角度來總結一下移動平臺遊戲開發技術的前世今生。

在最早的J2me時代,J2me這項技術的學習相對簡單,開發速度也比較快,而且當時幾乎所有手機平臺都支持java,所以“一次編碼,到處運行”也就不是夢想了,但是由於機型的硬件性能所限,不同的平臺在移植上也需要下一番功夫,針對不同屏幕,不同內存,往往要開發不同的版本,當時的開發者根據經驗,往往把很多種機型分組處理,爲每組開發一個模板,然後再針對在不同機型上的運行情況做不同的調整,形成了一種相對高效的開發模式,但是,在這個階段由於手機設備的硬件水平普遍偏低,因此開發中的限制也比較大,這一點在之後的智能機時代得到了很大的改善........

隨着蘋果ios系統和iphoneipad一系列產品的發佈,隨着android系統和相應的設備的誕生,移動平臺的種類豐富了,從單一的手機發展到平板等多種手持設備上,而移動遊戲的開發方式同樣也有了改變,開發者們開始嘗試針對不同的平臺的開發框架來進行開發,這裏用android的開發來說,筆者認爲androidjava開發框架是最接近之前j2me的開發框架的,因此這時,有些開發者只是在開發j2me遊戲的基礎上,將其移植到android平臺上,這樣做很簡單,甚至只需要改變幾個函數api的名稱即可,但是,智能平臺的硬件及性能的提高並沒有帶來遊戲品質的提高,於是開發者們也探索着進行只針對單一平臺的開發,利用平臺特性(多點觸屏,重力感應等)開發出了很多不錯的遊戲,雖然android平臺的屏幕及分辨率也是千奇百怪,但是開發和移植由於更出色的框架變得簡單起來,相對的也不需要太多的考慮內存的限制(這方面的限制相對於java時代寬裕了很多)。但是問題依然存在,對於不同的智能平臺(androidios)依然需要寫不同的代碼來進行開發,如何跨平臺這個問題擺在了開發者面前.........

對於跨平臺的探索,我想借用6月份程序員雜誌上的一段文章說明,苦逼程序員自己學習ocjavaC#使自己變成“活”的跨平臺工具,夜以繼日的加班來在不同平臺上實現跨平臺,可以說是“人肉”跨平臺。普通程序員使用“中立”語言(比如C++支持androidios)或者使用一些引擎,來使自己的代碼更多的複用。而文藝程序員則是編譯腳本代碼來發布不同版本,通過底層引擎化來實現跨平臺,這種跨平臺通過引擎和框架來實現,比如最新發出alpha版本的cocos2d-html5引擎,使用該引擎,遊戲的代碼通過javascript這種腳本語言來編寫,這樣可以藉助html5的跨平臺特性發佈網頁版本的跨平臺遊戲,也可以通過cocos2djavascript版本發佈本地版應用,實現“一次編碼,到處發佈”,這樣“一次編碼,到處發佈”的跨平臺引擎還有unity3d等。

這些跨平臺引擎使用的原理包括openglhtml5等,首先說opengl(對於移動平臺大多是opengl es),由於顯示硬件都支持opengl這種圖形渲染的api,所以大多數移動平臺都支持opengl,因此基於opengl開發的引擎及框架可以實現跨平臺也就不奇怪了,包括webgl同樣是把javascriptopengl結合到一起,從而使網頁上也可以實現opengl渲染。Html5同樣可以實現跨平臺,其中他的canvas部分同樣是負責渲染部分,雖然現在不是所有瀏覽器都支持webgl,但是現今大部分瀏覽器都支持html5canvas,筆者感覺canvas很像j2me中的畫布畫筆等,因此學習也沒有什麼難度,同時html5在未來的跨平臺技術中,也會有更好的應用。

對於技術的追求和學習不會止步,從我的這篇文章可以看出,移動平臺的技術在近幾年中的發展的確很快,一方面,作爲移動平臺遊戲開發者來說,我們可以實現品質更好的遊戲,另一方面,作爲對我們的激勵,只有不斷學習才能趕上技術變化的腳步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章