本文来自微信公众号【硬核玩具】
如果大家对编程、游戏开发感兴趣请关注本公众号,大家一起探讨。更多精彩往期内容在这里:
#编程# 小游戏与神经网络AI的结合初试(二)Cocos小游戏
白鹭引擎(Egret)难以为继的事情可能最近你已经有所耳闻,如果作为游戏开发者你还不知道的话,请看这里:
白鹭引擎,确实很久没更新了,关于他的发展状态,使用过他的人都隐隐能感觉到这里面可能有问题,而这两天,终于靴子落地。我们主要从技术的角度来看看到底是谁射落了白鹭?
首先一个背景是,白鹭引擎其实和另两个对手Laya和Cocos Creator都是做H5小游戏为主的。为什么这次是白鹭?笔者认为,乍看起来三者有很高的重合度,并且使用者也往往能轻易的在这三个引擎中进行切换,只要会一个,上手另一个并不算难。但从技术的角度细看还是会发现他们有一些本质的不同,特别是你要做射击、动作类游戏,需要编辑物理刚体效果的时候。他们开发的差异是巨大的。
具体的,白鹭引擎相比Laya和Cocos Creator来说,缺乏组件化编程的能力。何为组件化?就是可以给场景中的对象添加组件的能力,特别是这个组件可以是代码组件,这样就可以给场景的对象赋予挂载脚本的功能。可别小看了这个功能,往往一个游戏关卡的编辑难度就是关键在这里。
Cocos Creator和Laya都有给对象挂载脚本的功能
假设你要开发一款动作射击游戏,在Laya和Cocos里面你可以轻松的编辑各种物理的刚体,给场景里面的角色挂载不同的控制器脚本,里面角色的数值属性,也可以从脚本里面定义,然后实时的显示在编辑器界面上,你要调节怪物的血量之类的,可以直接在编辑器里面调整,然后一件编译,马上看效果。如果要调整,也可以直观的去修改。
而如果你使用白鹭引擎,那么这些扩展、自定义编辑器,挂载脚本的功能就没有了,你也无法直观的编辑物理刚体。这一切都只能靠自己写工具或是根本就完成不了。
白鹭引擎和Laya、Cocos的差异,从他们各自官网的案例游戏就能看出来,白鹭引擎开发的大多数都是“传奇”类的页游,就是假战斗的RPG游戏,如果你不懂这是什么,我一句话说明:就是自动打怪,自动寻路,靠开箱子升级的游戏。而打怪也不是真打怪,而是根据你的角色属性,服务器给出一个数值。而游戏里的各种战斗,其实就是播放一个动画。并不需要靠你的反应、操作。所有呈现的东西都是服务器返回结果。
而Laya和Cocos既可以开发这种“传奇”类RPG页游,也可以方便的开发各种物理、动作射击游戏。这种技术上的差异在这两年游戏版号问题和监管的加强的背景下,显现出了不同的发展结果。
白鹭官网的案例大多是这种游戏
Laya官网的案例大多数是这种游戏
插一句题外话,笔者我对白鹭引擎中实现“自定义组件化”开发也有一个特别的思路。如下图,这是Egret 的UI Editor。虽然不能扩展编辑器,但我想出了一个在舞台对象上增加一个Label组件,组件里面可以写上你需要实时编辑预览的各种数值属性。然后在代码里面去获取他们,从而改变状态和数值。这样代码里面可以在运行的时候把这些Label隐藏起来。也算是一种组件化的尝试吧。
从上面的技术分析来看,的确Egret适合开发的游戏类型毕竟窄,而“传奇”页游RPG类型游戏一般都靠充值来赚钱,而充值功能需要版号,这种游戏又被监管的很严格。从源头来说,Egret本来就是Adobe flash团队中的一部分人出来协助打造的,而诞生之初,Egret就参考了Adobe Flex架构,而Flex其实是Adobe公司参考了Java的企业级前端开发框架打造的。它天生适合开发应用软件。游戏开发用这样的架构,并不适合所有的游戏类型。
其实Egret在2018年走下坡路以后还是有很多自救的动作,对3D的支持,对组件化开发的支持其实都有在尝试,比如推出的未完成的Egret Pro等等,但时间已经来不及了。大环境的因素造成了这种无法转身的困境。时代的一粒灰,落到个人头上都是一座山。也说明传奇RPG页游这种类型的游戏已经没有存活的土壤了,消亡是必然的。
来源——白鹭官网
传奇类RPG页游,开发的人觉得垃圾(至少我周围所有人都是)、玩的人也觉得垃圾、各种监管部门和网络社区都觉得是垃圾。靠着放大人性中攀比、斗狠、赌博的弱点来驱动玩家充值;一套代码框架,不断换皮来开发、运营的模式,本来就不健康。大环境变化,未来的路可能会越来越窄。(当然这种游戏也许出海,赚其他文娱业落后国家的钱倒也是可行的)
另外所谓的监管和无端停发版号等等动作,也让一大批优秀的、健康的游戏受到了影响。也让不少资本抽离、出逃。这造成的损失难以估量,游戏业乃至整个互联网行业莫不如此。人人都在感叹“大环境”的无穷威力,面对这种困境,转型和出海是一个好的选择。
更多关于游戏、编程的内容,还请订阅本公众号【硬核玩具】