坚守初心,白鹭引擎七年之痒
2020-12-11 16:48:44 作者:网络转载
作者:王泽 本文转载出自知乎:https://zhuanlan.zhihu.com/p/335604641 各位开发者好,我是白鹭引擎团队的王泽。 七年前的今天,我敲下了白鹭引擎的第一行代码,此时此刻我的孩子也终于要呱呱落地,即将成为一个父亲,我也有很多感慨。 这两年经常有一些朋友来找我关心白鹭的动向,因为行业环境的原因我们市场发声变少了,产品发布节奏也慢了下来,人无名则安心练剑,年关将近,作为白鹭引擎的作者,我来和大家聊一聊2020年白鹭引擎团队专注在哪些工作上,以及我们2021年的产品重心会放在哪里。 今年我们受疫情影响,取消了所有线下的开发者沙龙活动,并且也降低了市场费用,把相关人员和精力放在了针对开发者的技术支持和服务上。我们重点维护了多个核心开发者微信群,对整个文档中心和论坛进行改版,提升了针对开发者问题的响应速度和服务质量,相信许多开发者能感受到我们这一点的变化。 接下来简单和大家聊一聊今年白鹭引擎的研发团队主要为开发者做了那些新的改进。 2D引擎稳定成为中重度手游首选 首先和大家聊聊2D引擎部分。由于广州是使用白鹭引擎开发中重度2D/2.5D手游的大本营,因此我2019年有超过半年时间都在广州各大厂商长期驻场,帮助这部分开发者解决他们在使用白鹭引擎开发重度游戏时遇到的各种问题。然后在2020年的整个上半年我和团队主要的工作就是将这部分工作成果进行不断打磨,发布至 Egret 5.3 版本系列中。 在这其中最重要的改动就是完全重写的白鹭编译器。在和这些开发者沟通之后我发现,大部分开发者都在为编译速度、生成包体积、模块拆分等工程化问题困扰。这主要是因为白鹭引擎在2014年初编写的命令行工具已经愈发无法适应动辄超过数十万行代码量规模的项目。因此我在 2020年为开发者重写了新的编译器,借助业界最流行的(也是2014年的时候还尚未出现的)Webpack 打包器以及针对白鹭项目定制的扩展,并进行了大量的向下兼容处理工作以保证现有项目可以以尽可能低的成本迁移至最新的编译器(特别感谢阿里巴巴灵犀互娱的游戏研发团队为我们团队贡献的代码以及十余家游戏开发团队在内测阶段提供的积极反馈)。通过新的编译器,这些重度游戏的增量编译速度平均从50秒降低至5秒。除此之外,我们提供的新编译器不仅可以帮助开发者大幅提升编译速度,也可以通过 tree-shaking , split-chunk 等技术改善开发者非常关心的代码尺寸问题,后续我们还会通过 custom-typescript-minifier 来进行进一步的优化。 除了编译器之外,2020年我们和网易合作了网易自研的测试自动化测试工具 Airtest 的白鹭引擎侧实现,并将其应用至网易采用白鹭引擎自研的《梦幻西游网页版》中。 通过上述工程化改进,使用白鹭引擎开发的2D重度游戏可以承载更多的体量。并且随着行业的变化,在今年越来越多的开发者逐渐将原生渠道作为游戏的发行重点。而白鹭引擎团队虽然2014年就发布了支持将HTML5游戏发布到 iOS/Android 设备上,但是其性能和稳定性一直广受开发者的各种吐槽。我们在每年都在针对发布原生游戏这一项工作进行不断优化。 白鹭引擎不再是一个H5小游戏引擎,大步迈向全平台的游戏引擎 今年初 Egret Native 正式迈入 1.0 正式版本。正式版本发布之后的这一年中,我们从开发者反馈的各种问题入手,逐个针对了包括 音频系统、网络系统、输入法、文字渲染、原生渲染在内的多个模块进行逐个渐进式重构,每个版本都为开发者带来了更稳定和性能更好的新版本。除此之外,我们还紧跟苹果AppStore 和 GooglePlay 商店的上架和发布流程策略进行调整,并及时更新文档、教程与技巧,以帮助开发者快速过审。而这些开发者除了将手游发布到国内市场外,多数都会有发布到海外全球市场的需求。针对这种情况完善了多语言的支持,支持非utf-8文件加载,完善了泰文、韩文等复合文字的输入和显示。 根据工具端的统计,目前已有超过4000款白鹭引擎的游戏被打包上传到AppStore和Taptap渠道发行。 通过 Egret2D 和 Egret Native 在这一年的 改善,我相信如果您想要开发一款包含大量复杂UI和动画的2D/2.5D重度游戏的话,白鹭引擎将是您的最佳选择。 3D引擎日渐成熟且编辑器已稳定迭代 除了2D之外,我们今年对引擎的3D部分终于开始了稳定的迭代和进步,而不像前几年那样几乎每一年半都推翻自己重来一次。 现在回想起来,如果说白鹭引擎在设计时最大的问题是什么,我觉得就是他是一款以程序员为核心的开发工具,而非以游戏设计师(策划)为核心的创作工具。虽然白鹭引擎中也有可视化的工具,但是整体的产品设计思想都是围绕着程序员这一工种进行的,当然这也和我们中国游戏行业在特定年代工业化不成熟的局限性相关。 最近看了一篇文章,心动游戏CEO黄一孟提到,心动联合创始人戴云杰的企业微信签名是「2D游戏的策划用Excel做游戏,3D游戏的策划用引擎做游戏」。这篇文章看完之后我感到感慨万千,Egret3D 经历在2016年和2017年分别经历了两次失败的研发过程。第一次是按照做2D渲染框架的思路去开发一款3D引擎,第二次则是参考 Unity 的API 设计,但是仍然仅仅是一套代码库而已,本质上都是围绕着程序员为中心,把游戏策划作为一个“填excel表”的工种,而不是引擎的直接用户。这种做法使得我们的之前开发的3D引擎虽然可以做出产品,但是用户的使用门槛非常高,相比其他主流3D游戏引擎(比如Unity,Unreal)在开发效率上存在巨大差距。这些惨痛的经历对我们团队也是很深刻的教训,让我意识到了一款优秀的3D引擎必须首先是运行时与可视化编辑器一体化的产品,并且其运行时在开发前就应充分考虑编辑器需求而去设计。 在 Egret3D 经历了2016年和2017年连续两次的失败之后,我们第三次从头出发,打磨三年,在2019年底发布了可视化3D编辑器 EgretPro 。它代表着我们对一个真正的游戏引擎该有的样子的初步描绘,即采用了组件实体系统架构,这种架构强调以数据为中心,将业务逻辑和数据进行分离,而这也是近两年国内外游戏引擎设计方向上的一个趋势。就实践项目来看,使用这种组件实体系统架构存在几个优势,一是方便进行跨编程语言引擎的设计,二是关注点分离,方便数据在不同业务场景下的差异化进行横向复用而非传统的纵向复用。 EgretPro作为白鹭新研发的3D编辑器,底层的包含了我们这两年新研发的基于 WebGL 1.0 的渲染器。目前EgretPro比较适合开发两种类型的游戏,一类是轻度休闲3D游戏,另一类是在现有重度2D游戏中添加3D场景和人物等元素。我们今年针对这两种场景分别做了详细的视频教程,不少开发者都表示看完教程之后直接下载示例Demo就可以快速上手。 在EgretPro发布之后有不少开发者向我询问,什么时候可以比肩Unity,Unreal这样的画质效果。我认为这一步对白鹭来说还需要很长的路要走,并且在2021年也不是白鹭的既定目标,我想借这个机会也和各位开发者说说我的想法。 Egret Pro 3D功能演示 首先,我认为一款优秀的游戏引擎应该发挥其优势,而不是盲目的去和市面上其他竞品比较。白鹭引擎既然目前定位在 Web平台(包括小游戏平台)并逐步向原生手游平台扩展这一目标,就应更务实的去设计这些平台所能承载的运行时功能。说的直白一些,如果只是单纯的去实现 Unity/Unreal有的而白鹭没有的功能,那这样的话开发者为何不直接使用Unity/Unreal呢?除此之外,一些高级光效渲染基本都需要WebGL 2.0 的支持,但是苹果已经三年没有在这项标准上有任何动作(反而搞了一个未必能成为Web标准的WebGPU接口),另一些功能(比如复杂3D物理)完全不是 JavaScript 可以承载的体量,目前来看必须采用 WebAssembly实现,但是 WebAssembly的现实问题又是 JS-WASM的调用过程开销仍然巨大,所以HTML5游戏的最终答案应该是所有逻辑均采用WebAssembly实现。因此我们后续实现 WebAssembly化而继续努力,而不是把精力放在使用JavaScript 实现高级3D功能上。 关于2021年的研发方向 上面提到了一些白鹭引擎在2021年不会重点做的事,接下来我也想说一下我们2021年的重点会放在哪里。 回顾2020年,整个引擎都是处于围绕当前的核心开发者群体进行不断完善的过程,并没有跨越性的新功能,但这并不意味着我们内部没有尝试。我们接下来会围绕着以下几个问题进行进一步的完善: 1. 将 Egret Engine(即 JavaScript运行时库和编译器)和 Egret Native 进行产品一体化,重点为原生游戏开发带来更强大的开发调试功能以及性能和稳定性提升,逐步完成从HTML5游戏引擎到全平台游戏引擎的转变。 2. EgretPro 的ECS架构为白鹭引擎的后续计划打下了一个非常优秀的基础,明年我们会尝试在白鹭引擎中充分利用 ECS 的数据与行为逻辑分离的特性,实现JS-WASM的跨语言调用框架,然后渐进式的将引擎部分功能逐步从 JavaScript 向 WebAssembly 迁移,并探索解决如何让 TypeScript 开发者可以直接开发 WebAssembly应用的编译工具链。目前我们已经在一个实验性项目中实现了 DragonBones 的WebAssebmly化,后续我们会在版本优化完善后逐步发布。 3. 在今年我们发现目前在游戏之外,白鹭引擎也存在着不少应用场景,比如经常有开发者向我询问是否可以把白鹭引擎在微信小程序而非小游戏容器中渲染,以解决他们需要在小程序中引入更多游戏化内容的需求。虽然现在通过一些dirty-hack也可以实现这些功能,但我们明年准备将这些需求纳入白鹭的直接支持目标。 4. 同时我们也发现了其他行业的一些强烈需求,特别是在线教育领域,今年有超过20家创业公司来寻求技术支持,他们已经基于白鹭引擎做出了自己的产品,我们将深度支持这类客户,并推出完整的解决方案。 写在最后 七年前的这个时候,和我的搭档与老板陈书艺已经一起做了五六年的游戏研发,从2008年我们在PC页游上采用JS开发出当年校内和51榜首的《新同居时代》,到11年3月我们孵化盘辰工作室探索HTML5游戏的捕鱼类产品,再到12年我们成为业内第一个采用Cocos2d-x JSB/H5完整开发出手游《一二三国》和《鹿鼎游》,2013年我也在Cocos开发者大会上做了关于FLash技术转型和HTML5探索的公开分享,但很遗憾的是我们一直没有找到可以让自己满意的超高效率开发解决方案。 老板是一个理想化的人,在我和研发团队不断吐槽下,2013年底书艺问我,有没有可能基于公司这些年在HTML5游戏开发过程中积累下来的经验自己开发一个游戏引擎? 至少可以满足跟我们一样有需求的开发者,解决它们的痛点。当时的我正在没日没夜的与 iPhone 4和小米1的内置浏览器搏斗了半年,我并没有信心能够做出一个让所有人满意的作品,但基于现实的需求和痛点,我写下了第一行代码。 老板为我们的引擎起了一个优雅的名字,白鹭引擎。寓意是像白鹭鸟一样优美、轻便,又是完全属于我们国产原创的作品。 在这很也许有些轻率的决定后,已经过了整整坚持七年的时间。现在回想起那个时刻,真的是感觉自己“初生牛犊不怕虎”,一脚踏入游戏引擎开发这个“无底洞”,在这个过程中经历了无数的波折,有位于事业顶峰的轻狂,也有被人质疑的困窘,在这七年里我亲眼见证了上百家公司使用白鹭引擎开发游戏日进斗金,也见证了许多研发同事因为开发白鹭引擎不如用白鹭引擎做游戏挣钱而被游戏公司高薪挖走。 尽管如此,作为白鹭的003号员工和白鹭引擎的作者,我仍然坚定的为我和我的团队感到自豪,因为前面还有更多的挑战和开创性的工作等着我们去探索。 三十而立,我的孩子也将在这两周出生,我相信再过十年后,我可以眉飞色舞的和他炫耀他老爸完成了一段令人羡慕的人生旅程。 王泽 |
相关文章
-
OMG发布APL参赛阵容:初心难改愁容/BT回归
0 02020-12-09 -
原创三国杀周年活动失初心?新活动又肝又氪,玩家渴望回到五年前
1 02020-12-07 -
三国杀周年活动失初心?新活动又肝又氪,玩家渴望回到五年前
4 02020-12-07 -
二十年经典初心不变,《灌篮高手》一周年见面会,BGM让人感动!_手游
1 02020-12-05 -
【雀魂】花寄女子寮大集合!!初心者麻将大合战!!
3 02020-12-04 -
Cocos 王哲:引擎十年,不忘初心
1 02020-12-01 -
[玩加专访]腾讯互动文娱用户平台部总监张皓:怀初心与酷爱
0 02020-11-30 -
《不思议迷宫》不忘初心定向越野攻略 通关图文教程
0 02020-11-30 -
不思议迷宫定向越野不忘初心怎么玩
2 02020-11-28 -
《不思议迷宫》最新不忘初心攻略 不忘初心怎么通关
2 02020-11-28 -
《不思议迷宫》定向越野不忘初心攻略 不忘初心定向越野完成技巧分享
3 02020-11-28 -
没有忘初心,方患上始终讲解瓶子连任2020腾讯游戏家盛典年度最具人气奖
0 02020-11-27 -
不思议迷宫不忘初心定向越野怎么过 不忘初心任务完成攻略
1 02020-11-27 -
不思议迷宫不忘初心定向越野攻略
1 02020-11-27 -
不思议迷宫不忘初心定向越野怎么过-不思议迷宫不忘初心定向越野通关攻略
3 02020-11-27 -
不思议迷宫不忘初心定向越野怎么做?不忘初心定向越野任务攻略[多图]
3 02020-11-27 -
不思议迷宫不忘初心定向越野怎么完成?定向越野不忘初心攻略[多图]
0 02020-11-27 -
梦幻西游时空忆初心活动时间-梦幻西游嘉年华时空忆初心活动玩法
4 02020-11-24 -
一梦江湖问初心外观介绍
2 02020-11-24 -
[赛前海报]KS.YTG:星斗年夜海,逐梦耕作;光影交错,没有忘初心。
4 02020-11-08 -
556鲁班大师拉两人反送自己小新初心蹲草击杀太乙夏洛特
13 02020-11-07 -
小胖持续输出击杀初心关羽姜子牙精准大招带走橘右京
5 02020-11-04 -
尽显环保初心不懈探索和对打造专业女性运动装备的极致追求_品牌
4 02020-11-03 -
FGO玩家因宇宙凛弃坑,为蘑菇的故事入坑,抽卡让人迷失初心?
8 02020-11-02 -
原创FGO玩家因宇宙凛弃坑,为蘑菇的故事入坑,抽卡让人迷失初心?
4 02020-11-02 -
初心狂铁河道埋伏瞬间开团西安WE迂回作战抢下暴君赢得团战
16 02020-10-30 -
初心猪八戒河道先行发难清凡瑶退无可退惨送人头
13 02020-10-30 -
初心老夫子闪大冒失开团RW侠果断反打0换4终结比赛
10 02020-10-28 -
初心之路|送你们去武汉,就要一个不少地接回来_刘明甫
4 02020-10-25 -
初心夏洛特一挑2被千世击杀神人关羽绕后助攻诗酒双杀
15 02020-10-22 -
火影忍者ol:初心在哪?
18 02020-10-20 -
cf惊天雷神初心怎么万化
6 02020-10-16 -
然然鲁班大师先手开团初心廉颇闪大深入敌后被击杀
11 02020-10-15 -
《千与千寻》:保持初心,找到那个“丢失的名字”_电影
4 02020-10-15 -
《贪玩蓝月》张馨予保持初心,面对挑战永不言退
5 02020-10-15 -
十年初心不改 许嵩献唱《新天龙八部》怀旧服主题曲
4 02020-10-12 -
CFM本阁:不要钱的源雷神初心强化弹道就不错了,还要啥属性
20 02020-10-09 -
幽默笑话:我现在有钱都不找到怎么花 有什么办法能让我找回初心吗_老公
6 02020-10-09 -
[里程碑]西安WE.初心告竣总助攻500造诣
9 02020-10-03 -
《热血传奇》经典20载:初心不改 热血不负
8 02020-09-29 -
《热血传奇》经典20载:初心不改热血不负_游戏
4 02020-09-29 -
556清线碰巧推回开团九尾初心吕布乘胜追击拿下双杀
19 02020-09-27 -
《时空猎人3》视频分享:初心重燃,青春再起,新的冒险在等你。
8 02020-09-25 -
[里程碑]西安WE.初心告竣总局数100造诣
5 02020-09-23 -
魔兽世界9.0重燃战火回归60级初心是否还在?
6 02020-09-22 -
初心归麓 镇守故海《阴阳师》全新CG登场!
2 02020-09-17 -
初心归麓 镇守故海《阴阳师》全新CG登场!
4 02020-09-16 -
《天天酷跑》七周年福利嗨翻,初心不改、携跑未来!
10 02020-09-14 -
[玩加出品]KS.YTG赛场数据清点:勿忘初心,越战越勇!
10 02020-09-12 -
[春季赛定妆照]杭州LGD年夜鹅:初心光彩,百战成名!
7 02020-09-10
234游戏网站地图
子站导航 |
|||