|
|
OpenXLive是Windows Phone 7上的游戏竞技和社交网络SNS平台,允许开发者以最小的工作量为自己的游戏增加游戏竞技服务和社交网络SNS功能。OpenXLive是由Fulcrum Mobile Networks, Inc.开发运营的。同类的应用还有iPhone上的OpenFeint和Plus+等。我们今天看到只是移动互联网的黎
明,App Store无疑是移动互联网时代的第一缕曙光。App Store将开发者从传统软件公司、软件发布渠道中解放出来,只要有创意,哪怕是个人或
者小团队,都可以获得巨大的成功。随着App Store模式的确立,无数开发者迎来了前所未有的机遇。
Windows Phone 7为开发者提供了XBox Live的支持,但是开发者必须自己开发相应的UI来支持XBox Live。而且XBox Live是一个封闭式的收费系统,虽然拥有非常酷的功能,但比起开放的SNSN来,在社交性上要打一些折扣。 OpenXLive为开发者提供了完整的游戏竞技功能和相应UI的支持,使开 发者可以方便地将OpenXLive嵌入到自己的游戏中,而无需为开发UI而烦恼。而且为开发者和玩家提供了SNS功能,只要轻轻一点,就可以添加好友、查看好友的游戏成就。
微软为Windows Phone 7上的XNA和Silverlight游戏开发提供了非常好的开发工具和应用程序框架,使得开发者可以更加容易地开发出生动有趣的
游戏来。但是随着开发的深入,我们发现,虽然我们开发的游戏品质可以和大公司的产品相媲美,但比起大公司游戏的用户体验还是相差很多。
因为,我们必须将很多时间用于周边功能的开发,比如:启动界面(Splash Screen), 积分榜(Leaderboard)和游戏成就(Achievement)等,更不要
奢谈为游戏加入SNS功能,比如:查看在线用户(Online Player)、云存储(Cloud Storage)等在线功能了。这些周边功能的开发时间,可能要超过
游戏本身的开发时间,那我们该怎么办呢?
OpenXLive正在想办法帮助个人开发者和小团队开发者,使他们在最短的时间内拥有以上这些只有大公
司才可能拥有的游戏功能。 OpenXLive是一种为Windows Phone 7智能手机游戏开发者提供的云端在线服务。支持开发者为单机游戏增加云端和SNS功能,帮助开发者以最小的
工作量将云端服务集成到自己的游戏中。这些云端服务包括:积分榜、游戏成就、在线对战、Social Network和云端存储等功能。与Open XLive
类似的服务,还有iOS上的OpenFeint。
微软发布的Windows Phone 7.1 SDK可以让我们看到一部分Mango支持的功能。
普通用户对Mango的关注更多停留在多语言、多任务等方面,但对于
开发者来说,Mango还有很多有趣的功能。关于Windows Phone 7.1的第一个功能是XNA与Silverlight的集成。Windows Phone里有两个Framework,Silverlight是做应用的,而XNA是做游戏开发的。Silverlight有一套非常好用的UI设计工具和控件体系,而XNA对于动画效果的处理又远远超过Silverlight。但是在WP7里,Silverlight和XNA必须是分开的,所以当Silverlight应用需要高性能显示,或者XNA游戏里需要编写UI时,都会碰
到很多困难。
说实话,XNA与Silverlight集成的实现并不算优雅,有点叠床架屋的感觉。整个Solution里分为三个Project,其中GraphicsApp1是我们的主程序,主要的逻辑代码都是在这个工程里的,这是一个典型的Silverlight程序,包含了App.xaml和MainPage.xmal,多出来一个GamePage.xaml,这个是XNA的页面。除此之外,还有两个Library,分别叫做GraphicsApp1Library和GraphicsApp1LibraryContent,后边是XNA的Content库,前边一个应该是为了能够让Silverlight加载XNA资源所做的适配库。
Windows Phone 7的开发工具不支持动态语言,所以IronRuby支持Windows Phone 7就显得格外重要了。刚看这篇文
章的时候,还闹了个笑话,看了一遍代码,一句都不认识,心想难道语言换到.NET上,变化怎么这么大?仔细一看,原来是Ruby,而不是Python ,小蟒蛇这次落后了。以前用Python写过自动化测试脚本,没接触过Ruby,所以,把Ruby看成Python了。
不支持动态语言,一直是Windows Mobile编程的痛,这次终于有搞头了。终于可以动态改变程序的逻辑了,光这一
点就给我们提供了无限的想象空间。Windows Phone上的F#也快了吧?请大家注意InitializeComponent方法的位置,在初始化IronRuby运行时之前,一定要先完成控件初始化的工作,这是我血和泪的教训。
本来想向3D开发的纵深发展,但是遇到了一个实际的问题,就是如何在XNA下显示MessageBox和Software Input Panel。干脆先写出来吧,省得大家遇到这问题时抓狂。 按照为数不多的公开文档描述,XNA和Silverlight for Windows Phone应该是基于同一个.NET Compact Framework的CLR。但是,XNA并没有提供任何用户控件、MessageBox 和软键盘等,也不能直接调用Silverlight for Windows Phone的类库。这样势必为XNA制造了很多人为的障碍。但调用MessageBox和SoftwareInputPanel的后门,这就是Microsoft.Xna.Framework.GamerServices命名空间下的Guide类。但MSDN文档还是有一些瑕疵,按上面提供的方法会产生Exception,所以我在下面给出修改后可以运行的方法。运行环境基于VS 2010 + Windows Phone 7 SDK RTW版。
如何让Windows Phone 7游戏显示中文?把说“贴图”的那个人拖出去打死!因为XNA 4.0中支持中文的办法倒是现成的,这与XNA字体支持的方式有很大关系。 关于字体授权的问题咱们就不纠结了,提醒一句,使用某种字体前首先确认是否能够使用、再分发。绘制字体的第一步是,创建Sprite Font字体。XNA中使用的字体文件叫做Sprite Font,文件扩展名为.spritefont,XNA支持从.ttf将字体转换为.spritefont。
按照XML的注释,我们可以很容易的了解每一项的功能,只看高亮部分:FontName,字体的名称;Size,字体的大小;Style,指定字体是否为粗体、斜体等;CharacterRegion,字体区间,目前的设置为只显示ASCII字体。这一点也是非常适合游戏开发的,游戏没有必要提供完整的字符集支持。
|