作为Cocos元老级员工之一,在加入 Cocos 之前,他曾不要工资只为求一个前端实习的机会,从一枚野生程序员成长为技术负责人,这个转型可以说是非常励志。90后的他,从外形上来看是一个大男孩,但其实已经是拥有一双儿女的超级奶爸。他就是今天人物志的主角 Cocos 编辑器技术负责人 vsj。
在镜头面前羞涩又努力地营业着
不要工资
只求一个前端实习机会
2012年,vsj 从网络管理专业毕业,跟所有同专业的毕业生一样,搞起了运维。很快,他就发现自己对于运维这份工作兴致索然,经过深思熟虑,他果断放弃运维转投奔向了前端。
没有任何前端工作经验的他,买了一张去福州的动车票,敲开了新浪地方站办公室的门。
「您好!我不要工资,您就允许我在这里工作吧!」
毛头小子说这句话的样子格外真诚,也打动了当时的领导,被留下来当一名前端实习生,也许是学得太卖力,也许是天赋使然,不到三个月,他就出师了。
结束实习后,vsj 加入了厦门4399,从事网页前端,算是正式踏入了前端圈。
vsj 曾工作过的4399四楼办公区
同龄毕业生可能已经拿到了比较好的收入待遇,但转型从零开始的他,显然有些落伍。
「年少无知,有饭吃就行。」
遇见伯乐
开启8年Cocos垒码生涯
那段日子,工作之余,vsj 经常参加同城的技术分享会,在厦门前端群主鬼懿组织的一场前端技术饭局上,vsj 遇到了他的Cocos引路人——现 Cocos 联合创始人 & CTO 林顺。
当时,林顺正满世界挖前端的技术高手,专挖前端圈各技术论坛的群主版主,或是让他们帮忙介绍。在这场饭局上,林顺第一次见到了vsj。
「在我的第一印象中,vsj具有非常典型的技术气质范,给我一种很亲切、值得可信任的感觉。虽然那时候和他聊天,他还是有点小羞涩,但是交流起技术方面的问题,就特别得顺畅,眼里带光,整体聊下来他也对引擎的事情很感兴趣,并且不畏惧挑战高复杂度的前端项目。」
这样的人才,就是林顺那时候要找的人。在林顺的邀请下,vsj加入了Cocos,也确确实实在未来的日子里,撑起了Cocos编辑器的核心开发。
左一林顺,右一vsj
所以,做编辑器的都是前端?非也。
「可以说都是客户端前端,但不是 web 前端,按 web 那套算,大家都是全栈!」 不熟悉这一领域的开发者,可能会觉得做个编辑器嘛,工作量并不大,因为网上有很多编辑器的 Demo,都是几个人甚至一个人在使用其他引擎的时候随手就能搭出来的。但其实从0到1堆出一些能满足自身需要的功能很容易,要从 1 - 10 把完整性做好,不断优化迭代,真正实现产品化和商业化,开发难度就会指数上升。「编辑器里包含了各种业务代码,有巨量的JS、TS,脚本语言又太自由,稍微动一动就容易引起各种问题,所以我们一直在绞尽脑汁想办法平衡开发速度、稳定性!」刚来的时候,Cocos 团队还不足10人,如今,Cocos团队不断壮大,vsj也从入职时的引擎研发,不断历练,成长为编辑器技术负责人。当我问他,“为什么好好的前端不做,要做编辑器?”时,他笑了。「啥是好好的前端?我们不还在做前端么?编辑器的难度比较大,正经网页哪有经得起我们这么造的,难度大,代码多,做起来多有意思。」编辑器最难的地方之一,是怎么管理和维护大量代码,这里面也少不了引擎本身。引擎功能更新非常快,接入、使用的地方就容易不稳定。
如果说引擎的难点是技术的深度,那编辑器的难点就是超大工程的管理,大量高速迭代的模块(特别是 JS )保持稳定和兼容是一件很难的事情。「编辑器内为了模块隔离已经是不择手段了。例如大家吐槽的无法直接拿到 engine 对象进行修改,也是这个思路下的产物,希望能够获得相对独立且稳定的运行环境,而不是一锅大杂烩。」同时编辑器也在 Web 前端领域上不断的探索,例如 WebComponent UI 组件、WeakRef 管理资源等等,尝试使用一些新的特性解决一些疑难杂症。编辑器开发的另一难点,是如何才能给大家一个简单易用的方式去扩展编辑器,现在这部分做的还不是太好,编辑器也在努力完善。「因为每个开发者技术背景都不一样,单独学习编辑器的写法肯定是没有太大意义的。所以我们后续的想法会是自研一些 UI 框架,让开发者可以更简单地参与进来。另一方面是持续的简化现在的 ipc 调用结构,减少大家的开发负担。」2016年,Cocos Creator 1.0 正式发布,其中编辑器部分就是由vsj在内的几名成员所负责的。2021年,Cocos Creator 3.0 发布,全新的一体化编辑器,为开发者带来了更加轻量易用的开发体验,这是由vsj带领团队用3年的时间打磨优化而成的。「其实一开始,我只是要写一个新的编辑器框架给当时引擎的 3D 团队使用,但是,大家发现这个框架竟然比 2.x 的要好用。于是我就比照着以往踩过的坑,对整个编辑器的结构重新设计和规划,慢慢地,就将精华整合融入到 Cocos Creator 中。」编辑器团队成员不多,2.x 的编辑器还要保持维护,工作量可想而知,Cocos 引擎产品总监 Jare 对于 vsj 的技术也表示高度的认可。「2018 年起,vsj 带领团队几乎重写了每一行代码,构建出了全新的 Cocos Creator 3D 1.0 编辑器。从大改版的难度、完成度和结果上看都很不易。经过不断优化,到 3.0 发布时已经从性能和体验上远远超越了 2.x,证明了他在技术上还是很靠谱的。」「从 2.x 编辑器到 3.x 编辑器,虽然辛苦,但是我们做得很快乐。在开发过程中,发现了问题,就想着把问题解决掉,寻找解决方案的过程中会冒出很多想法。」之前 2.x 的插件,是丢进引擎中就直接运行,缺乏设计和规范,在 3.x 中,编辑器团队加入了更加强大的插件机制,插件系统彻底模块化,并且参考了 vscode,让插件使用更加规范。此外,也解决了 2.x 的部分交互问题,比如 2.x 会出现消息发出去不返回的问题,编辑器团队就做了一个异步消息队列管理。对于开发者来说,新版编辑器体验上能得到不少提升。3D 项目的体量天生就大很多,从 2D 到 3D,对编辑器的挑战更大,对技术栈要求也越来越多。「刚进 Cocos 的时候,根本不懂渲染,自己学 2D 渲染学得很开心,后面学习编辑器框架,这些事情对我来说很有挑战,太有意思了。」「想法实现了,获得好的结果,是一件特别让人开心的事情。」vsj 眼睛的笑意,让C姐突然明白了林顺所说的“眼里有光”是什么样子。卷自己、卷团队,vsj 对于技术知识的求知,也带动着整个团队,包括 vsj 在内的编辑器团队成员,一直主动走在学习新技术的道路上,拉高了整个团队的技术视野。「以前做 web 前端,web 产品的生命周期一般都比较短,但在 Cocos,我能持续地打磨一个产品,这个经历感觉非常棒。」如今,在写代码之余,作为负责人,还需要管理好团队, 专业线和管理线都要同步推进。并非时时刻刻都能专注只写代码这件事。不过,他也有自己分配时间的方法。在执行设计机制和框架等任务时,他必须沉浸式地写代码,而在流程已经敲定只需填代码时,他能够熟练地在大脑中切换子母屏,一边处理工作消息,一边填代码。8年中,难免会有项目意见上的分歧,但引擎组极度友好的讨论氛围,让 vsj 获得了许多宝贵的经验。「有了分歧就来一顿热吵,这可是最好的公开diss上司的机会。」 vsj 开玩笑地说道。当我问起他面对失败的体验时,他说,「哪有绝对的失败,就当作是一种技术方案的试行,可能确实是有一些思路和想法不太对,那也不算是挫折,我这个人就是喜欢挑战。」今天是 vsj 加入Cocos的第3018天,8年多的时间,一直都在做自己喜欢的事情,就是当一个无情的码农。除了事业上的发展之外,vsj 也在 Cocos 完成了个人两大里程碑事件,结婚生子。现在他已经拥有了一双可爱的儿女。公司离家特别近,早上吃完太太煮的爱心早餐,下楼屁颠颠晃悠着就到公司了,简直不要太爽。事业即兴趣,也就无所谓如何平衡家庭和事业了,上班时间,做的自己喜欢的编程事业,下班后撸撸软萌的娃,二者都是所爱。作为上级,也是7年多的同事,Jare 总结 vsj 的身上有几大标签,工作狂,学习力惊人,还是一个好评面试官。「从野生程序员,独立成长到编辑器技术负责人,这个转型非常励志。作为一个leader,vsj也没有半点架 一点也不直,偶尔不太正经。他还是Cocos面试者评价评选的最好的“面试官”,在专业性、亲和度方面给面试者留下了极佳的印象,Cocos还招人,不服气的可以来面试感受一下。」我们也期待有更多热爱游戏、热爱垒码的人加入我们,如果你感兴趣,欢迎投递简历到 hr@cocos.com。
Cocos 开发者沙龙「成都站」将于7月10日(下周日)举行。来自 Cocos 引擎官方、刀锋创意科技、竞技世界、网易易盾、百度安全、数数科技等知名游戏开发与相关服务厂商的重磅嘉宾即将全力开讲!点击文末【阅读原文】或扫描上方二维码即刻报名吧!
往期精彩