Cocos Creator发布至今,得到了许多开发者的支持和喜爱,甚至有小伙伴留言说:幸福来得太突然。水滴石穿,非一日之功。这款工具从诞生到问世究竟经历了怎么样的曲折,未来又会走向何方?这方面,大概没有谁比Cocos Creator制作人王楠更有发言权了。
今天不妨抽出10分钟,听听王楠的讲述,相信或多或少会对你有所启发。
开发Cocos Creator的初衷是什么?
我和几个小伙伴从2013年底就开始构思一个基于 web 技术,使用 JavaScript 作为编辑器和游戏开发语言的游戏开发工具了。团队几个创始成员都有过很多年主机游戏开发经验,一方面对于成熟的重视团队协作分工的编辑器工具非常熟悉,另一方面又希望能够改变市场上商业化游戏编辑器随着功能增加内核越来越臃肿的现状;因此当时立项的目标就是推出一款内核轻量,使用门槛很低的图形界面研发技术(HTML5),具有跨平台运行能力和强大扩展性的游戏开发编辑器。
为什么筹备了这么久的时间?哪一块的工作是最耗时的?
尽管在 HTML5 技术高速发展的今天, 用做 Web 应用的方式开发一款跨平台桌面应用仍然是一件很有挑战性的事。我们采用的将 Web 应用桌面化的架构 Electron 在 2013 年刚刚出现,我们几乎是和 Github 的团队共同踩过了所有的坑,才将整个编辑器的架构体系搭建起来。
当时我的技术合伙人吴杰和郭佳伟,在此之前都没有怎么使用过 JavaScript。我们在确定了技术方向以后,几乎是义无反顾的一头扎进了 JavaScript,从零开始了解 Web 前后端开发技术、Nodejs、JavaScript 的开源代码共享社区 NPM 等等。虽然花了很多时间,还让我们几乎从游戏和工具开发者变成了前端开发者,但从一个领域跳到另一个领域时,思维方式和看问题角度的变化带给我们非常多的收获。
整个技术架构的选型和搭建,花掉了绝大多数的时间,我们现在的这个产品从架构的开发效率到扩展灵活性上,在国内外都很少有产品能够相比。之后和触控科技原Cocos2d-x 引擎团队合并后,我们的功能开发和迭代速度就很快了,几乎是以每个月为单位推出重要功能模块的。
从开发流程上来说,使用Cocos Creator和传统工具有哪些区别?
Cocos Creator 使用的是数据驱动的工作流程,主要的区别就在于内容生产者可以使用编辑器独立搭建场景,制作可以在场景中随时预览的动画和特效,甚至将程序员开发的组件自由的挂载和组合在场景中的各个元素上,赋予他们不同的行为,并通过图形界面的属性编辑器随时调整游戏角色的行为。
和程序驱动的传统工具相比,数据驱动的流程将内容生产者需要关心的数据和功能开发者关心的脚本分离开,他们各自的工作不会影响对方,同时又可以通过组件这个桥梁进行密切的协作。这样的流程对于在内容生产中需要投入大量人力的项目团队,能够最大化的提高内容生产效率,将程序员从日常内容维护的琐事中彻底解放出来。
对于Cocos开发者来说,有什么学习成本吗?最大的便利在哪?
工作流程的进化也意味着开发者需要面对变化。首先很多游戏逻辑将以组件的形式挂载到场景中,开发者没办法只通过一段入口程序就能找到所有的游戏逻辑了,而是要学会在场景中组织节点树,将组件脚本和节点的结构以最合适的方式结合起来。
此外程序员和美术策划现在都需要在场景中工作了,因此这样的协作工具更加鼓励团队密切沟通,做好分工。在 Cocos Creator 里,程序员和内容生产者之间即是合作关系,又是相互服务的关系。程序员开发的脚本,以组件形式提供给内容生产者根据需要使用;而内容生产者要搭建好场景的图像和架构,程序员才能接手完成整个交互体验的脚本设置。
这些额外的要求,带来的是团队更深入的沟通和生产效率的大幅提高,因为内容生产者不再是被动接受任务,然后提供一堆死的图片资源和数据表格给程序员就算完事了。团队中的每个人都能直接在编辑器中放置和预览自己的工作成果,一方面提高了积极性和创造性,另一方面也为程序员省去了巨大的工作负担,让程序员能专注在复杂的功能开发,绕开一切都要经过程序员的瓶颈。
目前Cocos Creator只提供 JavaScript 的支持,是出于什么考虑?
目前我们只提供 JavaScript 的支持,具体的原因王哲在发布产品时的公开信里已经说的非常透彻了。我们一方面在自己开发 Cocos Creator 时可以只用一种脚本语言就完成从编辑器架构到游戏引擎,以及游戏 demo 项目的开发;另一方面开发者用户们使用这个工具时,不管现在还是未来都不需要为了定制工具链或者开发扩展功能去招募额外的使用其他语言和架构的开发人员。
另外 JavaScript 是目前全世界发展势头最快,流行程度最高,开源社区最活跃的编程语言。人们对于 JavaScript 不适合工程化开发的怀疑其实早就已经不成立了,我们的 Cocos Creator 项目中包含几十万行的 JavaScript 代码,这样规模的项目都可以用纯 JavaScript 完成,这种语言的工程能力完全不需要怀疑。
我们目前不提供 C++ 和 Lua 的支持,是为了让我们自己跑的更快,我相信依靠一体化语言的高效率迭代,我们能够用最短的时间完善功能和提供编辑器扩展能力。到时候会有越来越多的开发者投入 JavaScript 的怀抱,另外通过编辑器扩展,自己实现其他编程语言的支持也不是问题。
对于策划和美术来说, Cocos Creator能带来哪些好处?
策划和美术使用的生产工具,像 Excel、Photoshop 等等,在 Cocos Creator 工作流中仍然占据原有的重要地位。新的一体化工作流程是将他们的工作延伸到 Cocos Creator 的编辑器中,原本他们在配好数值、画好图片后只能目送这些资源在程序员的手上变成游戏版本;但现在他们可以直接在组件属性中调整数值,在场景编辑器中添加和组装图像,而且一边工作还可以一边运行游戏,实时预览他们的工作成果。
对于内容生产者来说,看着自己的作品变成手机屏幕上活生生的角色,CocosCreator教程,而且可以随时根据预览效果进行调整,这是一种至高的满足感,这种感觉会让团队对自己生产的内容更加尽心,并且能发挥更大的创造性。
有些策划和美术担心Cocos Creator学起来费劲,你认为呢?
对于美术和策划来说,Cocos Creator 编辑器会比想象中更友好,上手更快。首先对场景美术来说,场景编辑器和层级管理器的使用方法,基本上和 Photoshop 的画布和图层管理器很相似,凭借 photoshop 的使用经验就能很顺畅的使用 Cocos Creator 的场景编辑功能。对策划来说,组件里的各个数值属性都以图形化的方式展现出来,比起文本和配表来说更直观,更不用说随时修改属性并运行预览的速度非常快,比起配好表以后经过各种工具转格式的传统流程,能够成倍的提高迭代速度,通过更多次测试验证的设计也就会更成熟完善。
Cocos Creator 适合什么样的研发团队?反之呢?
首先原本就使用 Cocos2d-x JavaScript 引擎开发游戏的团队,这款工具对你们来说不存在任何技术门槛,而且 JavaScript 开源社区中的各种代码库都可以直接为你们所用,补充游戏逻辑或工作流程上的开发需要。
接下来是重视内容创作和美术资源生产的团队,你们的策划和美术人员需要更强大的工具来发挥更大的作用,这款工具强烈推荐给你们。
然后是程序员花费太多精力在内容制作和维护相关任务上,造成功能开发瓶颈的团队,这款工具能够帮助你解放程序员的生产力,专注于更需要专业技术的功能开发上。
还有那些经常需要自己定制工具链,但缺少一个能够将所有自制工具整合在一个统一开发环境中的团队。
不建议使用的就是死忠的 C++ 和 Lua 党,至少目前我们还没有能够支持这些编程语言的计划。
Cocos Creator 后续会选择什么方向进行扩充和完善?
今天第一季度,我们的工作重点都会放在完善基础设施和提高整个产品的稳定性上。具体的内容包括代码编辑和调试、原生调试工具、更好的编译和报错信息展示、完善插件工作流等等。
我们在这个阶段之后,Cocos Creator 虽然还没有包含开发者们要求的全部功能,但基本的工作流已经完全经过锤炼,能够支持各种规模项目的可靠生产,而且开发者可以通过我们的插件工作流自己定制缺少的工具,或者通过一点想象力和创造力,通过组件系统实现大部分游戏开发需要的功能。
基础设施和架构完全成熟后,我们才会将工作重点放到各种有趣而强大的编辑工具开发中,后面这个阶段大家可以期待编辑器内置的图集打包工具、字体创作工具、瓦片编辑器、骨骼动画编辑器等等。
很多开发者有在问,Cocos Creator能否支持各种渠道、计费和广告 SDK的接入呢?
Cocos Creator 提供了很多平台的发布选项,发布时是可以生成各个平台原生工程的,然后就可以用大家很熟悉的 Eclipse、Xcode 等工具接入各种 SDK 功能了。对接入技术不熟悉或者没有精力接入那么多渠道的朋友也可以配合使用触控推出的AnySDK多渠道SDK自动接入工具。未来,我们也会提供直接接入AnySDK的可选项,供用户自由选择。开发者如若选择接入AnySDK,在 Creator 中开发好游戏之后,只要简单的点击几个按钮,配置一些关键信息,就可以直接生成多个渠道的包了。
这样真正的「一站式」服务,相信可以为大家节省大量的时间精力,让开发者专注在做出好游戏上。
从技术支持的角度,你认为现在手游市场最核心的竞争力是什么?开发者的痛点是什么?Cocos Creator会带来什么样的改观和影响?
开发效率、游戏内容的数量和质量、设计者的创造力。
上述几点是现有已经几乎饱和、市场竞争极其激烈的手游市场中,最能确保你的游戏鹤立鸡群的竞争力。单凭有趣创意就能产生现象级游戏的时代过去了,单凭换皮抄袭就能快速抢占市场的无序时代也过去了。现在市场中每款成功游戏,都在设计创新、内容容量和开发效率中尽量追求一个微妙的平衡点。
而无法有效的协调团队资源、实现团队更高效率和有更好化学反应的协作,就是目前行业开发者最大的痛点。Cocos Creator 以内容创作为核心,专注于通过组件化脚本化和数据驱动解决开发团队协作和内容生产创造力和效率的问题。相信能够给业内同行们带来全新的开发体验和更好的效果,进而再一次提高行业的整体开发水平,让我们共同创造更多更优质的游戏,获得更大的成功!