欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

当前诸多大公司活动页很多都是用游戏引擎做的,请问这种技术选型和普通DOM操作+CSS3相比有何优点?

程序员文章站 2022-05-13 16:46:00
...
比如大众点评活动页 选择吧,人生!
腾讯活动页 生命之下,想象之上

回复内容:

大众点评的那个页面用的是 白鹭引擎 - Egret Engine-免费开源HTML5游戏引擎 ,而腾讯的那个使用的是 CreateJS | A suite of Javascript libraries and tools designed for working with HTML5

白鹭是标准的国货精品,前期创始者主要是 Adobe 的员工,现在已有资本介入;CreateJS则是 Grant Skinner 所做,Flash 界的著名人物。

这两个引擎,还都是和 Adobe 有关系啊……可怜的 Flash。

感慨完毕,说说我的感觉。

作为引擎,提供的功能更完善。例如音频播放、tween效果、资源载入管理、良好的 API 封装等等。题主所说的两个页面,操作上相对复杂,都提供了音频播放以及各种特效,使用现成的引擎可以大幅减少开发的工作量。

另外,这些引擎都考虑了移动端支持。

而自己用 DOM+CSS+JS 手写,可能就要麻烦一些了。 操作dom基本都花费cpu,引擎就基本消耗gpu,js由于是单线程,对cpu开销比较大,所以引擎的优势不言而喻 从工具上讲,游戏引擎有编辑器,工作可能简单到导入素材、设置关键帧、调整参数,设计师都可以做;但用传统方式开发,要有许多 HTML/CSS/JS 的代码需要工程师来写和调试。

从技术上将,游戏引擎都会借助 Canvas/WebGL,性能和渲染效果要远远好于 DOM/SVG。(兼容性?做这种东西都会有 fallback 方案,放不了动画的,可以展示图片) DOM 和 Canvas 都无法使用手机的GPU渲染

游戏是一个通过体验来变现的产品,所以 体验 体验 体验 真的很重要 很重要

这就是为甚H5游戏要使用游戏引擎的原因,好的游戏引擎都是 WebGL 渲染,然后遇到无法使用 WebGL 的设备,自动会退到 Canvas 渲染。

好的游戏引擎比如 Cocos-JS , pixi.js 关于题主的问题,曾嵘已经说的比较清楚了。
纠正一点。
腾讯这个貌似是用flash cc做的,和做falsh动画完全一样,只不过是创建canvas工程。主要是设计师来做,需要用代码的地方很少,非常像AS1、AS2时代的flash开发方式,主要是做动画,然后需要交互的地方,在帧上写代码,最后发布。
白鹭那个看不到了,不知道是怎么做的。
因此,题主的理解可能有偏差,拿腾讯这个来说,虽然用到了游戏引擎CreateJs,但是几乎涉及不到编程,和DOM操作+CSS3没有可比性(应该是DOM+CSS+JS )。一个是设计师来做,一个是程序员来做,这个才是最大的优势。 主要区别在于canvas吧,多数引擎不是采用的css animation,而是canvas内实现动画。

DOM用在游戏这种大量频繁刷新的场景,怎么可能流畅。
多数HTML App性能瓶颈本身就在DOM渲染。

你可以尝试修改一个简单的canvas游戏到css动画,我敢打赌就目前的条件下,结果一定是惨不忍睹。

另外纯手工的开发难度也比较大:
当前诸多大公司活动页很多都是用游戏引擎做的,请问这种技术选型和普通DOM操作+CSS3相比有何优点?
比如这个,这么多spirit。换css该怎么做。我设想不出来。
见过的几个比如Bounce.js 还只是处理滑动效果,spirit不知道有没有框架支持。 优点不好说吧,使用的范围很广,各项技术各有各的优缺点,像layabox目前支持的canvas模式,试用于手机的应用,而dom+css模式,一般主要用来做pc网站,当然,之后laya肯定也会去支持dom+css3,这只是时间的问题。 cocos js才是真爱