Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >H5 游戏开发 1:Egret 文档有多难用

H5 游戏开发 1:Egret 文档有多难用

作者头像
猫哥学前班
发布于 2019-11-18 14:07:57
发布于 2019-11-18 14:07:57
1.9K00
代码可运行
举报
文章被收录于专栏:猫哥学前班猫哥学前班
运行总次数:0
代码可运行

最近猫哥开始转行做游戏开发,主要的业务场景是 Hybrid H5 休闲游戏。作为游戏行业的新人,自然少不了一些精彩的技术预研和踩坑经历,今天开始挖个“H5 游戏开发系列”的坑,每周分享一下。

技术选型

国内有三大 H5 游戏引擎,Cocos、Egret 和 Laya,他们都能支持使用 TypeScript 编写跨平台(H5、各类小游戏平台、Native App)的游戏。

具体引擎的对比细节不属于本文探讨的主题,我直接抛出(个人)结论:

2D 游戏选 Egret,3D 选 Laya,其他选 Cocos Creator。

上面的“其他”指的是,你一脸懵逼,不知道怎么选的时候:)

Egret 白鹭引擎

Egret 联合创始人马鉴是 Flash (原属 Macromedia 公司,后被 Adobe 收购)团队的第一位中国员工,也是 Adobe 中国第一位 Technology evangelist。

为了能获得最好的游戏性能和开发灵活性,我们当前的这款游戏选用的是 Egret 白鹭引擎。

然而,生活中总是充满着意外和惊喜,从看开发文档到安装 IDE 上手开发调试,Egret 一点都没让人省心。

今天我们来吐槽下 Egret 的文档有多难用,以及我对它的改造方法,希望能启发大家解决技术文档类问题的思路。

1. CDN 资源不稳定

Egret 文档中的图片主要存放在 cdn.dev.egret.com 域名,而这个服务器经常不可用,同时 cdn.www.egret.com 域名也经常连接超时。怎么办?

借助两条 Whistle 配置搞定:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 将 CDN 地址转发至源服务器目标地址
http://cdn.dev.egret.com/ http://developer.egret.com/cn/data/upload/
# 将经常连接超时的素材直接返回 404
https://cdn.www.egret.com/official/new-egret/img/ statusCode://404

补充:如果你还不知道 Whistle,可以看下猫哥以前的文章:《8102 年的程序员不需要 Hosts 和 Fiddler》、《使用 Whistle 作为 API 服务网关》

2. 文档打不开

很难想象作为一个小有名气的游戏引擎厂商, Egret 的文档站点能做到如此的不靠谱:中文文档站点经常无法访问,所有页面重定向到首页;文档搜索功能不可用,搜索结果直接跳转报错页。

虽然 Egret 还提供了英文文档站点(将 URL 上的 cn 改为 en 即可),但其缺乏及时更新,且无法解决文档搜索问题。

中文 Hello World 地址:http://developer.egret.com/cn/github/egret-docs/Engine2D/getStarted/helloWorld/index.html 英文 Hello World 地址:http://developer.egret.com/en/github/egret-docs/Engine2D/getStarted/helloWorld/index.html

好在 Egret 文档是基于其 Github 仓库 egret-labs/egret-docs 生成的,所以我们可以直接将其下载至本地,使用 VSCode 进行预览和搜索,或者使用 Chrome Sourcegraph 扩展来在线预览和搜索文档。

Sourcegraph

如上图所示,为 Sourcegraph 的过滤搜索功能。

3. API 文档搜索功能太弱

Egret API 文档 反人性的地方在于,它只提供了按照 Class 类名的搜索功能,这对初学者相当的不友好。

初学者通常是只知道某些属性或方法名,或它们的描述关键词,然后想通过 API 文档来搜索出具体的类名和使用方法。

由于它的 API 文档没有开源在 Github 上,所以猫哥只好基于它的文档站点设计了一个 API 搜索增强脚本。

API Search 增强

如上图红框所示,使用该增强脚本后,将支持 Egret API 文档的全文搜索。脚本具体实现思路如下:

使用 AJAX 将所有 API 文档内容缓存至本地 indexedDB 数据库(不使用 localStorage 是因为数据大小可能会超过其容量上限),再使用正则匹配用户输入的关键词,过滤出包含内容的 Class 列表,最后复用原先的搜索交互。

脚本的注入方式,仍然推荐使用 Whistle,只需加入两条配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 在 API 站点中插入一个 JS script(若脚本更新需注意替换 url)
/developer\.egret\.com\/\w+\/apidoc\/(?!ajaxcontent)/ jsAppend://https://gist.githubusercontent.com/kaiye/207728f7c9f187cd886353e7678197f4/raw/09e543a735da2a7212e22d967f2ce40eb2d63b8c/injectEgretApiDoc.js
# 将 gist 站点上该脚本的 content-type 设置为 javascript,解决类型嗅探错误
/injectEgretApiDoc\.js/ resType://js

注:请从 gist 上获取最新脚本源码,并注意替换以上配置中 raw 文件的路径https://gist.github.com/kaiye/207728f7c9f187cd886353e7678197f4

完成注入后,首次使用时,点击“Preload Docs into Local Cache” 按钮,浏览器会依次发出 200 多条 API 文档内容的请求,并将其缓存至本地。后续无需重新下载,即可直接搜索使用。

以上是猫哥对 Egret 文档站点改造的全部内容,在下一期我将会介绍实际的游戏开发,看看 Egret 的 IDE 和调试工具有多难用.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 猫哥学前班 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
H5 游戏开发 2:搭建 Egret 开发环境
在上一期的“H5 游戏开发”教程中,猫哥介绍了如何通过 Whistle 工具对 Egret 文档进行资源修复和搜索增强。本期,我们以 Hello World 项目为例,看看如何搭建一个好用的 Egret 项目开发环境。
猫哥学前班
2020/02/11
5.1K1
H5 游戏开发 2:搭建 Egret 开发环境
H5游戏开发:游戏引擎入门推荐
很多刚刚接触到游戏开发,准备大展拳脚的小鲜肉们,往往在技术选型这第一关就栽了跟头。毕竟网络上的游戏引擎良莠不齐,官网上相关资料也比较少,而选择一个适合的游戏引擎是一个项目最基础,也是很核心的一部分。 试想一下,在游戏开发进行到中后期的时候,才发现项目引入的游戏引擎与需求相悖,这时候不管是重新做一些修修补补的工作或者更换游戏引擎,这都是相当耗费人力物力的一件事。为了避免这种情况的出现,在前期选择适合项目需求的游戏引擎显得尤为重要。 接下来我们来聊一聊如何去选择适合项目的 JS 游戏引擎。
bering
2019/12/02
6.7K1
盘点 小游戏开发引擎
游戏越来越成为人们生活必不可少的一部分,游戏的类型也愈加丰富,进行游戏的方式也越来越便捷。而小程序技术的推广使得游戏的开发又多了一种选择。小程序上的小游戏无需下载安装,即点即玩,似乎更加符合现代人的需求。下面就来简单盘点一下4款小游戏开发引擎:
Lydiasq
2022/12/01
1.6K0
盘点 小游戏开发引擎
由爆火的“羊了个羊”浅谈小游戏开发
自9月初突然爆火以来,小程序游戏“羊了个羊”一路高歌猛进,日活跃用户数量最高曾一度破亿;仅两天时间,就在微博上就斩获18个关联热搜。
用户10245619
2022/12/05
1.9K0
由爆火的“羊了个羊”浅谈小游戏开发
小游戏引擎如何选?看完这篇就够了
前面写了几期有关于小游戏的文章,主要从小游戏开发、小游戏运营、小游戏变现等多个角度进行了较为粗略的介绍,很多同学表示对小游戏引擎部分很感兴趣,希望能够有一些更为深入的分析介绍。今天就对目前主流的小游戏引擎进行探讨。
Onegun
2023/01/03
4.5K0
小游戏引擎如何选?看完这篇就够了
写给对 ”游戏开发” 感兴趣的朋友们
原文链接:https://mp.weixin.qq.com/s/wSp-UKiIlufnIC3KPY-WTQ
Python进击者
2019/06/21
1.2K0
写给对 ”游戏开发” 感兴趣的朋友们
小游戏开发概述 - 笔记
引擎的诞生就是因为一家公司做了一款游戏,做下一款游戏时复用了上一款游戏的代码,后来发现这些代码几乎每个游戏都会用到,抽离出来就成了一个引擎。
TagBug
2023/03/17
1K0
小游戏开发概述 - 笔记
盘点| 爆款小游戏的开发引擎
微信推出小游戏已有4年,期间不断涌现爆款。作为可以不用下载安装直接在线玩的小程序游戏,小游戏渐渐成为不少人的心头好。今天就来盘点一下那些爆款小游戏用到的游戏开发引擎:
Lydiasq
2022/12/06
2.5K0
盘点| 爆款小游戏的开发引擎
微信小游戏开发技术与应用
本周四我们举行了《Cocos Creator微信小游戏开发入门》公开课 受到了同学们的一致好评! 纷纷跑来打听“八卦消息问”微信小游戏课程何时上线... 本期干货我们就带大家来简单了解 《微信小游戏开
腾讯NEXT学位
2018/07/06
2.4K0
微信小游戏开发技术与应用
微信小游戏、H5小游戏、微信小程序之间的关系及区别,以及相关主要技术点及应用学习讨论。
Techeek
2018/03/19
8.4K14
微信小游戏开发技术与应用
H5游戏与小游戏之间的技术区别
那么为什么依附小程序产生的小游戏可以有这么大的关注度呢?先不论桌面端和APP端,与HTML5有相近的小程序游戏又怎么能频繁爆火到有这么大的流量呢?
用户10236691
2022/12/06
1.2K0
H5游戏与小游戏之间的技术区别
游戏开发完整学习路线(各个版本都有)
在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指路,是可以事半功倍的。 一 平台与编程语言选择 首先,游戏开发的平台就有很多类型:  个人主机平台:Windows、Linux、Mac OC; 移动平台:iOS、Android、Windows Phone、BlackBerryOS、Symbian; 专业主机平台:Xbox、PlayStation、Will等。 如果你想从事移动平台的游戏开发,An
用户1198337
2018/01/19
3.1K0
游戏开发完整学习路线(各个版本都有)
王者荣耀用什么开发的?一文盘点客户端引擎
对于有些刚毕业的同学虽然有着一腔热情做游戏,但是不了解游戏行业,也不知道从何下手,也不知道怎么学,至于游戏行业的概述可以看我之前的文章,但是客户端都有哪些游戏引擎,这些引擎的特点是什么,该学习哪些呐?今天我们就详细的聊聊,希望对于想进游戏行业的程序同学一些方向。
香菜聊游戏
2021/05/26
6.2K0
王者荣耀用什么开发的?一文盘点客户端引擎
【Golang语言社区前端编程】如何选择 H5 游戏引擎
原生手游市场已是红海,腾讯、网易等寡头独霸天下,H5游戏市场或将成为下一个风口。据笔者所知,很多H5游戏开发团队由于选择引擎不慎导致项目甚至团队夭折。如何选择适合团队和项目的引擎,笔者通过学习和项目实践,总结微薄经验,供大家参考,非技术人员也可以将本篇内容作为引擎选择的重要关注点。 选择H5游戏引擎的思考维度 1、开发语言的支持 2、2D、3D、VR的支持 3、性能 4、引擎的应用广度 5、设计理念 6、工作流支持力度 7、商业化成熟案例 8、学习资源与技术支持能力 首先,我们要知道,当前主流的游戏引擎有哪
李海彬
2018/03/27
2.5K0
HTML5 游戏引擎深度测评
最近看到网上一篇文章,标题叫做《 2016年 最火的 15 款 HTML5 游戏引擎 》。目前针对HTML5游戏的解决方案已经非常多,但谁好谁差却没有对比性资料。特意花了几天时间,针对文章中出现的12款免费开源引擎做了一次相对完整的对比分析,希望能对大家有所帮助。 针对技术类产品对比,通常有多个维度进行对比,不仅仅是技术层面,还有许多非技术层面的内容会影响我们的使用结果。本文从如下几个维度进行多重对比。 2D与3D 编程语言 设计理念&功能 工作流 性能 学习资料 商业应用 2D与3D、编程语言对比 2D与
李海彬
2018/03/22
6.3K0
HTML5 游戏引擎深度测评
Shopee Games 游戏引擎演进之路
Shopee Games 当前以休闲类游戏为主,为了减少对 Shopee App 体积的影响,技术选型上会偏向于 H5 游戏。而如何选择 H5 游戏引擎,我们主要考量以下几个方面的因素:
Shopee技术团队
2022/03/04
1.7K0
Shopee Games 游戏引擎演进之路
从零开始开发一个小游戏有什么难点
如果仅仅针对个人开发者来讲,要独立开发一款大型游戏几乎无可能,更大成功的可能还是开发一款类似《羊了个羊》这样洗脑的小程序游戏。
Onegun
2022/12/12
1.5K0
从零开始开发一个小游戏有什么难点
【游戏编程板块】关于游戏开发的客户端/服务器端的版本控制
【客户端】 1.关于游戏引擎 在15年3月开始准备做h5游戏的时候,首先遇到的问题就是引擎选型的问题。 当时市面上的2d引擎主要有3个:白鹭egret,layabox和cocos2d-js。 一方面,是因为我以前用cocos2d-x(c++)做了一年多的手游客户端,所以,很自然就选择了cocos2d-js。另一方面,是因为当时市面上其他两个引擎的成功项目还不多。 cocos引擎的每一次版本更新,我们都会第一时间在我们的游戏里面进行测试。 如果发现游戏在android手机上的性能有明显提升,我们就会跟着引擎版
李海彬
2018/03/27
2.9K0
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
在移动互联网迅猛发展的当下,H5 游戏凭借其无需下载、即点即玩的特性,成为了游戏领域中一股不可忽视的力量。无论是在碎片化时间里打发闲暇,还是在社交互动中增添乐趣,H5 游戏都发挥着重要作用。而这背后,是一系列先进的开发技术在支撑。H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
山东布谷科技_孙哥
2025/03/04
2050
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
游戏开发学习路线
游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指引,是可以事半功倍的。
全栈程序员站长
2022/08/03
2.7K0
游戏开发学习路线
相关推荐
H5 游戏开发 2:搭建 Egret 开发环境
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验