为黑莓10开发游戏或应用程序有多种方法。这是件好事,不过如果你不是在黑莓平台下进行开发,或者你仅熟悉基于旧的Java的开发平台,也许你会感到无所适从。你将作何选择?从哪里着手?

促成你做出决定的因素有很多。黑莓10有四个主要开发平台可供选择,它们具有各自的开发特点、优势和框架。

在首篇日志中,我们将对一些可选的本地开发平台进行概述。

Native平台

一个好的开发平台,离不开高性能的、低级别的、本地实现,黑莓10可以做到。由于native是基于POSIX的平台,因此”int main(void) { printf(‘Hello World’); }”等指令均可在此操作系统中运行。

无论你是擅长C++,还是想避开低级别代码,黑莓10的native开发平台均可提供多种选择。

Straight C/C++

http://developer.blackberry.com/native/beta/

黑莓10基于强大的、稳定的QNX系统。该操作系统已经过超过30年的不断改进。它的POSIX界面,允许在此平台上运作标准Unix C/C++,无需额外进行编译。你也可完全进入APIs系统,包括进入网络协议栈以及EGL、OpenGL并体验使用一般方案(例如动态加载库)的灵活性。

我上传一个大型游戏框架到黑莓仅用了两天,我也听过许多开发者在本地平台方面的类似经历。如果你喜欢用C/C++进行开发,黑莓10是一个不错的平台。

Cascades

https://developer.blackberry.com/cascades/

如果你想开发一款应用,Cascades是一种基于Qt的框架,可提供最自然的黑莓10体验。应用代码和渲染均通过不同的线程处理,因此当你进行大型处理时,UI可以流畅运行60帧/秒。

许多应用程序都可采用C++、QML或二者并用进行开发。QML支持JavaScript,即使你是网页开发人员,也可以利用你现有的技能,轻松开发本地黑莓10应用程序。黑莓本地化软件开发工具包为设计人员提供支持Cascades的Momentics IDE,因此你可以预览并调整程序布局而无需调配设备或设备模拟器。

Marmalade

http://www.madewithmarmalade.com

我们与Marmalade合作,利用Marmalade软件开发工具包为C++开发人员带来一流的体验。与SDL和SFML的开放源解决方案类似,Marmalade旨在为多种平台提供底级别的兼容层。

Marmalade还具有其他特点—如优化管线的艺术资产—制定每一个目标设备,并提供企业级支持。

NME

http://www.haxenme.org

我们还与NME合作为黑莓10提供支持。与本地开发者所选用的其他方法不同,NME不要求采用C或C++语言,而是采用一种名为Haxe的语言,它可自动转换成C++,与C++和OpenGL作用相当,而且可为Flash或Java开发人员创造一种舒适的开发环境。

NME是一种跨平台的开源框架,可轻松运用2D游戏及相关应用程序所需的图像、声音、输入、联网以及其他功能,包括Flixel或Box2D等类库。NME还专注于移动设备、桌面、Flash Player和HTML5。

cocos2d-x

http://www.cocos2d-x.org

流行2D游戏框架cocos2d的C++版本也可以在黑莓10上运行。

与其他版本库相似,cocos2d-x为场景管理、物理引擎、粒子特效、瓷砖(tiles)、spritesheet和其他游戏方面的功能提供结构支持。大多数框架也可以Lua或JavaScript为脚本。cocos2d-x是一种可在移动平台和桌面平台上应用的跨平台开源框架。

gameplay

http://www.gameplay3d.org

如果你想用C++开发3D游戏,gameplay则是绝佳的开源框架,它完全支持黑莓10。

gameplay可满足你预期的标准,例如OpenGL的着色器、设备输入和粒子系统,还可支持物理引擎、骨骼动画、3D音频,themeable2D和3D的UI格式。如果你想采用脚本语言,可选择Lua bindings。gameplay是跨平台,支持移动平台和桌面平台。

以上仅是黑莓10本地平台上的几种方法,还有许多方法可供选择。如有任何疑问或建议,欢迎在评论中提出!

黑莓10开发101:Native平台的更多相关文章

  1. 一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_200 时光荏苒,过隙白驹,即将进入2022年,著名敏捷开发语言Python也放出了3.10最终版,本次我们来展示一下在不同的系统和 ...

  2. [C#]asp.net开发微信公众平台----目录汇总-持续更新

    1.[c#]asp.net微信公众平台开发(1)数据库设计 2.[c#]asp.net微信公众平台开发(2)多层架构框架搭建和入口实现 3.[c#]asp.net微信公众平台开发(3)微信消息封装及反 ...

  3. [c#]asp.net开发微信公众平台(8)微信9大高级接口,自定义菜单

    前7篇把最基础的消息接收和回复全做完了,  也把高级接口的入口和分拆处理写好了空方法,  此篇接着介绍微信的9大高级接口, 并着重讲解其中的自定义菜单. 微信9大接口为: 1.语音识别接口 2.客服接 ...

  4. C#开发微信公众平台-就这么简单(附Demo)转载

    C#开发微信公众平台-就这么简单(附Demo)  来源:https://www.cnblogs.com/xishuai/p/3625859.html#!comments 写在前面 阅读目录: 服务号和 ...

  5. 云开发数据库VS传统数据库丨云开发101

    云开发数据库与传统数据库的不同 在小程序·云开发中,最核心的便是三大组件:数据库.云存储和云函数,从今天开始,我们将开始隔日更的专栏文章,云开发101,在第一周,我们将从最最核心的数据库开始说起. 云 ...

  6. asp.net开发微信公众平台----目录汇总-持续更新

    1.[c#]asp.net微信公众平台开发(1)数据库设计 2.[c#]asp.net微信公众平台开发(2)多层架构框架搭建和入口实现 3.[c#]asp.net微信公众平台开发(3)微信消息封装及反 ...

  7. 测试开发【提测平台】分享13-远程搜索和路由$route使用实现新建提测需求

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 本篇继续提测平台开发,按惯例先给出学习的思维导图,以便快速了解学习知识和平台功能实现的重点. 基本知识点学习 远程搜索 显示的数据通过输入 ...

  8. Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构

    分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...

  9. [c#]asp.net开发微信公众平台(1)数据库设计

    开发微信公众平台之前,先去微信官方了解下大概的情况 这里:http://mp.weixin.qq.com/wiki/index.php :看了之后心里大致有数了,开始设计数据库,尽可能的考虑,未考虑到 ...

随机推荐

  1. 解析jsp的 tomcat 、resin

    一.tomcat 1. 安装JDK [root@localhost ~]# cd /usr/local/src/ [root@localhost src]# wget http://www.lishi ...

  2. FineReport——决策系统组件API

    FineReport数据决策系统中自定义主题包API接口由5大部件组成:框架布局.目录树组件.多tab组件.Navigation组件和Gallery组件. 首先,对theme.js进行总体配置: (f ...

  3. linux命令行任务管理

    今天看到了linux命令行的任务管理命令感觉很实用: 1.ctrl+z  将当前前台执行的任务放到后台并暂停 2.fg恢复上次放入后台的任务 这两个命令组合起来很实用,比如在linux命令行中写pyt ...

  4. liunx命令大全

    Linux常用命令大全   Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人 ...

  5. Python 什么是ORM?

    关系映射 性能比源生sql效率略差一些 操作性更简单,快捷 Django的orm和sqlalchamy 区别 sqlalchamy没有django的功能全,不支持双下划线的连表跨表操作 sqlalch ...

  6. 关于多属性查找问题的sphinx解决方案

    需求描述 mysql中,每一个文档都有多个标签,查询时可以筛选一个标签也可以筛选同时拥有多个标签的文档. 数据示例 文档 标签 1 1,2,3,4,5 2 2,3,4,5,6 3 3,4,5,6,7 ...

  7. 175. Combine Two Tables

    Table: Person +-------------+---------+ | Column Name | Type | +-------------+---------+ | PersonId ...

  8. 文本检查点web_reg_find和web_find两个函数的区别

    LR脚本实战:文本检查点web_reg_find和web_find两个函数的区别   web_reg_find是先注册(register)后查找的:使用时将它放在请求语句的前面. 而web_find是 ...

  9. ngx_lua_waf完整安装说明

    测试环境:centos5.6 x32,nginx1.4.4,LuaJIT-2.0.3,ngx_devel_kit-0.2.19.lua-nginx-module-0.9.11,ngx_lua_waf ...

  10. Java之static理解

    说到关键字static,首先想到了常量,静态变量,本文我总结了下static的用法. 1.静态变量 可以被赋值,便于类访问. 2.静态方法 静态方法与静态变量都可以被private.public修饰. ...