【.com原稿】随着国内引擎开发技术的进步,2D游戏技术成为市场主流,正式拉开3D序幕游戏。白鹭时代CEO陈树义表示,白鹭时代自2014年成立以来,一直致力于提升HTML5游戏性能,提升游戏体验。但是,如果HTML5游戏没有统一的技术标准,内容创作就很难成功,开发引擎是必然的。从1.0到4.0,EgretEngine在开发效率、运行性能、资源加载等HTML5游戏开发面临的难题上做出了很多贡献。难点一、如何提高开发效率快速上线是开发者游戏开发效率最重要的环节。有时候游戏上线晚一个月就会错过最佳窗口期,快速上线可以给自己留出更多的时间调整游戏。为了提高开发效率,EgretEngine使用Canvas作为API,使用Typescript作为开发语言。为什么要使用画布?游戏开发需要非常丰富细腻的动画效果,而DOM根本做不到。这也是EgretEngine选择Canvas的原因。Canvas是HTML5新的API,同样可以实现更复杂的交互效果。为什么放弃了Dart、AS3、JavaScript,最终选择了TypeScript(以下简称TS)作为EgretEngine的开发语言?TS严格来说是JavaScript的超集,其语言设计与最新的JavaScript标准ES6非常一致。据白鹭引擎架构师王泽介绍,TS本身具有开源属性,即开发者可以更改其源代码。同时,TS的架构设计非常好,为开发者的进一步扩展提供了充足的API接口,例如实现编译器、自定义语法检查和自定义输出结构。不使用Dart、AS3、JavaScript作为开发语言的原因如下:1.首先,对于很多会以Dart形式使用JS或AS3的开发者来说(尤其是初学者,最大的群体),学习成本曲线比较陡峭。而谷歌是一家在技术上“过于”创新的公司。它遵循一个可能“一夜之间改变”的技术来生产一个产品,并将整个Egret工具和服务体系悬浮在其之上。的风险。2.AS3首先是一个封闭的语言,Flash团队已经放弃了从AS3到AS4,从AVM2到AVM3的项目,所以ES6的新特性无法使用。虽然有些遗憾,但最终没有选择AS3。3.JavaScript是弱类型,会导致游戏开发效率低,维护难度大。代码越写越乱,写的越多。选择TS的原因有两点,一是2014年初,中国有近30万的Flash开发者,其中90%是游戏相关的。这是一个有价值的开发者社区组。并且理解力远远超过任何使用其他网页前端技术制作网页游戏的群体。Egret使用TS,一方面让JS游戏开发者更加得心应手,另一方面也积极拉拢FlashAS3开发群体。EgretEngine与FlashAS3API设计比较之二:EgretEngine基于Canvas,使用TS封装了一些对游戏有帮助的FlashActionScript3.0的API结构设计。上图是EgretEngine和FlashAS3在API设计上的对比。可以看出两者的设计几乎一致,方便AS3开发者直接上手,从而保证了HTML5游戏的开发效率。一站式HTML5游戏开发流程如上图所示。除了以上两点,Egret还推出了一系列辅助工具,进一步提升开发者的开发效率,最终打造出全球首个HTML5完整工作流。提供从代码开发、UI构建、资源管理、粒子效果等一站式HTML5游戏开发工作流程,大大提高HTML5游戏开发效率。难点二:如何在游戏性能上满足CP游戏性能一直是CP关注的重点。这部分EgretEngine在引用WebGL技术的同时,还自主研发了dirtyrectangle技术。如上图,脏矩形渲染是一种基于显示列表的局部刷新方式。还是要有一个时钟频率,计时每秒执行60次。但不同的是,我们并不是每次都直接清空整个屏幕,而是先计算屏幕上发生变化的区域,这里我们称之为重绘区域,然后只清空指定的重绘区域,找出所有显示与这个区域相交的对象再次重绘。如果这次显示列表没有变化,那么这张图就直接跳过,只有24帧没有用到dirtyrectangle。使用dirtyrectangle后,可以达到60帧的完整运行。如上图所示,WebGL技术极大地提升了游戏性能。早在2014年,EgretEra就计划支持WebGL,但当时根据webglstats.com的统计,发现当时WebGL的支持率还不到40%,所以只能先入手当时的画布。但是我们看到,到2016年底,WebGL的支持率已经达到了90%以上。并且得益于微信X5浏览服务,国内支持率基本达到了100%。令人欣喜的是,此时《决战沙城 H5》使用白鹭引擎WebGL技术取得了月流水过千万的好成绩。如上图所示,除了上述两种技术外,EgretEngine还提供了一种名为EgretRuntimes的解决方案来提高HTML5游戏的运行效率。在提升HTML5游戏运行性能的同时,也解决了移动设备的兼容性问题。EgretRuntime是一个加速器组件。可实现游戏运行加速和频道访问加速。它还可以作为扩展模块无缝嵌入到浏览器或移动设备上的其他应用程序中。游戏开发者可以忽略不同操作系统、不同浏览器、不同终端之间的差异,让HTML5游戏以接近原生的性能高效运行在用户移动终端上;渠道接入商可以简化繁琐的游戏接入流程,实现EgretRuntime接入,随时发布HTML5游戏的高效接入。难点三:资源加载的问题是根据国内现有的网络情况,还要考虑游戏资源的加载速度。如上图所示,根据中国移动的用户数据,2014年2月4G用户数不足1000万,用户手机网络状况太差。针对这一现象,白鹭引擎内置了对文献收藏的支持,并引入了全新的资源管理框架。Egret引擎内置了对纹理集的支持,并提供了配套的工具TextureMerger。在2014年的网络环境中,资源大小每减少1kb就意味着用户流失略有减少。纹理集的名字听起来很高大上,但概念很简单。纹理集实际上是将一些零散的小图像拼接成一个大图像。纹理集也经常用于游戏中。使用纹理集有很多好处。我们通过将大量图像组合成一张图像来减少网络请求。原来需要多次加载的图片资源,现在可以一次加载。同时,引擎渲染时的IO读取会更少,从而提升性能。纹理集甚至可以将资产大小减半。最近发布的EgretEngine4.0引入了全新的资源管理框架,包括版本控制和热更新功能,允许资源针对不同平台发布,加载量降低30%。Egret引擎的现状与未来挑战在Egret最新发布的引擎4.0版本中,围绕用户在H5游戏开发过程中遇到的三个核心问题:“运行效率”、“开发效率”、“网络”进行了升级。加载效率”。在H53D游戏方面,白鹭已经成功迈出了第一步,但未来还有很长的路要走。EgretEngine4.0全新的Egret3D,无论是功能还是性能,以及配套的IDE和插件系统,都可以助力CP制作重度3DH5游戏。据白鹭首席架构师王泽介绍,白鹭3D引擎不仅可以帮助中小型研发团队完成2D和简单的光3D作品,其独特的高品质Lightmap烘焙方案提升了3D游戏的视觉门槛,完美呈现大而重的游戏体验。【原创稿件,合作网站转载请注明原作者和出处为.com】
