為什麼沒有好用的Android遊戲引擎?

來源:互聯網
上載者:User

標籤:android   style   http   color   java   使用   os   ar   

隨著Android平台的不斷髮展,最近Android開發人員數量呈現出上升勢頭,就連以往較為冷門的遊戲開發領域也湧現出不少生力軍。然而,全新的問題正擺在了剛開始學習的人面前,非常多他們從未遇過的問題開始浮上檯面。

“找了好久也沒看見合適的引擎,看來Android真的不適合遊戲開發”、“我試過幾個遊戲引擎,感覺都不是非常好,效率低、BUG不可控”,“怎麼中國就沒人能做個向Cocos2d那樣的引擎呢?看來還得等老外做好才幹跟進啊。”這並非虛妄之談,而是一些剛剛接觸Android遊戲開發人員的真實意見。應該說,在有些網友的心目中,支援Android的遊戲引擎儘管並不算少,卻沒有一款好用的遊戲引擎。或者說,這些網友的疑問在於,世上怎麼就沒有一款能像iPhone下的Cocos2d-iPhone那樣好用又免費的Android遊戲引擎存在呢?

實事求的講,用Android進行遊戲開發,確實還存在不少問題,眼下大多數Android遊戲引擎的功能,也確實不盡人意(至少不能直接拖拽出遊戲來……)。可是,又有多少人真正考慮過,為什麼會出現這樣的現象,為什麼會出現這樣的問題?難道真是Android效能不夠,程式猿水平不夠嗎?

事實上,真正影響到Android遊戲引擎開發的問題,遠沒有表面上看到的那麼複雜,細緻說來,也無非是個“多平台相容”的問題。

沒錯,在Android遊戲開發的道路上,效能不是問題,相容才是問題,程式不是問題,環境才是問題,開發出多麼優秀的遊戲引擎都不是問題,怎麼才幹讓這款遊戲引擎在不論什麼情況下都顯得優秀才是問題。

當我們進行單一手機品牌下的遊戲引擎開發時——比方iPhone,只要相容iPhone系列就已足夠,甚至更進一步,只專註iPhone4也不打緊,畢竟現今用iPhone者大多“不怕雷劈”,去年的市場寵兒iPhone3應該早被他們棄如敝屣的換成了iPhone4。應該說,iPhone遊戲引擎乃至遊戲的製作團隊,能夠將所有精力與時間都投入到效率與功能的完好上,而全然不必理會所謂的平台相容問題。

可當你為Android平台設計遊戲引擎,開發Android遊戲時,事情恐怕就沒有那麼簡單。

我們都知道,在OpenGL對於Linux來說,是一種很高效的圖形編程介面,而Android核心又基於Linux開發,假設想要提高基於Linux開遊戲引擎的效能,那麼使用針對手機環境的OpenGL ES無疑會是最好的選擇。(當然,也有某些人出於種種原因使用Android2D)

然而,相較於iPhone平台,Android平台並不固定於某款或某幾款智能手機之上,因為眾多廠商的參與,使他在擁有相當龐雜的手機機型的同一時候,也面臨著很龐雜的多機型相容挑戰,儘管Dalvik虛擬機器足夠強大,強大到足以抹殺大部分的環境差異。可惜的是,我們視為手機遊戲引擎效能保證的OpenGL ES,卻並不在此列,畢竟不管你的軟體平台再怎麼強大,卻始終也無法跨越硬體的藩籬。即便OpenGL一直標榜自己獨立於硬體,可假如硬體對OpenGL的支援不足,那麼OpenGL也依然無法滿功率的運算起來(某些古老Android機型,甚至還存在著浮點運算屏障|||……)。這意味著,假設Android引擎一味去追求最佳效率,就必需要放棄引擎在某些機型上的執行可能性。否則,某些平台上的“良方”,就會馬上變成另外一些平台上的“毒藥”。

——我知道有網友做過Cocos2d-iPhone的Android移植,假如能看到這裡,大約能夠會心一笑吧?

而假設我們無論不顧,一味要讓Android在某些平台達到最佳效能,而放棄另外一些平台呢?這樣做的代價,就是您必須同持有某些Android機型的使用者說拜拜。

“什麼,你是使用HTC的?對不起,我的程式僅僅支援Nexus One。”

“什麼,你居然會用摩托羅拉?有沒有搞錯?我的遊戲是為三星定製的!”

可您可以想象,以上對話存在於現實的Android程式或遊戲開發中嗎?

假設不能想象,那麼放棄某些機型這條遊戲引擎開發之路就是走不通的。實際上,儘管Android程式猿能夠擁有龐大的Android陣營支援,但不管你是專做摩托羅拉,搞得HTC統統罷工,還是專做Nexus One(或者傳說中的Nexus Two),搞得三星不買賬,都會造成相當巨大的損失。

而假如我們不追求速度,一味要求跑全機型呢?那麼,在引擎設計上,就必須儘可能降低對OpenGL ES API的依賴,僅使用全部機型共同支援的那部分,以求最大限度的避免不相容代碼出現,就算——這段代碼能提升100%的程式效率也不例外。

這樣做的代價顯而易見,勢必會導致引擎速度在絕大多數環境下都無法達到峰值(由於你的程式並沒有100%發揮OpenGL效能),也就是我們通常所見的“低效”問題產生。

而只如此,也還不是最糟糕的情況,真正最糟的情況是,你的引擎跑在某款對OpenGL極不友好的手機環境中(大多數Android手機為了系統的穩定性,對於OpenGL效能存在有某種程度的限制,這樣的限制事實上比較普遍,不過程度不同罷了),一名使用者氣憤的告訴你,你的爛遊戲在他手裡連10FPS都跑不到,而你卻只能眼淚汪汪的看著手中數款機器跑出了50FPS以上的佳績。

jME-Android的難產,以及Rokon的夭折,除了各自遇到的困境以外,恐怕始終和Android這讓人又愛又恨的OpenGL機能割捨不開。

為什麼會產生這樣的原因?難道是Google的設計出了問題嗎?事實上,歸結產生這樣的問題的癥結,並非軟體或硬體的設計問題,而在於Android那無限近似於白送的系統授權政策。

Google“量化寬鬆”的Android營銷策略,固然能高速佔據市場,建立Android智能機霸主地位;可是,卻也必定會造成分支平台過多,付出廣大Android手機廠商easy向中低端使用者群靠攏的代價(系統授權近乎零成本,導致中等收益就可以滿足高盈利需求);而中低端使用者的消費能力,又反過來限制了手機廠商的手機成本價格;在這近似於“沃洛波羅斯輪迴”的怪圈影響下,想要製作出一款就可以以100%發揮OpenGL ES效能,又可相容全部Android機型,極少甚至永不出現“BUG”的遊戲引擎,差點兒是和讓中國隊去贏得世界盃冠軍相同困難——至少,在近期一年內是看不到的。由於位置最低的那塊木板,一定會決定位置最高那塊木板的命運,短板效應的悲劇,差點兒無可避免的成了阻礙Android遊戲引擎開發的攔路虎。


但是,假設Google幹掉這頭“攔路老虎”,也就是改變Android的授權策略,強制廠商向高端機邁進呢?此刻,假如那樣做,又極可能由於突然抬高的生產成本,引發Android陣營崩潰,讓本來欣欣向榮的Android橫死街頭——所謂“魚與熊掌不可兼得”,大概就是這樣的情況了。

我們又有什麼辦法徹底解決這樣的相容性問題嗎?難道我們就僅僅能在這樣的相容困局中消磨生命嗎?答案,事實上是有的,並且很easy,那就是——等待。

沒錯,在眼下這樣的情況下,即便您有多麼的不高興,即便您對Android遊戲引擎現狀有多麼的不愜意,即便您嗲聲嗲氣地高叫:“相容什麼的最討厭了!”。也務必請您保持耐心,靜候環繞Android這個“木桶”的“木板們”逐漸長大,以及成長中的Anroid遊戲引擎逐漸完好,儘管“各機型完美相容”的結果未必就會出現,但隨著Android軟硬體的不斷髮展,“各機型近乎完美相容”的時候,畢竟還是離我們越來越近了。

我們都知道,老故事中說出“早知道第七張餅才吃飽,就不該吃那前六張餅了”的人是個傻瓜蛋,可那些說出“吃了一張餅都沒飽,後面六張餅也不必吃了”的傢伙,卻也未見得就是個聰明人。

畢竟有些事情,不是急出來,扯出來,而是幹出來,闖出來的。

——————————————————

附帶一提,Slick這款Java遊戲引擎近期也要出Android版了,前一陣我看見作者在http://www.javagaming.org搞相容性測試,反向了一下APK發現原有模組已經基本移植完成,正式出現應該不會等得太久。就個人意見來說,此款引擎的效能與易用性絕對遠在Rokon之上。大家有興趣能夠關注他的進度,能催的話更好,小弟想參看一下他的完整代碼(^_^):http://slick.cokeandcode.com

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.