查看原文
其他

插件小公主的 Cocos 修仙之旅

C姐 COCOS 2022-06-10
Cocos Creator 3D 1.2 开始,编辑器正式对外开放了编辑器插件的功能,更多的开发者开始关注编辑器插件,两周前 Cocos 引擎开发工程师严媛媛也为大家带来了《编辑器插件&自定义构建流程》分享,带大家认识编辑器插件,感兴趣的童鞋可以戳链接补课喔。

无论是编辑器插件还是动画编辑器,目前确实仍处于一个比较早期的阶段, 但也正因为如此,它的未来才充满了无限可能。今天 Cocos 人物志专访了媛媛小姐姐,一起了解更多引擎组背后的故事~ 
 


 

从来没有想过会成为程序媛

我是 18 年毕业后加入的 Cocos ,在这之前对 Cocos 的了解并不多,之前也一直做的是纯前端方向的实习。

面试我的是 jare 和斯杰,记得最清楚的就是笔试题居然是 C++ 的,后来 jare 告诉我全做错了哈哈哈。斯杰是全程笑嘻嘻的,问的问题也都是前端相关的,给我感觉很有亲和力,入职后也确认就是个十足的逗比。

在上大学以前,我其实从来没有想过自己会成为程序员。本身我是在学校里学 Adobe 全家桶的树莓(数字媒体技术)专业,什么摄影摄像后期剪辑特效建模动画设计广告小游戏图形学.......啥都接触了点皮毛。

我一直以为自己将来会走艺术方向,参与社团也都尽量往能锻炼到这些的岗位靠拢。

大学时期作业设计图

直到大二做网页设计作业的时候了解了前端的知识概念,意外竟然还蛮喜欢的,作为一个艺术+技术折中的岗位看起来似乎不错。

大学时期作业设计图

来 Cocos 之前其实也有过纠结,主要是关于技术发展的考虑,在此之前我是做前端的,担心引擎编辑器这个方向太偏。当然后来完全释然,都是技术向的,怕什么,重点是项目本身可以带来的成长。

在我看来,大部分的技术成长都离不开参与的项目本身发展,深入参与有挑战性的不断需要补新知识的项目,才是最好的锻炼机会。我就这样在 3D 编辑器组里正式开始了工作生涯。
 
 
从 0 到 1
每一次开始都是新的起点

入司时的 3D 编辑器还只是个雏形,很多功能都没有,只搭了基本的框架。但我反而觉得这十分难得,这意味着我可以见证项目从 0 开始搭建起来,你其实没有那么多机会去参与一个大项目从头开始的机会,而很多功能设计都是在慢慢的讨论设计中定型的,后面加入开发的时候其实很难完全真正理解最开始的模块设计用意。

在功能上,我是从 UI 组件开始接手的,彼时 3D 还没有开始发版本,功能节奏完全是自己决定的,所以顺着项目我又开始了我的新知识学习之路。


记得最初我要做的工作的是从 2D 迁移已有功能过来,框架整体不一样,而且 2D 编辑器迭代了那么久,很多功能想要独立地拆出来还挺费功夫的。

也许有些同学会觉得这样的工作繁琐无趣,但我当时其实觉得蛮好的,因为在我技术经验没有那么丰富的情况下,每处看不太懂的代码用法都是我的学习契机。用的模块库,用的代码 trick,还有一些我当时并不了解的进程知识,网上看到的文章用法可能会是过时不可用的,但是这些正在生产环境的代码示例是真正可用的,这不是一个很好的学习机会吗?哈哈哈~

现在日常使用中我也会尽量地多去收集反馈或者自己思考优化功能点,也会认真地写文档及教程。虽然文档对我来说也是一件琐碎麻烦的事儿,尤其是有些需要截动图、给图加标注这类的。但是很多功能如果没有写在文档上,没有写清楚,那这个功能顶多只算是自己自娱自乐,开发者无法了解的功能又如何能帮到开发者呢?

写文档和教程对我来说也是再次梳理的过程,当然啦,也希望自己的付出被看见、有价值。

 
构建 x 动画编辑器
我也变得越来越有信心

现在在引擎组我更多的工作是负责构建及动画编辑器,最开始其实我也心里没啥底,主要构建实在是一块太重业务的内容, settings 的生成规则细节很多且没有文档可查,代码经过陈年迭代也有很多某个版本的 HACK 处理,看起来着实有些费解。

这种情况下,第一步能做的就是模仿做出来一版可用的,然后才能完整地理解它、完善它、升级它。我就这样一步一步地走上 3D 编辑器构建的维护之路,也在不停的迭代过程中慢慢地加入一些我觉得好用的优化升级。

当然在不断地完成那些原来并没有什么把握的任务之后,也变得越来越有信心。


如果说构建是逻辑细节多的话,动画编辑器就是属于操作细节很多的,其实某种程度来说动画编辑器本身的处理要比构建更难办。构建想要稳定下来,多测几次总能测出来,因为测试方式比较单一简单,又都是逻辑性的东西,能用测试例验证功能,并且测试流程覆盖的比较完整。

动画编辑器,是一个强操作性的东西,在实现功能的时候,按照一个一个功能接入。但是即便这些功能单独测试正常,组合起来可能会出现一些不正确或者不好用的情况。


尤其是很多情况下测试同学和我都无法按照一个真正专业美术的操作执行,代码开发阶段重心更多在代码设计、实现是否达到预期上,对于功能使用的连贯性感知就会比较弱。这类东西不像代码主要靠键盘输入,美术的常用操作都是各种快捷键+鼠标快速按着用,任何的不流畅都会有使用困扰。

看到发版本后才反馈过来的问题,我也感到抱歉,因为这意味着在下一个版本发布之前,这个使用困扰会一直伴随着用户。所以非常建议大家在公测的时候能进来下载体验,反馈问题。其实这也是一个合适的反馈契机,平时的帖子有可能会被漏看,但是公测的帖子大家都会重点关注。
 

有压力也有困难
但每处都是风景

在 Cocos,我觉得对我而言重要的是找到了适合自己的节奏,以及带给了我责任心态的变化。从原来无重心的四处加小功能修 bug 转为专门维护部分模块,责任更大,所遇到的困难也会更多,自己的错误也会被放大。

引擎编辑器是一个整体,当负责维护了某个模块后,它的方方面面对其他人来说都绑定在了我身上。所以压力肯定也是有的,目前压力最大的模块应该就是动画编辑器了,毕竟被吐槽的最多。

当然每次看到自己做的功能完整地做出来、被用户称赞、帮助到开发者,还有 3D 编辑器每次版本发布的时候,这份成就感都会冲散所有的压力和疲惫。

很多问题看起来是小问题,可细究原因,很可能是很久以前埋下的坑或者欠下的技术债导致的,要想把以前设计上的技术债补回来在快速迭代阶段是一件比较难推进的事情。

如何尽可能地提升负责模块的功能质量问题,也是目前我们整个团队的一个长期且艰巨的任务。

动画编辑器也有一个重大的重构改造计划,在 3.0 合并之后,有更多的同事加入了平台构建的维护,并且有部分平台构建也会分出去到其他组维护。

我们将会有更多的时间精力来打磨完善动画编辑器,虽然它现在确实不够好,但是未来我还是有信心的,这里放一张升级计划,以及之前已经做完的部分动画曲线图,希望大家能继续相信我们。

 


不辞青山,相随与共

无论在工作还是生活中,我都是个非常愿意折腾的人。


目前也在不断地变化和探索我的兴趣爱好当中,水彩画、舞蹈班,汉服活动等等都是我的业余活动,享受当下、开心就好。
 
 
我很庆幸,我所在的引擎团队给予了我们充分的自由。团队成员各有分工,大家都在自己负责的模块尽所能地贡献自己的力量来推进整个产品发展。

我觉得 Cocos 是一群充满技术热情的人,大家都是真心地想要把一个产品做好而不只是简单地对需求做任务。

在此也欢迎志同道合的伙伴加入我们,目前产品经理、编辑器架构师、编辑器 Web 前端、资源管线、扩展插件等岗位皆有空缺,支持年前领 offer,年后再入职!虚位以待,欢迎发送简历至 jare@cocos.com 喔。

相信如果你来到这里,也会被这样的一群人所感染。


最后我想对大家说:“你们真的很棒,希望我们能早日一起见证 Cocos 成为世界级引擎的一刻!”。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存