李剑英:推荐使用c#进行跨平台移动游戏开发

原创
移动开发 企业动态 游戏开发
一年多来,Windows Phone的开发环境有了哪些方面的提升?在Windows Phone应用开发中蕴含着哪些机遇?特别是广大人民群众喜闻乐见的手机游戏应用方面,其开发有何技巧和工具?

  推出近两年,Windows Phone终于“从默默无闻到有人喜欢”。四月里,Windows Phone应用再上新台阶,突破了八万款,同时,“春Phone”系列活动陆续展开,诺基亚Lumia800c也强势上市,一切的一切都在这个春天里显示出欣欣向荣的景象。

  消费者已经开始陆续将目光投向“另类”的Windows Phone手机,开发者也蠢蠢欲动。那么,一年多来,Windows Phone的开发环境有了哪些方面的提升?在Windows Phone应用开发中蕴含着哪些机遇?特别是广大人民群众喜闻乐见的手机游戏应用方面,其开发有何技巧和工具?

  最近,51CTO独家采访了疯光无线输入法和夺宝奇兵(跨平台游戏)作者、Windows Phone开发专家李剑英老师,请他分享了一些在Windows Phone开发方面的一些心得。

[[70609]] 

李剑英老师在51CTO 春Phone沙龙上

  以下是采访实录:

  51CTO: 从Windows Phone7到Windows Phone7.5,系统性能有了部分提升,那么相应的在此阶段中,Windows Phone应用开发在工具、技术和第三方平台等方面是否有值得称赞的进步?

  李剑英:windows phone 7.5 的产品代号是mango,加入了很多振奋人心的新特性,这有一份长长的列表。从工具这边来讲,我个人认为最主要的是加入了对异步编程框架的支持,具体要安装一下Async CTP v3,然后就可以使用await async 的异步开发模型,这是windows 8带来的新特性,我们在mango中已经可以提前使用它。Await async 编程模型让异步代码看起来像顺序执行的函数那样,具体的大家可以自己尝试一下。从技术的角度讲,我感受到最主要的变化是ie9内核的引入,html5来了。我没有理解这个第三方平台的意思,如果是指软件商店,现在windows phone 的政策是不存在第三方平台的。如果是指用户聚合的平台,那现在腾讯、新浪、人人,都可以看到他们也在积极的在windows phone 上面拓展。值得一提的是OpenXLive,windows phone 7 在国内会取消xbox live,OpenXLive就可以提供windows phone 7游戏内的社交功能。

  51CTO:之前看过一个演示视频,国外用户在使用Windows Phone的社交功能时,通讯录与facebook、Twitter等的无缝衔接体验让人赞叹,但囿于国内外环境的不同,这些优势在国内无法发挥应有的效果,您认为这方面中文版WP应该如何改进?只是将facebook换成人人网,Twitter换成新浪微博就可以解决吗?

  李剑英:对社交网络这部分,我觉得放弃facebook就等于放弃了世界,国内的社交平台无法替代他。基于中国的特殊情况,主要是网络的问题,windows phone给大家提供一个内置免费VPN就好了。如果真把这人人、新浪整合进系统了,实名制和审核,也会让社交移动变成移不动,当然这只是个人意见。

  51CTO: 看到您博客上最近有几篇关于手机游戏和社交网络的文章,能否简单总结下,您认为社交网络的发展给手机游戏开发者带来了哪些发展契机?

  李剑英:这方面我知之甚浅,只能以自己的一点点经验来谈,首先是推广,通过和社交网络的整合,就可以利用社交网络来进行推广,最主要的是好友邀请的方式,这个方式基本没有成本,效果比传统广告要好。然后是多人游戏的圈子,利用社交网络组织的游戏,多人游戏情况下,更多情况都是认识的朋友一起玩,到底是游戏促进了社交,还是社交促进了游戏,这个不重要,关键是会比不认识的人一起玩多玩一些时间。最后是炫耀,社交游戏取得的成就炫耀的效果更好,因为可以更准确的让认识我们的人知道,这可以持续提供给玩家东西进行游戏。我们利用OpenXLive就可以比较容易的完成社交游戏的这些特点,现在在windows phone上接入新浪和腾讯也是很简单的。

  51CTO: 移动游戏受限于设备性能和屏幕大小及分辨率,要让一款手机游戏在保证使用效果的情况下尽可能少的占用系统资源,这方面是否有什么诀窍?

  李剑英:目前基本没有什么办法,因为游戏动态东西多就要采用帧刷新的方式来做,每秒30次帧逻辑,30次帧绘制,甚至更多,我们纯粹是在虐待电池。如果非要说诀窍的话,windows phone的游戏分辨率不一定要是全屏,可以用更低的分辨率,系统会等比缩放到全屏,如果长宽比不是10:6,就会留黑边,这样可以节省一点系统资源。要彻底的解决这个问题,只有依靠电池技术的进步和cpu功率进一步降低了。

  51CTO: 您认为跨平台(Android、iOS、WP)游戏用什么技术开发比较好?您如何评价HTML5技术目前在游戏方面的表现?

  李剑英:先说HTML5,目前还是看上去很美的状态,主要是HTML5里有一块WebApp的标准还没有得到广泛支持,目前在浏览器里用HTML5还是页面的模式,每个浏览器各自有一些处理,让HTML5追求的全兼容依然是个理想。现在有PhoneGap在尝试解决这个问题,也算有一定的实用性了,但离成熟还有很长一段路要走。用HTML5做游戏,又面临WebGL标准没有在手机端广泛支持,软3D在手机性能下不能实用的问题,3D游戏判死刑,2D游戏如果用canvas来刷,同比会比用c#和XNA组合更耗电,这主要js解释器的额外消耗。还有输入方面的问题,ios支持的最好,触摸事件什么的都有,windows phone 目前除了没有触摸事件,在点击的时候还总是把页面区域变灰,有点讨厌,很显然,还是有很多障碍的,现在用HTML5开发Windows phone 游戏,是一种挑战。

  跨平台游戏开发,我推荐使用c#,在windows phone 上是原生的,在ios 有 monotouch,在android 有 monoforAndroid,在windows phone 上图形是XNA,在Monotouch 有OTK里面的GLES封装。各个手机的本地存储、多媒体、触摸、重力传感器接口都比较类似,主要是图形方面的封装差异稍微有点大。对于搞图形的朋友来说,封装两个渲染器也不是太大的一件事,咱们以前很多游戏都是要开发 DX OGL 两套渲染器的,甚至更多,模式是一样的,我们采用统一的C#语言来开发,至少不涉及语言改写的问题。这方面也有一个重量级的DeltaEngine,大家可以了解一下。

  Cocos2DX也说是跨平台引擎,他的跨平台方法是改写,但是cocos2DX使用者更多,怎么取舍大家根据自己的实际情况判断吧。

  51CTO:请推荐几款使用XNA开发WP游戏的好用的工具或控件(包括第三方的),并简单介绍下其特点。

  李剑英:这个必须是第三方的^_^,因为官方什么都没有。锁定在XNA这个特定的范围中的话,其实就只剩图形引擎了,那么推荐大家看一下

  DeltaEngine ,这是一个全能的游戏引擎,目标是用c#做的跨平台引擎

  Xen,这是一个XNA的活跃图形引擎,完成度很高,可以直接实用。

责任编辑:佚名 来源: 51CTO
相关推荐

2015-01-23 01:06:16

英巴卡迪诺跨平台开发RAD Studio

2024-03-12 00:05:00

开发编程语言IDE

2009-08-07 10:53:59

Visual C#Excel

2013-09-10 10:44:39

移动开发工具游戏引擎

2010-10-09 15:01:27

PhoneGapiPhoneAndroid

2012-03-16 13:43:29

2015-03-28 19:18:47

线下公开课51CTO沙龙MDSA

2014-07-08 09:37:28

跨平台Webhtml5

2011-07-06 11:16:32

Unity3DCocos2dSparrow Fra

2010-11-11 09:04:05

跨平台移动开发

2014-03-24 10:30:38

卢建晖跨平台开发

2011-12-12 13:58:11

TinyCoiOSAndroid

2011-06-14 10:05:41

UDEAndroidJ2ME(K-Java

2012-04-24 17:02:39

移动游戏

2012-05-03 14:29:53

HTML5

2015-05-13 10:09:39

移动跨平台开发

2013-07-04 10:06:32

AppCan

2014-03-12 10:00:26

移动开发跨平台

2019-11-18 14:00:40

开发工具环境搭建vagrant

2013-09-02 10:00:56

编程移动开发引擎
点赞
收藏

51CTO技术栈公众号