【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

天地行讲师杨丰盛专访——cocos2d-x 跨平台之路

  • 2012-11-09
  • 本文字数:3445 字

    阅读完需:约 11 分钟

9RIA 天地会精心打造的业界领先的开发者大会—— RIA 天地行·西南游戏开发者大会将于2012 年11 月25 在成都天府软件园举行。小编将采访一些与会讲师,谈谈他们将在会上分享的内容。

本期我们采访的讲师是: 杨丰盛,梦拓科技创始人兼CTO,国内Android 领域的先驱者和布道者,资深Android/IOS 开发工程师、构架师。

开源国际化游戏引擎Cocos2d-x for Win8 Metro 核心开发者。国内著名IT 技术网站51CTO 推荐技术专家,曾多次接受《程序员》杂志采访并为其撰稿,同时还多次应邀在国内的移动开发者大会和技术沙龙中开展讲座,深受欢迎。著有《Android 应用开发揭秘》、《Android 技术内幕:系统卷》等畅销书籍。

演讲主题:cocos2d-x 跨平台之路

您有丰富的Android 开发经验,能不能为Android 开发的初学者一点建议?如何学习以及有哪些重点需要关注?

杨丰盛 :Android 作为一个开源操作系统,可以针对Android 的开发方向也有很多,比如使用Android SDK 提供的API 开发应用程序开发,游戏开发,针对Android Framework 层源码进行框架开发,修改Android 系统源码定制Android 系统,以及驱动开发,所以Android 初学者首先要明白自己的兴趣和需求方向,在熟悉一个方向之后,可以在扩展到多个层面。

无论是Google 官方还是民间都有大量Android 的技术文章、技术教程,学习资料肯定不是问题,除了这些资料之外还有Android 本身的源码也是最好的资源,可以说任何问题都可以通过源码来解决。那么对于Android 学习的重点则应该放在Android 系统的各种机制的理解,比如:进程管理、生命周期,Binder 通信机制等等。因为Android 是基于Linux 系统的,所以熟悉Linux 系统必然对学习Android 有莫大的帮助。虽然Android 是使用Java 语言开发,但同时Google 从Android1.5 版本开始就推出了每个版本对应的NDK,可以将一些复杂的逻辑运算使用NDK 通过C++ 语言来完成,所以在必要时候能够通过C++ 来开发应用程序的某些模块,也是非常不错的选择。

cocos2d-x 引擎在 cocos2d 家族中脱颖而出,成为最热的一颗明星,能否简单介绍一下 cocos2d-x 的优缺点?

杨丰盛 :Cocos2d-x 原本就是基于 cocos2d 应用完成的,可以说是 cocos2d 的另一个版本,但是因为 cocos2d-x 是基于 C++ 语言编写的,而 cocos2d 则是基于 Object-C 语言编写的并且只能运行在 ios 和 mac 操作系统中,C++ 的开发者必然多于 Object-C;另外一个重要原因则是,cocos2d 主要方向在于引擎的构架设计,重在引擎本身,而 cocos2d-x 则主要处理跨平台解决方案。

目前 cocos2d-x 主要维护三个版本,一个是原生的 C++ 版本,一个是支持 windows phone 7 的 C#版本,一个是支持 HTML5 的 JS 版本,当然也有我们所开发的 cocos2d-x for win8 metro 的版本可以支持 windows 8 metro 风格游戏开发,通过这几个版本几乎可以跨目前大部分主流的平台。一次开发,多平台复用,无论从成本还是效率上考虑都是最佳的选择,这毕竟是前两年最主流的话题,当时大家都在寻找方案,目前 cocos2d-x 可以满足大家的方案需求;要说缺点,也就是 cocos2d-x 暂时还没有类似 unity3d 一样的好工具来开发游戏,不过小的,单一的工具倒是很多,同时也了解到 cocos2d-x 团队也在计划向这个方向发展,将来会提供更多的工具,让游戏开发更容易。甚至是我们自己也可以制作一些工具。

能否简单介绍一下 cocos2d-x 跨平台开发中不同平台的特性使用方法?在实际开发中,该引擎在不同平台中的表现如何?

杨丰盛 :这个问题问的非常好,cocos2d-x 的主要优势就在于跨平台,但是毕竟每个平台有自己的特点,开发过程中自然也有需要注意的地方,首先就开发语言来说,cocos2d-x 目前维护三种语言,C++,JS,C#,C#是专门为 windows phone7 设计的,这将导致原本用 C++ 写的代码,在移植到 windows phone7 上需要做一个简单的语言翻译工作,JS 虽然可以跨平台,但是毕竟 HTML5 还不够成熟,在 PC 上效率完全没问题,但是在手机上则还有很多难题需要解决。 当然除了这些软件特性之外,也还包括一些硬件特性,ios,android,windows phone,pc 等,它们的 GPU 不同,硬件性能和硬件加速方案不一样,导致游戏最后的优化可能不一样,比如,不同的 GPU 支持不同的纹理格式,纹理压缩格式,纹理尺寸,矩阵运算等,为了让 cocos2d-x 在每个平台上都发挥出最佳的性能,就必须针对设备的 GPU 进行深入优化。 最后一个例子就是我们开发的 windows 8 的版本,因为 windows8 早期不支持 opengl,导致我们必须用 dx 来实现所有硬件加速,这就使得引擎在底层维护了另外一套图形渲染系统,是专门针对 windows 8 的,如果要优化他们,就需要分别针对 opengl 和 dx 进行优化。

cocos2d-x 在大规模多人开发的时候,如何进行协同操作?

杨丰盛 :说到多人开发在 cocos2d-x 中体现得可能不是特别明显,因为一般一个 cocos2d-x 的游戏也不需要大量的人员来开发,通常三个人一起开发一个 cocos2d-x 游戏已经算是很大了。即便如此,cocos2d-x 同样也可以很方便的进行多人开发,首先说程序和 UI 方面,在新版的 cocos2d-x 中已经开始出现 cocos builder 工具了,可以支持直接设计 UI 和一些简单的场景,这样就可以让 UI 设计人员完全很据自己的需求来设计 UI,而不影响程序开发。

待 UI 设计好之后,程序通常可以直接使用;同时还有很多小工具,比如:地图编辑器、粒子编辑器等都可以单独使用,这些工具就可以交给策划或设计人员使用,完成之后直接交由程序员整合即可。

最后是程序员之间的交互,其实也很简单,cocos2d-x 中有场景和图层等概念,完全可以由不同的人负责开发不同的场景,不同的人开发不同的图层,而它们之间的交互也仅仅通过几行简单的代码就能整合,再配合项目开发文档和源码管理工具,多人开发在 cocos2d-x 上同样也变得很和谐。

您提到了 iOS 和 Android 平台,那么您对微软的 Windows Phone 平台有什么看法?

杨丰盛 :这个倒是非技术范畴了,我就说说我自己个看法吧,仅供大家参考了,欢迎指正,其实在早期大家都很关注 windows phone 平台,要不然 cocos2d-x 也不会出现专门针对 windows phone7 的版本了,因为他不支持直接用 C++ 开发,其实严重影响了大部分开发者的激情,更有人不愿意花费时间将自己的 C++ 代码转换到 C#上,导致 Windows phone7 上缺少一些丰富的应用程序,一个没有好应用的智能手机,基本上和功能手机没什么两样。

举个例子,我也一直在用 lumia 800 这款手机,用了这么长时间居然没找到一个好的通讯录软件,多个账号之间电话号码和邮件地址等联系方式到现在为止都不能很好的整合,搜索联系人也非常困难,每次查找一个联系人都会很辛苦(包括一些知名的大公司做的通讯录软件,同样不能解决这些问题),总之,windows phone 7 是一个没有应用程序,也不会吸引开发者的平台(不支持 C++),同时再加上一些硬件和系统设计上的问题,大家可能不是很认同它(呵呵,这句话纯属个人意见);好在微软似乎意识到了这些问题,在 windows 8 时不仅支持 C++,而且还推荐 C(不信吗?去看看“GoingNative 2012”这个活动吧,顺便还能好好补习一下 C++,地址: http://channel9.msdn.com/Events/GoingNative/GoingNative-2012 ),而传言 windows phone 8 会直接使用 windows 8 的内核,所以,应该会比 windows phone7 好很多,当然我也很期待了。

这次来到 RIA 天地行,面对众多开发者,希望能够分享哪些内容进行探讨?

杨丰盛 :RIA 天地行作为一个游戏开发者的盛会,以游戏为主,既然我们前面也提到了 cocos2d-x 的各种优点和存在的问题,所以在这里我们想根据自己长期以来使用和研究 cocos2d-x 引擎的心得和体会向大家探讨。

首先是 cocos2d-x 能做什么,解决大家的后顾之忧,只有我们达成共同意见,选择 cocos2d-x 引擎,才能继续向大家讨论如何用 cocos2d-x 引擎做好游戏,包括游戏开发过程中所要遇到的各种疑难杂症,如果还有兴趣,咱们可以讨论一下,如何去优化和改进这么一款知名的游戏引擎。最后,windows 8 也刚刚发售不久,作为大家关注的重点,我将会向大家介绍我们在开发 cocos2d-x for windows 8 metro 版本时所遇到的问题,以及如何使用它,去开发 windows 8 metro 风格的游戏。总的来说就是和大家一起分享我们自己开发过程中积累的经验,同时也希望和大家一起探讨,共同提高,都能做出精品游戏出来。

结束语:说了这么多,也不知道能不能解决所提出的这几个问题,而且也因为时间有限,对于描述还不够的问题咱们“RIA 天地行 - 西南游戏开发者大会”上继续讨论吧,期待你的到来。

2012-11-09 09:13664
用户头像

发布了 89 篇内容, 共 31.0 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

如何加快跨国传输大文件的速度?

镭速

跨国传输大文件

交易所开发中心化交易所与去中心化交易所

区块链软件开发推广运营

数字藏品开发 dapp开发 区块链开发 交易所源码 NFT开发

QCon大会实录:PB级数据秒级分析-腾讯云原生湖仓DLC架构揭秘

腾讯云大数据

数据仓库 数据湖

百度网盘“第二大脑”产品探析,AI技术让记忆更轻松

科技热闻

NFT交易所交易平台开发功能以及创新设计

区块链软件开发推广运营

交易所 质押挖矿 数字藏品开发 区块链开发 NFT开发

软件测试|Flask框架-接口使用

霍格沃兹测试开发学社

软件测试|比Selenium更加强大的Playwright

霍格沃兹测试开发学社

软件测试|测试平台后端开发Flask框架-集成Swagger文档

霍格沃兹测试开发学社

软件测试|Flask操作数据库-一对多

霍格沃兹测试开发学社

智能合约DAPP系统开发

西安链酷科技

DAPP智能合约交易系统开发 DAPP系统开发 DeFi质押挖矿 NFT链游

DAPP质押挖矿系统开发

西安链酷科技

DAPP系统开发 流动性挖矿

2023年13个面向初学者最佳免费3D建模软件

3D建模设计

3D 建模

Python从0到1丨详解图像锐化的Sobel、Laplacian算子

华为云开发者联盟

Python 人工智能 华为云 华为云开发者联盟 企业号9月PK榜

去中心化流动性挖矿系统开发

西安链酷科技

软件开发 DeFi去中心化系统开发 DAPP系统开发 DeFi质押挖矿 DeFi流动性挖矿

软件测试|Pycharm基础使用介绍

霍格沃兹测试开发学社

C++提高篇:深入理解纯虚函数和抽象类

树上有只程序猿

纯虚函数 C++

4 个你可能不知道的 Python 迭代工具过滤器函数

3D建模设计

Python

期权交易所搭建APP

西安链酷科技

合约交易所开发 交易所开发软件开发 秒合约

DAPP开发与经济模型设计

区块链软件开发推广运营

数字藏品开发 dapp开发 区块链开发 交易所源码 NFT开发

软件测试|Pycharm常用插件介绍

霍格沃兹测试开发学社

永续合约交易所软件开发的探讨

西安链酷科技

dapp开发 链游开发

苹果证书分类及作用详解,助力开发者高效管理应用程序

雪奈椰子

ios 开发 IOS云打包

软件测试|Vue常用指令-条件渲染(v-if)

霍格沃兹测试开发学社

如何使用聊天GPT自定义说明

3D建模设计

ChatGPT

如何解决基因行业海量数据传输难题?镭速传输给出答案

镭速

大数据传输

软件测试|缺陷的生命周期是怎么样的

霍格沃兹测试开发学社

永续合约交易平台搭建

西安链酷科技

数字货币交易所开发 交易所搭建 秒合约 质押挖矿系统开发 期权交易所

喜讯!极限科技再次荣获一项国家发明专利授权

极限实验室

发明专利 数据分区 二维拆分算法

去中心化兑换交易所开发

西安链酷科技

DeFi流动性挖矿 去中心化钱包

交割合约交易所开发APP

西安链酷科技

合约量化 合约交易所开发 量化合约

2023年19款最佳3D打印软件

3D建模设计

3D打印

天地行讲师杨丰盛专访——cocos2d-x跨平台之路_Apple_水羽哲_InfoQ精选文章