HTML5游戏引擎(一)-egret引擎简介——一个开源免费的游戏框架

为什么

  • 游戏行业发展迅速, 给程序员提供了大量就业 (斗鱼, 微派, 腾讯, 蓝月, 网易 等等)
  • 游戏开发薪资普遍比较高 (王者荣耀 , 蓝月)
  • 游戏已经普遍被大众所认可,并且发展成一种竞技体育

学习目标

  • 重点学习Egret
  • Typescrit 语法学习
  • 一笔带过Cocos2d-x

Egret跨平台,入手容易,性能较好,更新频繁,辅助开发工具较多,团队合作更加得心应手。

Cocos2d-x 最开始的时候主打跨平台使用C++开发较多, 后来才兼容的js。虽然发展的时间很长,但是BUG偏多,性能不如Egret。

历史总是向前发展的,cocos2D 和 Egret就好比angular1 和 React,我们总是选择思想更先进,社区更繁荣的框架。

第一章 Egret简介

何为HTML5游戏?

仿CF枪战h5网页游戏——http://localwar.xidayun.com/

技术角度

从早期的像素的游戏( 俄罗斯方块 ),到小霸王游戏机(魂斗罗),到2D游戏 ( 传奇, DNF, 冒险岛, LOL ),3D游戏 (CF, 吃鸡)。玩家越来越被精美的画面,精美的特效所吸引。

传统的游戏绝大多数使用C++编写完成,借助GPU来提升游戏画面的品质和渲染性能。很多游戏都会依赖于游戏引擎开发。

  • Creation引擎,代表作:《上古卷轴5:天际》和《辐射》
  • Unreal Engine(虚幻引擎),代表作:《战争机器》,《绝地求生》等等
  • Frostbite Engine(寒霜引擎),代表作:《荣誉勋章》和《战地》。

这些游戏都运行在各自的平台上,比如: ps4, switch, windows PC等等。

而HTML5可以让游戏运行在浏览器。

特点:

  • 跨平台 (pc, 安卓, ios)
  • 点开即玩,适合小快灵的游戏 ( 跳一跳, 斗地主, 麻将 等 )
  • 画质和体验不及传统游戏(性能, 加载速度, 画质)

非技术角度

传统游戏需要exe文件进行解压安装,或者 买光盘进行游戏。

但是html5游戏,你只需要得到一个URL地址就可以愉快的进行游戏了。

为什么需要游戏引擎?

几年前,很多前端开发者尝试使用Canvas来制作游戏,甚至有的开发者使用DIV来开发游戏,体验可想而知。

因为在当时并没有一款真正意义上的游戏引擎,很多的所谓的"HTML5游戏引擎", 实际上仅仅是一个渲染框架。

真正的游戏需要考虑很多问题:

  • 渲染
  • 网络 (延迟)
  • 音频
  • 碰撞检测

而Egret提供了大量的工具帮我们解决这些问题。

Egret介绍

egret官网——https://www.egret.com/

cocos官网——https://www.cocos.com/

Egret引擎是一个开源免费的游戏框架,用于构建二维游戏、演示程序和其他图形界面交互应用等。Egret使用TypeScript脚本语言开发。当游戏完成最终的打包后,可以将程序转换为HTML5游戏。实现跨平台特性。

Egret不仅仅是一个基于HTML5技术的游戏引擎,我们的产品线中除了Egret引擎还提供了很多辅助游戏开发的工具。**准确的来说,Egret是一套游戏开发的解决方案。**你可以使用Egret引擎来帮助你开发HTML5游戏,并运行在手机和PC端的浏览器中,同时也你可以使用Egret提供的相关工具搭建你自己的游戏开发工作流。

开源免费

基于BSD开源协议的Egret引擎,可以自由的使用Egret来创作自己的游戏。

1.BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由
的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

2.Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样
鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足
的条件也和BSD类似。

3.GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代
码)GPL协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。(代表: linux)

优秀的设计思想

Egret的设计思想大量借鉴了优秀的2D动画软件Flash的一些设计思想。在引擎的设计中,Egret底层使用了弹性跑道模型,显示列表,脏矩阵,事件模型等技术。在这些技术基础之上,我们封装了对用户极为友好的API。开发者在开发游戏时,无需考虑底层渲染逻辑,只关心游戏逻辑即可。

高效的渲染模块

在图形图像渲染中,Egret完全使用HTML5标准中的canvas技术。极大程度上保证了使用Egret引擎开发的游戏在各个浏览器上的兼容性。同时,为了给玩家更好的游戏体验,我们不仅仅提供了CPU渲染,还提供了性能更为强大的硬件加速渲染模式。该模式无需开发者自动开启,引擎会根据当前用户硬件类型智能判断启用。

完善的配套工具

Egret引擎的设计宗旨始终围绕在简化游戏开发上,用户在使用Egret的时候,能够体会到,所有的引擎设计全部围绕游戏开发。同时Egret提供的配套工具也极大简化了游戏开发流程。从游戏的代码编写,UI制作,地图拼接,关卡制作到最终游戏上线,研发过程中都有大量工具支撑。

灵活的工作流

Egret不限制开发工具的使用,我们也为一些优秀的第三方工具提供了相关插件。让用户在不改变开发习惯的情况下无缝迁移到Egret。

社区支持

Egret为用户建立了用户社区,如果在使用Egret过程中遇到了哪些问题,可以直接在用户社区中得到答案。同时,我们也为用户提供了大量文档手册,方便用户学习。

https://bbs.egret.com/portal.php

功能

Egret继承了Flash的优点,同时更加针对游戏开发,主要包括如下功能:

  • 显示列表:清晰、稳健、高效的视觉抽象结构
  • 精灵:一种轻量级显示容器
  • 事件机制:提供了一套生成和处理事件消息的标准方法
  • 纹理集合:将大量图片汇集为一张纹理图进行处理
  • 矢量绘图:封装了方便简单的矢量绘图功能
  • 网络加载:封装了常用的网络通讯协议
  • 位图字体:可通过位图字体方式显示文本
  • 性能监控:可在游戏中快速开启性能监控面板
  • 反射:对TypeScript增加了反射机制,方便模块化开发
  • XML处理:提供标准的XML格式解析生成功能
  • 骨骼动画:支持业内最优骨骼动画解决方案DragonBones
  • 资源加载:提供了整套资源加载方案,优化网络加载功能
  • EUI:提供大量组件,可快速开发游戏中的UI控件
    Script增加了反射机制,方便模块化开发
  • XML处理:提供标准的XML格式解析生成功能
  • 骨骼动画:支持业内最优骨骼动画解决方案DragonBones
  • 资源加载:提供了整套资源加载方案,优化网络加载功能
  • EUI:提供大量组件,可快速开发游戏中的UI控件

HTML5游戏引擎(一)-egret引擎简介——一个开源免费的游戏框架相关推荐

  1. Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)

    懒骨头(http://blog.csdn.net/iamlazybone  QQ124774397 青岛 ) 或许有天 我们羡慕和崇拜的人 因为我们的努力 也会来了解我们 说不定 还会成为好友 骨头喜 ...

  2. Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)...

    2019独角兽企业重金招聘Python工程师标准>>> 或许有天 我们羡慕和崇拜的人 因为我们的努力 也会来了解我们 说不定 还会成为好友 骨头喜欢这样与哲哲共勉 多少个夜晚 一张长 ...

  3. Riot-IM:是一个开源免费的即时通讯聊天协作工具,功能丰富且跨平台——Riot-IM

    Riot-IM 介绍  Riot-IM ,一个新型的协作平台,可以在 iOS.Android.Web 端运行,完全由自身控制的通用安全聊天应用程序.支持多大25种语言(支持中文),且还在不断地增加!可 ...

  4. egret发布的HTML5项目怎么打开,Egret引擎开发指南之发布项目

    在Egret中,使用发布功能也非常的简单.你只需要使用如下命令即可: egret publish HelloWorld 此命令中egret publish为发布命令,HelloWorld是你当前项目的 ...

  5. html5制作端午节游戏,意派Epub360怎么制作一个端午节H5小游戏页面?

    六月已经过了三分之一,"粽子节"也马上要到了,每当这时候,又到新媒体运营人和设计师头秃的时刻,在传统的节日里,如何把传统的节日使用互联网元素表现,让更多的年轻人能够参与进来,H5这 ...

  6. python推箱子小游戏_小伙利用Python自制一个推箱子小游戏!

    原标题:小伙利用Python自制一个推箱子小游戏! 导语 月初更波python制作小游戏系列吧用python写了个推箱子小游戏,在这里分享给大家,让我们愉快地开始吧 小伙利用Python自制一个推箱子 ...

  7. python编程小游戏-10分钟用Python编写一个贪吃蛇小游戏,简单

    贪吃蛇,大家应该都玩过.小编当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎.今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最 ...

  8. microdot - 一个开源 .NET 微服务框架。

    简介 Microdot 是一个开源 .NET 框架,可满足轻松创建微服务的许多需求. 它的一些主要特点 •用于托管微服务的服务容器•服务间 RPC,便于基于接口的服务通信•服务之间的客户端透明响应缓存 ...

  9. H5游戏开发(Egret引擎)及Typescript学习笔记

    Egret 1. Egret项目骨架 .wing: 包括 Egret 项目的任务配置文件和启动配置文件. bin-debug: 项目调试时,所产生的文件存放于此目录.与src目录文件一一对应 libs ...

  10. 手动搜索迷宫游戏 c语言,C语言实现一个走迷宫小游戏(深度优先算法)

    接上一篇万年历博文,还是那位朋友的练习题.这次是使用C语言做一个小游戏程序,三选一(2048.8皇后和迷宫游戏),我选择的是迷宫(文章末尾有程序截图).个人认为这个程序的难点在于迷宫地图的绘制,也就是 ...

最新文章

  1. 盘点那些具有“爆款”潜力的智能家居产品
  2. 小学生python-如何看待小学生开始学Python?
  3. DataList自定义分页
  4. 谱聚类算法(Spectral Clustering)优化与扩展
  5. Servlet_urlpartten配置
  6. ip访问 webstorem_常见问题-iOS WebView IP直连 如何处理 Cookie
  7. 数据结构:线性数据结构(3)-deques(栈,队列,deques, 列表)
  8. html连在一起的选择器,请问关于css选择器的问题:两个类选择器连在一起是什么意思?...
  9. Mealy状态机的一点理解
  10. Cocos2dx 3.11版本 视频添加跳过按钮
  11. minheight能继承吗_民法典亮点盘点 | 侄子能继承叔叔的遗产吗?
  12. 端到端半监督目标检测框架Instant-Teaching:
  13. pytorch学习笔记(3):常用网络层介绍
  14. java和mysql之间的时间日期类型传递
  15. github issue 搜索_回顾 2020 年 GitHub 的大事件,你知道多少?
  16. 漫谈软件系统测试——缺陷分析
  17. 2020/08 Trackers 清单
  18. html鼠标点击后变换样式,css鼠标样式(css鼠标点击切换样式)
  19. Android开机自动运行
  20. 开发单页应用(SPA)时候遇到的微信支付授权目录的坑

热门文章

  1. 定义一个函数,返回整形数组中最大值
  2. 高等数学学习笔记——第九十讲——斯托克斯公式
  3. java绘图-常用条形码类型组成及使用说明
  4. css去掉原生input框的border属性
  5. 作为管理者,就不要总等着领导给你布置任务了
  6. 低功耗中的Isolation cells 和Level shifter cells
  7. 英文连写字体怎么练_漂亮的英语字体是这样练成的!!
  8. 谷歌SEO之如何选择关键词(2021更新教程)
  9. HTML5网页设计基础——LOGO的制作
  10. 不同图像的噪声,选用什么滤波器去噪,图像处理的噪声和处理方法