纸桶厂家
免费服务热线

Free service

hotline

010-00000000
纸桶厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

分享将iOS游戏移植到黑莓Playbook的经验

发布时间:2020-02-11 04:25:24 阅读: 来源:纸桶厂家

你是否想过将iOS游戏移植到黑莓的Playbook上?以下我将分享我对于这种移植的看法。

基本原则

很多人和我一样都认为Playbook与黑莓手机所使用的技术是密切相关的。而正是这种误解导致我们很难将其当成一个可行的移植对象。

但是事实是,Playbook所面对的是一个全新的平台,即黑莓基于QNX操作系统所创造的平台(并且这种平台同样也能够应用于BB10手机上)。

blackberry-playbook

明确了这些内容我们便拥有了一个较为开阔的移植前景,但是我同样也担心黑莓与谷歌一样,规定所有内容都必须基于Java系统,并只支持原生应用。

不过结果证明事实并不像我想的那样糟糕。黑莓不只允许开发者去编写原生应用,同时它的原生开发套件(NDK)也将作为开发者在这一平台上开发游戏的最佳助手。这不像Android,其NDK只包含了原生Android建造系统(支持最低限度的功能并要求大多数内容都必须基于Java系统)。

在Playbook平台上,开发者可以编写一个完整的原生应用,而无需考虑Java。并且其NDK也将提供给开发者他们所需要的C级API——从屏幕处理到输入再到应用内部购买等内容。

黑莓所提供的开发环境是基于Eclipse的QNX Momentics,而开发者却也能够在此轻松地使用任意命令行工具。

尽管我知道Eclipse的操作较为缓慢,但却仍选择了Momentics,因为这是原生C/C++开发(带有调制器,剖析工具等)的最佳设置,而我也希望看看它到底能够帮助我走多远(直至我开始遗漏命令行)。而真正让我惊讶的是,它却一直陪我走到了最后,即至始至终都未出现让我放弃它的问题。

你同样也能获得一个基于VMWare的模拟器去执行你的代码。对我来说这却不一定是件好事,因为我将不得不购买VMWare才能运行它。当然了,也有免费的VMWare Player版本,但是却只能用于Windows和Linux操作系统上。所以和我一样的Mac用户只能使用30天的VMWare试用版或购买完整版。

接下来让我们开始具体阐述游戏移植。

输入

黑莓QNX的输入操作非常直接,与iOS的操作方法非常接近,所以这不会是问题所在。

与系统上的其它事件一样,碰触事件也是基于bps_event_t结构,即只要触发bps_get_event()便可。这一事件属于“屏幕领域,”所以我们可以通过使用screen_get_event_property_*()函数集去查询相关数据。

int touch_state;

int id;

int position[2];

screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_TYPE,

&touch_state);

screen_get_event_property_iv(screen_event,

SCREEN_PROPERTY_TOUCH_ID, &id);

screen_get_event_property_i(screen_event,

SCREEN_PROPERTY_SOURCE_POSITION, position);

上述内容是你需要获得的基本碰触信息。碰触状态可以是

SCREEN_EVENT_MTOUCH_TOUCH,SCREEN_EVENT_MTOUCH_MOVE或者

SCREEN_EVENT_MTOUCH_RELEASE。

你可以以此映射在iOS的碰触初始,移动和结束事件上。与iOS一样,这里也不存在取消事件。并且因为你可以自己选择事件,所以在此便不会遇到我在Android上所遇到的麻烦。

这里不存在可操纵的硬件按钮。

声音

与iOS一样,OpenAL也适用于Playbook上。如果你在OpenAL中已经拥有了声音代码,你便可以略过这一步骤。这个平台上甚至包含了ALUT(自适应查找表)。

openal

图像

正如你料想的那样,Playbook也支持OpenGL ES(不管是1.1版本还是2.0版本)。NDK中包含了一个OpenGL应用样本能够用于处理屏幕上的所有设置细节,并且因为API设计的简单化与有效性,我们总是很清楚自己到底需要做些什么。

opengl

该设备所支持的是1024×600像素的屏幕分辨率(也就是16:9大小),也就是窄于iPhone和iPad。所以你就必须重新调整游戏的UI或添加黑条才能适应新的屏幕分辨率。

《爆米花可尼》所支持的是1.33至1.50相位的UI,而为了能够更好地呈现在Playbook上,我选择添加一些条框而将1.7相位降为1.50。而因为每个屏幕的像素都非常接近于iPhone 4和iPad 2,所以如果你拥有合适的作品,你便无需做出任何改变而直接用于Playbook上。但是如果你的游戏使用的是基于iPad 3分辨率的作品,你就需要按比例去压缩游戏的规格,否则你将不可能呈现出最佳效果。

资产

资产加载就如想象中的一样简单。不需要涉及zip文件,文件压缩不会受限于某种特定的扩展规则,或者也无需使用过度设计的资产管理(我说的就是Android)。

应用被划分为.bar文件(本质上也就是zip文件)。在安装过程中,.bar文件内容是经过萃取的,并且应用可以基于任何与POSIX兼容的方式而访问文件系统。

如果你想要加载附加了应用.bar文件(包括纹理,声音等)的文件,你将在如下代码中找到它们:

./app/native/

如果你想要为你的应用创造文件并保存数据,你需要在以下代码中执行:

./data/

看吧,多么简单。

排行榜/成就

OpenFeint(也就是现在Gree旗下平台)并不提供这些服务,Game Center也是(因为它只是苹果旗下的一个网站)。而黑莓则提供了自己的网站,即“Scoreloop”,能够支持排行榜,成就和挑战等功能。

结束语

对于我来说,这是我所面对的最容易移植的平台。很长一段时间以来,我都很喜欢那些带有完整的软件设计决策的平台。所以我真心佩服黑莓的优秀工程师们,感谢他们创造出所有游戏开发者所喜欢的,即能够支持开放性框架的POSIX兼容平台。

不管是面对哪一个平台,你都必须将自己执行过的所有文库整合在一起。就像在Playbook的系统中便包含了libpng,lipjpeg,freetype等软件库,并且你可以获得相关链接。这里并不存在编译问题,让你能够通过文库链接直接进入执行内容。

但是该平台在第三方支方面却不如其它平台。例如在iOS平台,我使用了大量的服务,但是他们却未提供能够支持Playbook的原生服务。他们是通过Java系统而支持黑莓的设备,但是我现在却不想面对Java。

当你完成移植后,你在App World上发行游戏便无需支付任何费用了,这一点与OS和Android的要求不同。只要你完成了游戏移植,你便能够在此进行注册,获得自己的签名密钥而直接进入这一平台。但是与苹果一样,这个平台上也有自己的审核过程。

作为结束语,我想说的是整个移植工作真的是非常轻松。我们只需要花两三天的时间,并且可能也只有一天是真正需要“废寝忘食”。所以我真心希望所有独立开发者能够正视这个平台。

因为iOS和Android应用商店已经接近饱和状态,所以Playbook也许将作为提高更多游戏曝光率的新平台。当我在写这篇文章的时候,我们的《爆米花可尼》已经在App World上发行数天时间了,现在它仍然稳居“新品”版块列表。

如果你是一名独立游戏开发者,你便清楚这种曝光率到底有多重要!

深圳工作签证

上市并购顾问流程图

工作签证出国

注册公司需要多少钱

注册马绍尔公司费用

广州注册公司电话

广州筹划税务多少钱

广州工作签证外国

相关阅读