推出将近两年,WindowsPhone终于“从默默无闻到普及”。4月,WindowsPhone应用再上新台阶,机型突破8万。与此同时,“春季手机”系列活动陆续展开,诺基亚Lumia800c也强势上市。万物呈现出这个春天欣欣向荣的景象。 消费者开始将目光转向“另类”的WindowsPhone手机,开发者也蠢蠢欲动。那么,在过去的一年里,WindowsPhone的开发环境有哪些改进呢?WindowsPhone应用程序开发有哪些机会?尤其是对于大众喜爱的手机游戏类应用,其开发有哪些技巧和工具? 近日,我独家专访了疯狂之光无线输入法和夺宝奇兵(跨平台游戏)的作者、WindowsPhone开发专家李建英先生,请他分享一些WindowsPhone的经验发展。(春季手机沙龙李剑英女士) 以下为访谈实录: :从WindowsPhone7到WindowsPhone7.5,系统性能得到提升,所以现阶段WindowsPhone应用开发在工具、技术和第三方平台方面是否有值得称赞的改进? 李建英:windowsphone7.5的产品代号是mango,增加了很多令人兴奋的新功能。有一长串清单。从工具的角度来说,我个人认为最重要的是增加对异步编程框架的支持。具体来说,你需要安装AsyncCTPv3,然后你就可以使用Windows8带来的新特性awaitasync的异步开发模式。特性,我们已经提前在mango中提供了。Await异步编程模型使异步代码看起来像顺序执行的函数。您可以自己尝试一下。从技术角度来说,我觉得最重要的变化是ie9内核的引入和html5的到来。没看懂这个第三方平台的意思。如果是指软件商店,目前的windowsphone政策中没有第三方平台。如果指的是用户聚合的平台,那么现在腾讯、新浪、人人网可以看出,他们也在windowsphone上积极拓展。值得一提的是OpenXLive,windowsphone7将在中国取消xboxlive,OpenXLive可以提供windowsphone7游戏中的社交功能。 :之前看过一个演示视频。国外用户在使用WindowsPhone的社交功能时,通讯录与facebook、Twitter等的无缝连接体验令人惊叹。但由于国内外环境不同,这些优势在中国并不能发挥应有的作用。您认为中文版WP在这方面应该如何改进?用人人网代替脸书,用新浪微博代替推特?我觉得放弃facebook就等于放弃了全世界,国内的社交平台替代不了他。基于中国的特殊情况,主要是网络问题,如果WindowsPhone能为大家提供一个内置的免费VPN就好了。如果人人网和新浪真的融入系统,实名制和审核也会让社交移动无法移动。当然,这只是我个人的看法。 :我最近在你的博客上看到了几篇关于手机游戏和社交网络的文章。您能简单总结一下您认为社交网络的发展给手机游戏开发商带来了哪些机遇吗? 李建英:这个我了解不多,只能说说我自己的经历。首先是推广。通过与社交网络的整合,可以利用社交网络进行推广。最重要的是好友邀请的方式。这种方式基本没有成本,而且效果比传统广告要好。然后是多人游戏圈,利用社交网络来组织游戏。在多人游戏的情况下,大多数游戏都是与您认识的朋友一起玩的。是游戏促进社交还是社交促进游戏并不重要,关键是有更多的时间和不认识的人一起玩。最后就是炫耀。社交游戏的成就更好炫耀,因为了解我们的人可以更准确地知道,这可以持续为玩家提供玩的东西。我们可以使用OpenXLive来比较轻松的完成社交游戏的这些功能,现在在windowsphone上访问新浪和腾讯也非常简单。 :手机游戏受设备性能、屏幕尺寸和分辨率的限制。有没有什么技巧可以让一款手游在保证效果的情况下尽可能少的占用系统资源呢? 李剑英:目前基本没有办法,因为游戏中有很多动态的东西,需要用帧刷新的方式,每秒30帧逻辑,30帧绘制,甚至更多,我们纯粹是在滥用电池。非要说技巧的话,windowsphone的游戏分辨率不一定要全屏,可以用低分辨率,系统会按比例缩放到全屏,如果长宽比不是10:6,黑色会留下边框,这样可以节省一点系统资源。要彻底解决这个问题,只能依靠电池技术的进步和cpu功耗的进一步降低。 :你觉得跨平台(Android、iOS、WP)游戏开发用什么技术比较好?您如何评价目前HTML5技术在游戏中的表现?现状主要是因为HTML5中有一个WebApp标准没有得到广泛支持。目前在浏览器中使用HTML5仍然是页面模式,每个浏览器都有自己的处理方式。让HTML5完全兼容仍然是一个理想。现在PhoneGap正在努力解决这个问题,也算是实用化了,但离成熟还有很长的路要走。使用HTML5做游戏,面临WebGL标准在手机上支持不广泛,软3D在手机性能下不实用的问题。3D游戏被判死刑。电费,主要是js解释器的额外消耗。还有输入问题,ios支持最好,touch事件等等,windowsphone目前没有touch事件,点击的时候页面区域总是变灰,有点烦人,显然,还有很多障碍,现在使用HTML5开发Windows手机游戏,是一个挑战。 跨平台游戏开发,我推荐使用c#,windowsphone上native,ios上monotouch,android上monoforAndroid,windowsphone上XNA图形,monotouch上OTK中的GLES包。每款手机的本地存储、多媒体、触控、重力感应接口都比较相似,主要是图形方面的封装差异略大。对于搞图形的朋友来说,封装两个渲染器没什么大不了的。我们很多游戏过去都开发过两套DXOGL渲染器,甚至更多。模式是一样的。我们使用统一的C#语言来开发,至少不涉及语言重写的问题。这方面还有一个重量级的DeltaEngine,大家可以了解一下。 Cocos2DX也说是跨平台引擎,它的跨平台方式是重写,但是cocos2DX的用户比较多,所以要根据自己的实际情况判断。 :请推荐几款对使用XNA开发WP游戏有用的工具或控件(包括第三方的),并简单介绍一下它们的特点。 李建英:这肯定是第三方的^_^,因为没有官方的东西。如果锁定在XNA的具体范畴,其实就只剩图形引擎了,所以推荐大家看一下 DeltaEngine,它是一个全能的游戏引擎。目标是用c#做一个跨平台的引擎 Xen这是XNA的主动图形引擎,完成度很高,可以直接使用。
