写点什么

天地行讲师杨丰盛专访——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:13802
用户头像

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

关注

评论

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

Nginx的高可用

java易二三

编程 程序员 计算机

ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型

汀丶人工智能

人工智能 自然语言处理 NLP 大模型 关系抽取 命名实体识别

Apache服务器上安装SSL证书?

百度搜索:蓝易云

Apache Linux https SEO ssl

如何在几分钟内创建一个带有业务数据的官网 AI 智能客服?

Dify

开源 AI开发 LLMOps

Spring Boot学习路线1

小万哥

Java spring 后端 Sprint Boot Sprint Cloud

Dify.AI 用户直面会:Dify 产品规划与 LLM 应用落地常见问题

Dify

开源 AI开发软件 LLMOps

JVM类加载器子系统ClassLoader

java易二三

编程 程序员 计算机

用Orange Pi Zero3定制安卓电视盒子备忘

sai

Orange Pi Android TV

文心一言 VS 讯飞星火 VS chatgpt (68)-- 算法导论6.5 7题

福大大架构师每日一题

福大大架构师每日一题

使用Appuploader工具将IPA上传到App Store的最新流程和步骤

雪奈椰子

使用Keepalived实现Nginx的自动重启及双主热备高可用

java易二三

编程 程序员 计算机

Ctyun系统升级OpenSSH 9.3详细教程

百度搜索:蓝易云

云计算 Linux 运维 openssh Ctyun

大厂程序员的水平比非大厂高很多嘛?

程序员小毕

Java 程序员 面试 程序人生 架构师

基于中文金融知识的 LLaMA 系微调模型的智能问答系统

汀丶人工智能

人工智能 自然语言处理 知识图谱 LoRa NLP 大模型

Mac部署AIGC图片生成服务——基于stable-diffusion

珲少

业务模块在你做之前,一定要多想呀?

Bonaparte

产品 产品经理 产品设计 产品思维 产品需求

在 Amazon EMR 上构建实时数据湖

亚马逊云科技 (Amazon Web Services)

Amazon EMR

MedicalGPT:基于LLaMA-13B的中英医疗问答模型(LoRA)

汀丶人工智能

人工智能 自然语言处理 LoRa llama LLM模型

C++中互斥锁的使用

梦笔生花

想学Python高级编程?必须了解这个小技巧:match-case!

程序员晚枫

Python

从互联网到云时代,Apache RocketMQ 是如何演进的?

阿里巴巴云原生

Apache 阿里云 RocketMQ 云原生

JVM 调优神器 arthas

java易二三

编程 计算机 Arthas

Sharepoint安装SSL证书?

百度搜索:蓝易云

Linux 运维 https SharePoint ssl

请别再问Spring Bean的生命周期了!

java易二三

程序员 Spring Boot 计算机 Spring Bean生命周期

懒得改变原始对象?JavaScript代理模式教你怎样一步步偷懒!

Immerse

JavaScript 设计模式 代理模式 Proxy Design Pattern

一个写了3年半flutter的小伙,突然写了2个月uniapp的感悟!

编程的平行世界

uni-app Vue 前端 Flutter Android Apk

Nginx服务器上安装SSL证书?

百度搜索:蓝易云

nginx 运维 https SEO ssl

解决 go-zero 注册 etcd 出现 “Auto sync endpoints failed.” 的问题

非晓为骁

golang etcd go-zero etcd-client 服务注册发现

2023-07-29:给你一个由数字组成的字符串 s,返回 s 中独特子字符串数量。 其中的每一个数字出现的频率都相同。

福大大架构师每日一题

福大大架构师每日一题

Dify.AI 接入 Claude2 模型:支持 100K token 上下文,登录即免费获得 1000 次消息额度

Dify

开源 更新 LLMOps

容器化应用程序的配置管理策略与实践

DS小龙哥

7月月更

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