李劍英:推薦使用c#進(jìn)行跨平臺移動(dòng)游戲開發(fā)
原創(chuàng)推出近兩年,Windows Phone終于“從默默無聞到有人喜歡”。四月里,Windows Phone應(yīng)用再上新臺階,突破了八萬款,同時(shí),“春Phone”系列活動(dòng)陸續(xù)展開,諾基亞Lumia800c也強(qiáng)勢上市,一切的一切都在這個(gè)春天里顯示出欣欣向榮的景象。
消費(fèi)者已經(jīng)開始陸續(xù)將目光投向“另類”的Windows Phone手機(jī),開發(fā)者也蠢蠢欲動(dòng)。那么,一年多來,Windows Phone的開發(fā)環(huán)境有了哪些方面的提升?在Windows Phone應(yīng)用開發(fā)中蘊(yùn)含著哪些機(jī)遇?特別是廣大人民群眾喜聞樂見的手機(jī)游戲應(yīng)用方面,其開發(fā)有何技巧和工具?
最近,51CTO獨(dú)家采訪了瘋光無線輸入法和奪寶奇兵(跨平臺游戲)作者、Windows Phone開發(fā)專家李劍英老師,請他分享了一些在Windows Phone開發(fā)方面的一些心得。
以下是采訪實(shí)錄:
51CTO: 從Windows Phone7到Windows Phone7.5,系統(tǒng)性能有了部分提升,那么相應(yīng)的在此階段中,Windows Phone應(yīng)用開發(fā)在工具、技術(shù)和第三方平臺等方面是否有值得稱贊的進(jìn)步?
李劍英:windows phone 7.5 的產(chǎn)品代號是mango,加入了很多振奮人心的新特性,這有一份長長的列表。從工具這邊來講,我個(gè)人認(rèn)為最主要的是加入了對異步編程框架的支持,具體要安裝一下Async CTP v3,然后就可以使用await async 的異步開發(fā)模型,這是windows 8帶來的新特性,我們在mango中已經(jīng)可以提前使用它。Await async 編程模型讓異步代碼看起來像順序執(zhí)行的函數(shù)那樣,具體的大家可以自己嘗試一下。從技術(shù)的角度講,我感受到最主要的變化是ie9內(nèi)核的引入,html5來了。我沒有理解這個(gè)第三方平臺的意思,如果是指軟件商店,現(xiàn)在windows phone 的政策是不存在第三方平臺的。如果是指用戶聚合的平臺,那現(xiàn)在騰訊、新浪、人人,都可以看到他們也在積極的在windows phone 上面拓展。值得一提的是OpenXLive,windows phone 7 在國內(nèi)會(huì)取消xbox live,OpenXLive就可以提供windows phone 7游戲內(nèi)的社交功能。
51CTO:之前看過一個(gè)演示視頻,國外用戶在使用Windows Phone的社交功能時(shí),通訊錄與facebook、Twitter等的無縫銜接體驗(yàn)讓人贊嘆,但囿于國內(nèi)外環(huán)境的不同,這些優(yōu)勢在國內(nèi)無法發(fā)揮應(yīng)有的效果,您認(rèn)為這方面中文版WP應(yīng)該如何改進(jìn)?只是將facebook換成人人網(wǎng),Twitter換成新浪微博就可以解決嗎?
李劍英:對社交網(wǎng)絡(luò)這部分,我覺得放棄facebook就等于放棄了世界,國內(nèi)的社交平臺無法替代他。基于中國的特殊情況,主要是網(wǎng)絡(luò)的問題,windows phone給大家提供一個(gè)內(nèi)置免費(fèi)VPN就好了。如果真把這人人、新浪整合進(jìn)系統(tǒng)了,實(shí)名制和審核,也會(huì)讓社交移動(dòng)變成移不動(dòng),當(dāng)然這只是個(gè)人意見。
51CTO: 看到您博客上最近有幾篇關(guān)于手機(jī)游戲和社交網(wǎng)絡(luò)的文章,能否簡單總結(jié)下,您認(rèn)為社交網(wǎng)絡(luò)的發(fā)展給手機(jī)游戲開發(fā)者帶來了哪些發(fā)展契機(jī)?
李劍英:這方面我知之甚淺,只能以自己的一點(diǎn)點(diǎn)經(jīng)驗(yàn)來談,首先是推廣,通過和社交網(wǎng)絡(luò)的整合,就可以利用社交網(wǎng)絡(luò)來進(jìn)行推廣,最主要的是好友邀請的方式,這個(gè)方式基本沒有成本,效果比傳統(tǒng)廣告要好。然后是多人游戲的圈子,利用社交網(wǎng)絡(luò)組織的游戲,多人游戲情況下,更多情況都是認(rèn)識的朋友一起玩,到底是游戲促進(jìn)了社交,還是社交促進(jìn)了游戲,這個(gè)不重要,關(guān)鍵是會(huì)比不認(rèn)識的人一起玩多玩一些時(shí)間。最后是炫耀,社交游戲取得的成就炫耀的效果更好,因?yàn)榭梢愿鼫?zhǔn)確的讓認(rèn)識我們的人知道,這可以持續(xù)提供給玩家東西進(jìn)行游戲。我們利用OpenXLive就可以比較容易的完成社交游戲的這些特點(diǎn),現(xiàn)在在windows phone上接入新浪和騰訊也是很簡單的。
51CTO: 移動(dòng)游戲受限于設(shè)備性能和屏幕大小及分辨率,要讓一款手機(jī)游戲在保證使用效果的情況下盡可能少的占用系統(tǒng)資源,這方面是否有什么訣竅?
李劍英:目前基本沒有什么辦法,因?yàn)橛螒騽?dòng)態(tài)東西多就要采用幀刷新的方式來做,每秒30次幀邏輯,30次幀繪制,甚至更多,我們純粹是在虐待電池。如果非要說訣竅的話,windows phone的游戲分辨率不一定要是全屏,可以用更低的分辨率,系統(tǒng)會(huì)等比縮放到全屏,如果長寬比不是10:6,就會(huì)留黑邊,這樣可以節(jié)省一點(diǎn)系統(tǒng)資源。要徹底的解決這個(gè)問題,只有依靠電池技術(shù)的進(jìn)步和cpu功率進(jìn)一步降低了。
51CTO: 您認(rèn)為跨平臺(Android、iOS、WP)游戲用什么技術(shù)開發(fā)比較好?您如何評價(jià)HTML5技術(shù)目前在游戲方面的表現(xiàn)?
李劍英:先說HTML5,目前還是看上去很美的狀態(tài),主要是HTML5里有一塊WebApp的標(biāo)準(zhǔn)還沒有得到廣泛支持,目前在瀏覽器里用HTML5還是頁面的模式,每個(gè)瀏覽器各自有一些處理,讓HTML5追求的全兼容依然是個(gè)理想。現(xiàn)在有PhoneGap在嘗試解決這個(gè)問題,也算有一定的實(shí)用性了,但離成熟還有很長一段路要走。用HTML5做游戲,又面臨WebGL標(biāo)準(zhǔn)沒有在手機(jī)端廣泛支持,軟3D在手機(jī)性能下不能實(shí)用的問題,3D游戲判死刑,2D游戲如果用canvas來刷,同比會(huì)比用c#和XNA組合更耗電,這主要js解釋器的額外消耗。還有輸入方面的問題,ios支持的最好,觸摸事件什么的都有,windows phone 目前除了沒有觸摸事件,在點(diǎn)擊的時(shí)候還總是把頁面區(qū)域變灰,有點(diǎn)討厭,很顯然,還是有很多障礙的,現(xiàn)在用HTML5開發(fā)Windows phone 游戲,是一種挑戰(zhàn)。
跨平臺游戲開發(fā),我推薦使用c#,在windows phone 上是原生的,在ios 有 monotouch,在android 有 monoforAndroid,在windows phone 上圖形是XNA,在Monotouch 有OTK里面的GLES封裝。各個(gè)手機(jī)的本地存儲、多媒體、觸摸、重力傳感器接口都比較類似,主要是圖形方面的封裝差異稍微有點(diǎn)大。對于搞圖形的朋友來說,封裝兩個(gè)渲染器也不是太大的一件事,咱們以前很多游戲都是要開發(fā) DX OGL 兩套渲染器的,甚至更多,模式是一樣的,我們采用統(tǒng)一的C#語言來開發(fā),至少不涉及語言改寫的問題。這方面也有一個(gè)重量級的DeltaEngine,大家可以了解一下。
Cocos2DX也說是跨平臺引擎,他的跨平臺方法是改寫,但是cocos2DX使用者更多,怎么取舍大家根據(jù)自己的實(shí)際情況判斷吧。
51CTO:請推薦幾款使用XNA開發(fā)WP游戲的好用的工具或控件(包括第三方的),并簡單介紹下其特點(diǎn)。
李劍英:這個(gè)必須是第三方的^_^,因?yàn)楣俜绞裁炊紱]有。鎖定在XNA這個(gè)特定的范圍中的話,其實(shí)就只剩圖形引擎了,那么推薦大家看一下
DeltaEngine ,這是一個(gè)全能的游戲引擎,目標(biāo)是用c#做的跨平臺引擎
Xen,這是一個(gè)XNA的活躍圖形引擎,完成度很高,可以直接實(shí)用。