王楠首次讲述Cocos Creator背后的故事

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 以内容创作为核心,专注于通过组件化脚本化和数据驱动解决开发团队协作和内容生产创造力和效率的问题。相信能够给业内同行们带来全新的开发体验和更好的效果,进而再一次提高行业的整体开发水平,让我们共同创造更多更优质的游戏,获得更大的成功!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


    本文实践自 RayWenderlich、Ali Hafizji 的文章《How To Create Dynamic Textures with CCRenderTexture in Cocos2D 2.X》,文中使用Cocos2D,我在这里使用Cocos2D-x 2.1.4进行学习和移植。在这篇文章,将会学习到如何创建实时纹理、如何用Gimp创建无缝拼接纹
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@163.com微信公众号:HopToad 欢迎转载,转载标注出处:http://blog.csdn.netotbaron/article/details/424343991.  软件准备 下载地址:http://cn.cocos2d-x.org/download 2.  简介2.1         引用C
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从Cocos2D-x官网上下载,进入网页http://www.cocos2d-x.org/download,点击Cocos2d-x以下的Download  v3.0,保存到自定义的文件夹2:从python官网上下载。进入网页https://www.python.org/downloads/,我当前下载的是3.4.0(当前最新
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发引擎,易学易用,支持多种智能移动平台。官网地址:http://cocos2d-x.org/当前版本:2.0    有很多的学习资料,在这里我只做为自己的笔记记录下来,错误之处还请指出。在VisualStudio2008平台的编译:1.下载当前稳
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《最强大脑》娱乐节目。将2048改造成一款挑战玩家对数字记忆的小游戏。邮箱:appdevzw@163.com微信公众号:HopToadAPK下载地址:http://download.csdn.net/detailotbaron/8446223源码下载地址:http://download.csdn.net/
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试以QtCreatorIDE来进行CMake构建。Cocos2d-x3.X地址:https://github.com/cocos2d/cocos2d-x1.打开QtCreator,菜单栏→"打开文件或项目...",打开cocos2d-x目录下的CMakeLists.txt文件;2.弹出CMake向导,如下图所示:设置
 下载地址:链接:https://pan.baidu.com/s/1IkQsMU6NoERAAQLcCUMcXQ提取码:p1pb下载完成后,解压进入build目录使用vs2013打开工程设置平台工具集,打开设置界面设置: 点击开始编译等待编译结束编译成功在build文件下会出现一个新文件夹Debug.win32,里面就是编译
分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net前言上次用象棋演示了cocos2dx的基本用法,但是对cocos2dx并没有作深入的讨论,这次以超级马里奥的源代码为线索,我们一起来学习超级马里奥的实
1. 圆形音量button事实上作者的本意应该是叫做“电位计button”。可是我觉得它和我们的圆形音量button非常像,所以就这么叫它吧~先看效果:好了,不多解释,本篇到此为止。(旁白: 噗。就这样结束了?)啊才怪~我们来看看代码:[cpp] viewplaincopyprint?CCContro
原文链接:http://www.cnblogs.com/physwf/archive/2013/04/26/3043912.html为了进一步深入学习贯彻Cocos2d,我们将自己写一个场景类,但我们不会走的太远,凡是都要循序渐进,哪怕只前进一点点,那也至少是前进了,总比贪多嚼不烂一头雾水的好。在上一节中我们建
2019独角兽企业重金招聘Python工程师标准>>>cocos2d2.0之后加入了一种九宫格的实现,主要作用是用来拉伸图片,这样的好处在于保留图片四个角不变形的同时,对图片中间部分进行拉伸,来满足一些控件的自适应(PS: 比如包括按钮,对话框,最直观的形象就是ios里的短信气泡了),这就要求图
原文链接:http://www.cnblogs.com/linji/p/3599478.html1.环境和工具准备Win7VS2010/2012,至于2008v2版本之后似乎就不支持了。 2.安装pythonv.2.0版本之前是用vs模板创建工程的,到vs2.2之后就改用python创建了。到python官网下载版本2.7.5的,然后
环境:ubuntu14.04adt-bundle-linux-x86_64android-ndk-r9d-linux-x86_64cocos2d-x-3.0正式版apache-ant1.9.3python2.7(ubuntu自带)加入环境变量exportANDROID_SDK_ROOT=/home/yangming/adt-bundle-linux/sdkexportPATH=${PATH}:/$ANDROID_SDK_ROOTools/export
1开发背景游戏程序设计涉及了学科中的各个方面,鉴于目的在于学习与进步,本游戏《FlappyBird》采用了两个不同的开发方式来开发本款游戏,一类直接采用win32底层API来实现,另一类采用当前火热的cocos2d-x游戏引擎来开发本游戏。2需求分析2.1数据分析本项目要开发的是一款游
原文链接:http://www.cnblogs.com/linji/p/3599912.html//纯色色块控件(锚点默认左下角)CCLayerColor*ccc=CCLayerColor::create(ccc4(255,0,0,128),200,100);//渐变色块控件CCLayerGradient*ccc=CCLayerGradient::create(ccc4(255,0,0,
原文链接:http://www.cnblogs.com/linji/p/3599488.html//载入一张图片CCSprite*leftDoor=CCSprite::create("loading/door.png");leftDoor->setAnchorPoint(ccp(1,0.5));//设置锚点为右边中心点leftDoor->setPosition(ccp(240,160));/
为了答谢广大学员对智捷课堂以及关老师的支持,现购买51CTO学院关老师的Cocos2d-x课程之一可以送智捷课堂编写图书一本(专题可以送3本)。一、Cocos2d-x课程列表:1、Cocos2d-x入门与提高视频教程__Part22、Cocos2d-x数据持久化与网络通信__Part33、Cocos2d-x架构设计与性能优化内存优
Spawn让多个action同时执行。Spawn有多种不同的create方法,最终都调用了createWithTwoActions(FiniteTimeAction*action1,FiniteTimeAction*action2)方法。createWithTwoActions调用initWithTwoActions方法:对两个action变量初始化:_one=action1;_two=action2;如果两个a
需要环境:php,luajit.昨天在cygwin上安装php和luajit环境,这真特么是一个坑。建议不要用虚拟环境安装打包环境,否则可能会出现各种莫名问题。折腾了一下午,最终将环境转向linux。其中,luajit的安装脚本已经在quick-cocos2d-x-develop/bin/中,直接luajit_install.sh即可。我的lin
v3.0相对v2.2来说,最引人注意的。应该是对触摸层级的优化。和lambda回调函数的引入(嗯嗯,不枉我改了那么多类名。话说,每次cocos2dx大更新。总要改掉一堆类名函数名)。这些特性应该有不少人研究了,所以今天说点跟图片有关的东西。v3.0在载入图片方面也有了非常大改变,仅仅只是