w3ctech

githuber对Cocos2d-x联合创始人林顺的采访

本文摘自于githuber发布的GitHub 中国开发者年度报告,如果你对报告有兴趣,也可以看看。

G:请简单介绍一下你自己吧。

林顺:林顺,Cocos2d-x 的联合创始人,从小喜欢玩游戏,暴雪粉,星际死忠粉,最近爱上风暴英雄,喜欢不受打扰写代码,喜欢数码电子。

G:Cocos2d-x 大家应该都听过了,说实话我第一次听到它的时候还以为是国外的开源项目,后来知道是国人开发的时候非常惊讶。虽然 Cocos2d-x 在国内已经非常有名,不过对于大多数没有接触过游戏的开发者来说可能不太了解,你能介绍一下 Cocos2d-x 以及由它延伸出的整条产品线吗?

林顺:Cocos2d-x 是专业的跨平台移动游戏引擎,采用 MIT 协议,从 2010 年 7 月提交第一行代码到 GitHub 就是完全开源免费的,目前在全球超过25%的市场份额,而在中国这一份额超过 70%,全球超过 40 万的开发者正使用该引擎开发游戏。X 代表着 Cross,为开发者提供了跨平台支持,采用 C++ 语言编写一次游戏逻辑即可编译到 iOS、Android 以及更多手机平台上运行,并且运行性能是最高效的。2012 年初 Google 赞助 Cocos2d-x 团队创建了 Cocos2d-html5 分支,并在 Zynga 的帮助下完成了 JSB(JavaScript Binding)产品的开发,实现了 JS 脚本游戏一次开发,不仅能跨原来 Cocos2d-x 支持的所有平台,还能发布到 Web。

目前 Cocos2d-x 的工具链已经覆盖了游戏从新建项目一直到游戏SDK接入、打包发布的全过程,集成开发工具 Cocos Studio 支持快速原型构建和验证,调试脚本代码和应用打包使用 Cocos Code IDE,AnySDK 高效快速接入海量渠道。此外,Cocos 社区还有 Cocos Play 和 Cocos Runtime 来实现游戏的点击即玩效果,提升游戏转化率。2015 年 3D 和 3D 编辑器将是 Cocos2d-x 的发展重点,秉承最高效,体积最小的优势,提供更强大的 3D 功能,支持用户使用 Cocos2d-x 的 3D 版本做出优秀的 3D 游戏作品。

G:Cocos2d-x 应该从诞生开始就是由公司在运作的项目吧,最初公司为什么选择做游戏引擎,又是如何决定把它开源的呢?

林顺:Cocos2d-x 从最开始就是完全开源、免费,当时 Cocos2d-x 项目的目标是为我和王哲所在的操作系统公司提供游戏内容。一个新操作系统,全新的生态,没有很好的游戏内容,一点都不高大上,而是高处不胜寒,所以我们开发 Cocos2d-x 这个跨平台的开发工具,让开发者可以快速的将游戏发布到 iOS 的同时,能快速、低成本的发布到 Android,最后顺手一编,将游戏内容也导入我们的操作系统,实现零落差同步导入最优秀的游戏内容。

G:目前在国外已经有一套很成熟的公司参与开源甚至主导开源的模式,但是在国内这还是一个比较新的概念。开源本身的不确定性和公司需要的可控性应该是矛盾的,触控科技是如何处理这个矛盾呢?

林顺:开源引擎在不确定性和可控性上并没有很大的矛盾,目标都是提高效率,降低成本,更好的为商业游戏开发服务。

开源游戏引擎的好处是可以从社区获得最直接的需求,接地气,推动产品往正确的方向快速发展;社区的代码贡献者也能共同分享他们的成果,从而加速产品升级。Cocos2d-x 的发展离不开触控科技《捕鱼达人》系列游戏的推动,《捕鱼达人1》基于 Cocos2d-x v1.0,引擎所有技术上的坑是捕鱼游戏最先趟平的,国内各种奇葩机型的适配和性能优化,也都是基于捕鱼达人进行验证。

G:Cocos2d-x 整条产品线发展到现在的规模和知名度,你觉得开源在其中起到了什么作用呢?

林顺:开源在里面有决定性的作用,首先开源社区的需求驱动模式,为我们提供了最好的需求参考,其次,来自全世界超过 300 位的优秀工程师在为引擎贡献代码,这是一笔无法估算的财富,如果不是因为开源模式,我相信没有哪家公司能让这么多的优秀工程师在为同一个项目贡献代码。最后,开源免费的模式,让更多人能从中受益,他们的口口相传才造就了今天 Cocos2d-x 的口碑和用户基础。

G:什么事都是有利有弊,你觉得公司主导的开源项目相比个人或者社区主导的开源项目利在哪里,弊又在哪里呢?

林顺:有公司或者资本提供支持的开源项目,相对于个人或者没有资本支持的开源项目的优势:有更多的资源投入,对开源项目的后期发展至关重要,允许有更多专职的研发人员,产品的迭代周期和质量也能得到很好的控制,提供更加持续长久的维护,可以让开源产品走的更高、更远。至于弊端,那就得看对开源项目的态度,如果本着服务行业,推动行业升级,用开放的心态来做开源项目,并不会存在着什么弊端,全世界范围内也并不乏有各个公司支持的开源项目。当时我们的操作系统公司做的不好了,引擎项目发展的却是很好,愿意投资我们的有好几家,但是最后还是觉得陈昊芝思路很开放,能坚持不把一个开源的项目做成闭源商业项目,最终和他一起做,一路走来,也发现我们当初的选择是最正确的。

G:如果其他公司也想走开源路线,有什么话想对他们说吗?

林顺:非常欢迎一起加入开源路线,开源项目不论是对个人和对公司,能学习到很多宝贵的知识,社区里汇集的智慧是巨大的宝贵的,国外资深程序员教你两招,你就能发现原来代码还能这么写,框架还能这么设计优雅。另外,和社区做好互动,有效采集用户需求和反馈,是推动开源项目往正确方向发展的关键,也是产品化和易用化的捷径。

G:最后来聊聊开源吧,你觉得开源对大多数普通程序员来说意义何在呢?程序员应该如何充分利用 GitHub 呢?

林顺:参与开源项目对于程序员来讲是一种高效、快速学习成长的方法,不仅如此,如果你是一个技术爱好者,参与开源项目你有可能找到自己的兴趣,擅长结合点。当然,如果能找到和商业的结合点,进而从事自己喜欢的工作,那就更爽了,这点是很难得的。

一般有秩序的开源社区都提供很好的知识和经验交流平台,深入参与到开源项目中,对个人的技术成长和视野会有很大的帮助。

GitHub 在全球的火爆程度无需多表,提供非常高效的项目开发协作机制,是了解开源项目运作机制的很好入口。在 GitHub 上,开发人员可以随时与全世界的人共享代码,也允许接受来自全球不同地方的人贡献各种 idea,代码片段,也是社区交流的基础,越来越多的开源项目迁移到 GitHub 上。最后,欢迎各位加入 Cocos2d-x 开源项目社区,成为我们社区的一份子,实现自己的游戏梦想。

w3ctech微信

扫码关注w3ctech微信公众号

共收到0条回复