首页 > 前端开发 > 正文

egret和web前端开发哪个好 如何看待 HTML5 开源游戏引擎 Egret,HTML5 游戏开发的前景如何

2023-10-18 10:00:11 | 我爱编程网

今天我爱编程网小编为大家带来了egret和web前端开发哪个好 如何看待 HTML5 开源游戏引擎 Egret,HTML5 游戏开发的前景如何,希望能帮助到大家,一起来看看吧!

egret和web前端开发哪个好 如何看待 HTML5 开源游戏引擎 Egret,HTML5 游戏开发的前景如何

本文目录一览:

egret和web前端开发哪个好 如何看待 HTML5 开源游戏引擎 Egret,HTML5 游戏开发的前景如何

前端和后端的区别是什么?

前端开发 主要做的是用户所能看到的前端展示界面;后端开发主要做的是逻辑功能等模块。其实主要区别体现在以下两个方面:知识结构与实现和 工作职责 。

1、知识结构

(1)展示的方式不同

前端指的是用户可见的界面,网站前端页面也就是网页的页面开发,比如网页上的特效、布局、图片、视频,音频等内容。前端的工作内容就是将美工设计的效果图的设计成浏览器可以运行的网页,并配合后端做网页的数据显示和交互等可视方面的工作内容。

后端是指用户看不见的东西,通常是与 前端工程师 进行数据交互及网站数据的保存和读取,相对来说后端涉及到的逻辑代码比前端要多的多,后端考虑的是底层业务逻辑的实现,平台的稳定性与性能等。

(2)所用的技术、技能与工具不同

前端开发,就是要创造上面提到的网站面向用户的部分背后的代码,并通过建立框架,构建沉浸性的 用户体验 。为了实现这个目标,开发需要熟练运用下列语言、框架、工具库:

后端开发者使用这些工具编写干净、可移植、具有良好文档支持的代码来创建或更新 Web应用。但在写代码之前,他们需要与客户沟通,了解其实际需求并转化为技术目标,制定最有效且精简的方案来进行实现。

(3)所用技术不同

前端开发用到的技术包括但不限于html5、css3、javascript、jquery、Bootstrap、Node.js 、Webpack,AngularJs,ReactJs,VueJs等技术。

后端开发 以java为例 主要用到的 是包括但不限于Struts spring springmvc Hibernate Http协议 Servlet Tomcat服务器等技术。

2、工作职责

前端工程师主要的工作职责分为三大部分,分别是传统的Web前端开发,移动端开发和大数据呈现端开发。Web前端开发主要针对的是PC端开发任务;

移动端开发则包括Android开发、iOS开发和各种 小程序 开发,在 移动互联网 迅速发展的带动下,移动端的开发任务量是比较大的,随着 5G标准 的落地,未来移动端的开发任务将得到进一步的拓展;大数据呈现则主要是基于已有的平台完成最终分析结果的呈现,呈现方式通常也有多种选择,比如大屏展示等。

后端工程师 的主要职责也集中在三大部分,分别是平台设计、接口设计和功能实现。平台设计主要是搭建后端的支撑服务容器;接口设计主要针对于不同行业进行相应的功能接口设计,通常一个平台有多套接口,就像卫星导航平台设有民用和军用两套接口一样;功能实现则是完成具体的业务逻辑实现。

扩展资料

前端和后端的应用范围

1、PC (Personal Computer) 即个人电脑。

目前电脑端仍是前端一个主要的领域,主要分为面向大众的各类网站,如新闻媒体、社交、电商、论坛等和面向管理员的各种 CMS ( 内容管理系统 )和其它的 后台管理系统 。

2、Web App 是指使用 Web 开发技术,实现的有较好用户体验的 Web 应用程序 。

它是运行在手机和桌面端浏览中,随着移动端网络速度的提升,Web App 为我们提供了很大的便利。此外近两年 Google 提出了一种新的 Web App 形态,即 PWA(渐进增强 Web APP) 。

3、WeChat (微信) 这个平台,拥有大量的用户群体,因此它也是我们前端开发另一个重要的领域。微信的公众号与订阅号为 市场营销 和自媒体从业者,打造了一个新的天地。

4、Hybrid App (混合应用) 是指介于 Web App、原生 App (主要是 Android 或 iOS )之间的 App,它兼具原生 App 良好用户交互体验的优势和 Web App 跨平台开发的优势。

5、Game(游戏),HTML5 游戏从 2014 年 Egret 引擎开发的神经猫引爆 朋友圈 之后,就开始一发不可收拾。不过现在游戏开发变得越来越复杂,需要制作各种炫丽炫丽的效果,还要制作各炫丽于 2D 或者 3D 的场景。

6、Desktop桌面应用软件,就是我们日常生活中电脑中安装的各类软件。早期要开发桌面应用程序,就需要有专门的语言 UI (界面) 库支持,如 C++ 中的 Qt 库、MFC 库,Java 的 Swing、Python 的 PyQT 等,否则语言是没办法进行快速界面开发。

7、Server Node.js 一发布,立刻在前端工程师中引起了轩然大波,前端工程师们几乎立刻对这一项技术表露出了相当大的热情和期待。看到 Node.js 这个名字,初学者可能会误以为这是一个 Java 应用,事实上,Node.js 采用 C++ 语言编写而成,是一个 Java 的运行环境。

egret和web前端开发哪个好 如何看待 HTML5 开源游戏引擎 Egret,HTML5 游戏开发的前景如何

如何快速开发一个小游戏?

如何快速开发一款火爆的小游戏?“火爆”是一个偏运营的词,在小游戏上线120天《微信开发者》公众号有一篇推文,其中有几个数字或许可以用来描述“火爆”这个词。截止微信小游戏正式允许第三方开发者发布已有22天,对外发布的小游戏达300多款,注册用户总规模过亿的游戏有数款,安卓月流水过千万的也有数款。

该文还提到与火爆相关的两个姿势。一是社交匹配度,在小游戏这样一个去中心化的大背景下,让游戏内容和微信社交相结合是一个很重要的点,同时开发者也需要在利用社交互动提升用户体验和群聊分享造成用户骚扰之间选择一个平衡点,过犹不及。第二是操作简便度,说的是游戏易上手操作简单。这是我们根据游戏成为爆款后观察得出的结论,并不是说具备这两个特性就一定能开发出一款火爆的游戏,并且新的爆款游戏也不一定符合这些特点,仅供参考。

如何快速开发一款火爆的小游戏?“火爆”是一个偏运营的词,在小游戏上线120天《微信开发者》公众号有一篇推文,其中有几个数字或许可以用来描述“火爆”这个词。截止微信小游戏正式允许第三方开发者发布已有22天,对外发布的小游戏达300多款,注册用户总规模过亿的游戏有数款,安卓月流水过千万的也有数款。

该文还提到与火爆相关的两个姿势。一是社交匹配度,在小游戏这样一个去中心化的大背景下,让游戏内容和微信社交相结合是一个很重要的点,同时开发者也需要在利用社交互动提升用户体验和群聊分享造成用户骚扰之间选择一个平衡点,过犹不及。第二是操作简便度,说的是游戏易上手操作简单。这是我们根据游戏成为爆款后观察得出的结论,并不是说具备这两个特性就一定能开发出一款火爆的游戏,并且新的爆款游戏也不一定符合这些特点,仅供参考。

今天介绍的内容更倾向于技术方面,所以“火爆”就从标题里面去掉了,并且也不会介绍具体的游戏逻辑如何开发,而是更偏向于如何利用好微信的开放能力开发一款小游戏。

什么是“小游戏”?小游戏是什么?

首先为大家介绍一下小游戏是什么。从普通用户的视角看,小游戏是小程序的一个子类目,可在微信内被便捷的获取和传播,即点即玩,具备出色的用户体验。小游戏是小程序,普通用户分不清也无需分清。

小游戏Runtime

如果放大小游戏的Runtime可以看到很多的细节,这是一个典型的分层架构:

最上层蓝色部分,是游戏代码,分为游戏逻辑,游戏引擎、weapp-adapter三部分。大部分游戏开发会用到一些引擎的工具、工作流,以及利用引擎封装的高层API去实现游戏逻辑。其次是weapp-adapter,因为小游戏的底层一方面不是webview,可以简单看成是webview经过精简、优化过后的平台;另一方面核心能力的实现上却参考了webview。所以这里如果有一个适配器,把小游戏的底层API——wxAPI适配到一个接近webview的接口,对上层引擎、已存在的游戏接入微信小游戏平台则会更加容易,这个就是weapp-adapter的作用。其中只有游戏逻辑是必要的。

可以看到,在架构上小游戏和小程序是有差别的,小游戏没有页面概念的,wxss/wxml不再存在。其次,底层实现也不是webview,小游戏和webview的关系只能说是渲染相关的核心能力可以通过weapp-adapter的简单适配保持接口一致,但同时很多webview上存在的功能并没有对等的实现,比如小游戏就没有DOM/BOM的概念,也没有全局的document/window对象。

小游戏的入口为gamejs文件,语言为Javascript,但有一些限制,比如禁止执行动态代码,因此eval、newFunction等能力是不支持的。配置为game.json,可以配置横竖屏、接口超时等参数。js里面可以组合wxAPI的能力来实现游戏逻辑,非代码类的资源应该尽量放到cdn,减少整个代码包打包后的大小,以加快用户首次进入时的速度,微信对首包的大小目前限制为4MB。

WebviewAdapter

下面来说一下WebviewAdapter,它的初衷是为了让游戏开发者更好地熟悉我们的平台,所以我们的平台在能力上会尽可能地与webview做一些适配,其实这个适配也是很简单的一层。比如说我们在浏览器里面使用image对象创建一个图片,而在小游戏里是通过wx.createimage来创建的,在代码中需要做一个简单的适配。

以此类推,常见的Canvas、document对象都是在Adapter中通过一个简单的适配实现的,大家可以研究链接中的代码。之后官方不会继续维护这个Adapter,我们会更专注于底层能力的建设。

小游戏能力概览

下图是小游戏能力的概览,小游戏能力的迭代比较快,部分能力还没有来得及罗列出来。比如最近刚发布的游戏圈、健康系统防沉迷相关的一些接口。

我们先看一下基础能力,在渲染这部分WebGL1.0和Canvas2D都是支持的,这里的Canvas更接近于浏览器里面的标准。同时,这里提到的可控帧率的概念,如果小游戏在后台运行的话,可以尽量将帧率降低。

在多媒体部分,小游戏还不能像小程序一样实现实时的音频视频流,这是我们在后续要进一步支持的。网络IO的部分与小程序也是类似的,我们也提供了一些UI的组件,比如说拉起键盘,模态对话框等。

小游戏的社交开放能力现在已经对外了。其中最重要的一个能力是在开放域将微信的好友关系开放出去,给开发者使用,考虑到对用户隐私的保护会有一些设计上的限制。

因为小游戏去中心化的特点,分享这一部分也是非常重要的,开发者要考虑如何将这个能力利用起来。在代码方面,因为首包限制是4MB,但部分小游戏的代码量可能比较大。我们最近也在规划一个分包的能力,允许异步加载代码并执行,但这个代码是一定要经过我们审核的。

如何开发一款小游戏?

那么如何开发一款小游戏?因为我本人也只是开发过一些简单的游戏,并不是专业进行游戏开发,所以接下来我会更多地介绍一下如何利用微信的能力来开发小游戏。

选择小游戏引擎

微信跟引擎商也有比较密切的合作,一般现在的游戏引擎都会支持发布到多个平台,对微信小游戏这个新平台而言,已经有一部分引擎做了适配,比如CocosCreator、EgretEngine以及LayAirEngine。适配的主要工作,类似之前提到的weapp-adapter,把wxAPI的能力,和引擎衔接起来。

比如引擎一般会把小游戏平台和webview平台对标,适配过程就是把wxAPI对应到webview的能力,同时把只存在于webview能力的依赖去除,比如不再依赖BOM、DOM。已适配的引擎都有相应的文章介绍如何把游戏发布到微信小游戏平台。

设备/环境适配

小游戏会有API提供获取屏幕的宽高、设备像素比等能力。小游戏开发完成后,在开发者工具也可以发起真机测试的请求,微信提供了不同设备的测试集群,帮助开发者提前去发现问题。基础库提供的wxAPI本身是一个不断迭代更新的过程,对于使用了新能力的小游戏,需要做低版本兼容。

微信登录

小游戏的登录过程,跟小程序是类似的。需要用户自己去定义登录状态。appsecret/session_key代表的是小游戏开发者和微信平台之间的一种信任约定,比如支付、上报托管数据,平台方需要验证access_token(只有appsecret才能换得到),和用户相关的还要验证session_key的签名,才能保证请求来自于小游戏开发者/用户,而不是恶意的第三方和随意捏造的用户。

access_token是一种应用态的access_token,和用户无关,需要保证全局维护一份,应该有一个中控的模块去保证access_token有效,同时在有效期内直接使用本地cache的access_token,而不是每次使用都去生成新的access_token,否则可能遇到调用频率限制的错误而影响服务。切记appsecret/session_key不要放到前端代码中去,否则可能会被坏人利用损坏小游戏开发者/用户的权益。 我爱编程网

缓存

缓存类型包括数据缓存和文件缓存两类。数据缓存即key-value存储,适合结构化类型的小数据存储,上限为10MB。文件缓存提供了一个完整的文件系统API,包括目录/文件的增删改读,适合针对经常使用的网络资源做本地缓存,上限是50MB。

和浏览器不同的是,微信只提供了基本的存储管理能力,并不对存储什么,和存储满时删除什么做一些操作。开发者自行灵活定义缓存以及淘汰策略,比如对经常访问的资源存储到文件系统以及在文件存储满时,清理一些最近不常访问的文件。

开放数据域

开放数据域是一个封闭、独立的JavaScript作用域,和执行游戏逻辑的环境——称为“主域”隔离。其目的是在保证用户隐私的前提下开放用户数据给第三方,提升小游戏的整体用户体验。以下为物理视图,主域的入口为game.js,开放数据域则是一个独立的目录,其入口文件为index.js。

主域和开放数据域的通信受到严格的管制,基本原则是只进不“出”。

?只进:允许外部的数据进入开放数据域,即主域可以随时postMessage到开放域,以及开放域引用主域准备好的本地资源

?不“出”:不允许开放数据域的数据被上传到第三方服务器去。因为开放数据域里面,index.js是可以直接访问到用户敏感数据的,比如同玩好友数据。当然最终开放数据域需要index.js在综合各种数据后把数据以图形图像的方式渲染到sharedCanvas上,在主语sharedCanvas允许draw到主域的上屏Canvas上,最终用户会在显示屏上看到game.js画出来的好友排行榜、群排行榜或好友超越等社交互动信息。

在开发数据域中的数据,开发者没法把数据拿出去和游戏数据做关联,所以如果需要在开放域下展示的游戏数据,比如分数,开发者需要将该数据通过上报接口把游戏数据托管到平台。这样就可以在开发数据域里面就取到相关数据,其应用场景有好友排行、群排行榜、超越好友提示等。

分享

包括自定义分享和系统菜单分享,可以分享到群聊、单聊。也可以把分享上下文与特定的群关联,实现一些群PK、群排行榜的场景。分享是一把双刃剑,需要谨慎使用,一方面避免过度骚扰用户/群聊,另一方面增强社交互动提供好的游戏体验,需要找到一个合适的平衡点。

支付

小游戏在安卓下支持虚拟支付,它的方式目前只有一种:即货币托管的方式。主要分为2个流程:

1.充值:RMB->游戏币,这里开发者只需要拉起支付的流程,平台负责把用户RMB兑换成对应的游戏币,存储到用户对应的游戏帐号上

2.使用游戏币购买道具:开发者可以扣除对应的游戏币,给用户发放游戏内道具,扣除游戏币的过程需要有一定的事务机制,去保证在网络异常的情况下交易正常。扣除游戏币的接口支持根据订单id去重,意味着网络超时等情况下,开发者可用同样的订单id去重试扣除,直至返回明确的响应。

以下为简单时序图,部分角色针对开发者无需关心的部分做了相应简化处理:

性能

小游戏常见的性能问题,一般是内存造成的。如果内存占用太多会被微信客户端主动关闭,因此开发者在用户游戏过程中要及时释放不再使用的内存(js代码去除引用,或主动调用对应资源的释放接口,如果有的话),特别是Canvas和Image类大型对象,同时可以主动调用wx.triggerGC触发底层回收对应资源。

对于和游戏逻辑相对独立的工作,可以考虑在worker中去实现,小游戏提供了独立的worker线程执行js逻辑的能力。

版本更新机制

小游戏启动的过程分为冷启动和热启动。冷启动是指内存中无该小游戏的运行实例的情况下,启动小游戏的过程;热启动是指小游戏的运行实例在内存中还存在,只是暂时切换到了后台,这时用户再次触发小游戏回到前台的过程。

小游戏会在冷启动时检查小游戏的版本,如有新版本,在下载回本地后,下一次冷启动即可使用最新版。当然,我们也提供了API可以供开发者决策在有版本可用时,是否需要强制更新。

运维

特别提醒,小游戏有完善的后端监控,可以通过“运维中心”开启,比如脚本错误监控。脚本错误主要由运行过程中未捕获的异常触发,需要重点关注。该类异常,可能会导致用户小游戏前端的js逻辑暂停执行。

同时,平台也提供了完善的数据分析服务,可以通过“小游戏数据助手”进行数据分析。

如何看待 HTML5 开源游戏引擎 Egret,HTML5 游戏开发的前景如何

说H5移动游戏也好,说Web移动游戏也好,说用脚本开发native也好,工作流齐全了,这些还算是问题么?

我自己作为Egret的技术管理人,在我10多年的职业生涯里,信奉这么几句话:

1. 永远不要基于现在去假设未来。

2. 永远不要尝试用一个成功打败另一个成功。

3. 预测未来的最好方式就是创造未来。

4. 就是干!

以上就是我爱编程网整理的egret和web前端开发哪个好 如何看待 HTML5 开源游戏引擎 Egret,HTML5 游戏开发的前景如何相关内容,想要了解更多信息,敬请查阅我爱编程网。
与“egret和web前端开发哪个好 如何看待 HTML5 开源游戏引擎 Egret,HTML5 游戏开发的前景如何”相关推荐
Web前端开发转游戏开发 web前端使用HTML5开发游戏的好处有哪些
Web前端开发转游戏开发 web前端使用HTML5开发游戏的好处有哪些

学习web前端能做游戏开发吗?可以的。前端技术包括JavaScript、ActionScript、CSS、xHTML、AdobeAIR、GoogleGears等“传统”技术,概念强的交互设计,艺术性强的视觉设计等。一般来说,你平时使用的手机应用和你玩的web游戏都属于Web前端开发领域。理解网络前端人才所需要的技术,我们就能明白学习网络前端人才的就业方向:1.高级网络前

2023-09-09 23:32:28
web前端开发做游戏好吗 web前端就业前景如何?
web前端开发做游戏好吗 web前端就业前景如何?

学习web前端能做游戏开发吗?可以的。前端技术包括JavaScript、ActionScript、CSS、xHTML、AdobeAIR、GoogleGears等“传统”技术,概念强的交互设计,艺术性强的视觉设计等。一般来说,你平时使用的手机应用和你玩的web游戏都属于Web前端开发领域。理解网络前端人才所需要的技术,我们就能明白学习网络前端人才的就业方向:1.高级网络前

2023-09-30 23:46:55
适合做游戏的PHP框架 PHP如何开发游戏?
适合做游戏的PHP框架 PHP如何开发游戏?

如何选择游戏服务器php框架?我跟你讲用PHP作为游戏服务器的话,就不得不提比较火的SwooleSwoole可用来开发PHP的高性能高并发TCP/UDPServer。业务逻辑部分使用多进程同步阻塞方式来运行。这样既保证了Server能够应对高并发和大量TCP连接。又保证业务代码仍然可以简单的编写。PHP+Swoole创建Websocket服务,用户的所有操作通过Websocke

2023-10-03 01:32:45
web前端如何开发游戏 如何入门Web前端开发呢?
web前端如何开发游戏 如何入门Web前端开发呢?

学习web前端能做游戏开发吗?能。游戏开发分为营销类或休闲类小游戏开发(如:微信小程序中的飞机大战)和大型游戏开发(如:王者荣耀),游戏开发是在编程领域中和前端并驾齐驱的开发类岗位,只不过游戏开发的复杂度要远远高于前端开发,大型游戏的后端通常是C/C++来实现,大型游戏的前端大部分使用的是Unity3d,它的主要语言是C#,小游戏也可以使用前端技术中的Canvas和WebGL来开发,或者是微

2023-09-13 17:27:40
如何学web前端游戏开发 如何学习web前端开发?
如何学web前端游戏开发 如何学习web前端开发?

如何学习web前端开发?前端开发可以自学,也可以选择口碑好、信誉佳的机构学。互联网的发展带动了多种行业的发展,Web前端在互联网行业也发挥着越来越重要的作用。Web前端开发不仅在形式、内容和功能上也有了极大的丰富,而且对前端开发人员的要求越来越高。web全栈工程师5.0课程学习内容包括:①计算机基础以及PS基础②前端开发基础(HTML5开发、JavaScript

2023-10-02 18:02:09
学web前端和游戏开发 游戏开发和网站前端开发,哪个难学
学web前端和游戏开发 游戏开发和网站前端开发,哪个难学

游戏开发和网站前端开发,哪个难学这个应该是游戏开发比较难吧。游戏开发可能涉及到一些计算机基础语言的东西,然后要熟悉一些框架以及软件,并且对游戏3d建模要比较敏感,这方面比较难。网站前端其实也就是网站的额UI设计,这个也难,相对于游戏开发来讲,比较简单,主要是记住比较多的代码,这个应该也不难,因为长期写代码,这些都不是事情。另外我觉得在选择的时候,要根据自己的能力,结合自己

2023-10-04 15:37:49
游戏前端开发还是web前端开发 游戏开发和网站前端开发,哪个难学
游戏前端开发还是web前端开发 游戏开发和网站前端开发,哪个难学

前端开发和web前端开发的区别前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互[1]。它从网页制作演变而来,名称上有很明显的时代特征。在互联网的演化进程中,网页制作是Web1.0时代的产物,早期网站主要内容都是静态,以图片和文字为主,用户使用网站的行为也以

2023-09-09 20:22:16
php游戏框架 如何选择游戏服务器php框架?
php游戏框架 如何选择游戏服务器php框架?

php的开发框架是什么php的开发框架是什么?下面为您详细介绍。框架是通过提供一个开发Web程序的基本架构,PHP开发框架就是一种搭建好了的PHP的基本架构。它能够促进快速软件开发(RAD),为我们节约时间,有助于创建更稳定的程序,并减少开发者的重复编写代码的劳动,让我们可以花更多的时间去创造真正的Web程序。拓展:四种主流框架ThinkPHPThinkPHP(FCS)是

2023-08-26 00:34:07