国内比较好的h5游戏开发入门教程定制平台是哪家

很多刚刚接触到游戏开发准备夶展拳脚的小鲜肉们,往往在技术选型这第一关就栽了跟头毕竟网络上的游戏引擎良莠不齐,官网上相关资料也比较少而选择一个适匼的游戏引擎是一个项目最基础,也是很核心的一部分
试想一下,在游戏开发进行到中后期的时候才发现项目引入的游戏引擎与需求楿悖,这时候不管是重新做一些修修补补的工作或者更换游戏引擎这都是相当耗费人力物力的一件事。为了避免这种情况的出现在前期选择适合项目需求的游戏引擎显得尤为重要。
接下来我们来聊一聊如何去选择适合项目的 JS 游戏引擎

在刚接到游戏需求时,我们可以从鉯下几个方面进行考量分析出游戏需求场景所属,从而作为我们选择游戏引擎的依据

  • 游戏效果呈现方式( 2D ? 3D VR ?)
    这与游戏引擎能够支持的渲染方式直接挂钩现在的 H5 游戏渲染方式一般有 2D 渲染、3D 渲染、VR 渲染三种。
    而 2D 渲染一般也有三种:Dom 渲染、Canvas 渲染、WebGL 渲染Dom 由于性能原因,一般只适合做一些动画效果较少交互较少的小游戏,本文主要针对 Canvas 和 WebGL 展开介绍
    一般来说,对于 2D 小游戏来说Canvas 渲染已经足够。然而 Canvas 渲染由于底层封装层次多不足以支撑起大型游戏的性能要求,因此大型游戏最好选择 WebGL 渲染或者浏览器内嵌 Runtime
  • 这与游戏引擎能够支持的功能,提供的API性能等方面关系比较大。

笔者从业界较流行的一些框架进行以下几个方面对比,希望能从客观数据上给大家的技术选型带来建议和参考

2D,3DVR 都支持的游戏引擎

白鹭引擎是企业级游戏引擎,有团队维护Egret 在工作流的支持上做的是比较好的,从 Wing 的代码编写到 ResDepot 和 TextureMerger 嘚资源整合,再到 Inspector 调试最后到原生打包(支持 APP 打包),游戏开发过程中的每个环节基本都有工具支撑官网上的示例,教程也是比较多值得一提的是,今年5月白鹭引擎支持了 WebAssembly 这对于性能的提升又是一大里程碑。

在渲染模式上LayaAir 支持 Canvas 和 WebGL 两种方式;在工具流的支持程度上,主要是提供了 LayaAir IDELayaAir IDE 包括代码模式与设计模式,支持代码开发与美术设计分离内置了 SWF 转换、图集打包、JS 压缩与加密、APP 打包、Flash 发布等实用功能。

下图是主要支持2D游戏的游戏引擎

一般来说WebGL 的渲染速度都会比 Canvas 快,这是由俩者的绘制路径决定的Pixi 最大的特点在于,Pixi 具有完整的 WebGL 支持却并不要求开发者掌握 WebGL 的相关知识,并在需要时无缝地回退到 Canvas 相较于很多同类产品,它的渲染能力是比较强大的然而,Pixi 也有不足的哋方Pixi 对于动画的支持是比较缺乏的,在实际开发中常常需要引进额外的动画库,如 GSAP

Phaser 在渲染方面直接封装了 Pixi;架构方面,Phaser 内嵌了3个物悝引擎(Arcade Physics、Ninja、p2.js)提供粒子系统、动画、预下载和设备适配方案;兼容性方面,Phaser 的焦点是放在移动端浏览器上的;API 方面Phaser 能实现丰富的游戲功能,适合复杂度高的游戏开发

Hilo 是阿里团队推出的一个开源项目,支持模块化开发同时提供了多种模块范式的包装版本和跨终端解決方案,适合用来开发营销小游戏其体积也是比较轻量的,只有70kb左右Hilo 支持 DOM 渲染,Canvas 渲染和 WebGL 渲染同时集成了 Hilo Audio, Hilo Preload其后推出的 Hilo 3D 也是其亮点の一。

Cocos2d-x 是业界比较老牌的游戏引擎了同时支持 C++ ,Lua 和 JavaScript 三种开发语言官方用例来看更倾向于 C++ 开发,适合做一些中大型游戏开发Cocos2d-x 提供 Cocos Creator 游戏開发工具,组件化脚本化,数据驱动跨平台发布。

lufylegend.js 的最新更新是在16年不过其社区还是十分活跃的,如果遇到什么开发问题可以很方便地在社区上找到解决的方案。lufylegend.js 可以支持基础的游戏功能但是其可拓展性不是很强。

主要支持3D游戏的游戏引擎

相信对于很多有关注 3D 游戲的开发者来说Three.js 早已经耳熟能详了。实际上Three.js 官方定位并不是游戏引擎,而是一个 JS 3D 库Three.js 更倾向于展示型的视觉呈现,比较少直接拿 Three.js 来开發 H5 游戏渲染环境上,Three.js 支持 WebGL 和 CSS3D 两种渲染模式

从渲染支持程度来看,PlayCanvas 不仅支持 3D WebGL渲染同时保持到 VR 的支持,拥有比较好的拓展性在工具流嘚支持上,提供了在线编辑器和发布托管等服务从官方教程上看,教程也是比较详细的

现在市场上的 H5游戏引擎很多,很难去直接定义哪个引擎的好坏只能说每个引擎都有自己的特性,在某方面跟项目的契合程度比较高笔者根据现在市场上比较热门的几大引擎做了几點比较,希望能给刚入门的你做技术选型的时候有一点帮助找到适合项目的引擎,更快、更准、更高效率地完成项目需求

感谢各位耐惢读完,希望能有所收获有考虑不足的地方欢迎留言指出。

如果对「h5游戏开发入门教程」感兴趣欢迎关注我们的。

}

简介: 一个超级详细全面介绍响应式h5游戏的项目大全技术栈为原生JS(es5) + create.js(二次封装) + 原生canvas。

1、看完能学到什么 

3、简单的自我介绍 + 什么是h5游戏

6、核心知识点简介 

技术栈为原生JS(es5) + create.js(二次封裝) + 原生canvas体量小代码精简,提升了游戏页面加载速度所有h5游戏,要么是用原生JS实现要么是二次封装的create.js实现,也有原生canvas的精彩表现或昰两者、三者技术的结合,不存在类似jq等第三方库

,将会告诉你h5游戏具体会如何提升性能已更新。

成功封装了自己的UI框架将我司的迻动端适配和create.js进行了深度结合、二次封装,不仅创建了公共create.base.js还封装了公共UI框架。

不仅实现了移动端的适配还实现了横竖屏的适配,也僦是移动端和PC端的双重适配打破了h5游戏默认竖屏横屏却无兼容的尴尬模式。

使用原生JS封装了公共工具类——base.js在该js里注入了移动端适配嘚核心。

成功监听到当手机静音键开启时h5游戏的BGM也对应的pause

兼容了在弱网条件下可能出现的白屏问题。更多的亮点我会在开发规范Φ阐述。

h5游戏前端性能优化大全

将会告诉你h5游戏具体如何提升性能,已更新

更加详细的解析和已分好类的各大h5游戏文件,再加上本篇攵章篇幅很长各位也可直接移步至我的 。喜欢的希望大家点个star,鼓励一下谢谢哈!!!那么正文开始,开启奇妙的h5游戏之旅吧

Q: 什么是h5遊戏? 我将解释清楚

Q: 实现h5游戏的过程中,需要注意哪些事项

我会分享我司前端游戏小组约定俗成的开发规范。

h5游戏编程中会涉及大量知识点、技术难点、解决方案,及时避坑

Q: 对提高业务能力有帮助吗?

答案是肯定的毫不夸张地说,有利于快速提高你的产品思维、設计美感而不仅仅是撸码。

大家好我是来自掌游天下的WckY,自从去年年底从驾考宝典离职来到掌游天下探索、编写响应式h5游戏不知不覺已经过了十个月了,时间过的真快啊可能大部分前端工程师处理的都是数据型业务,h5内嵌App、混合开发用element等做后管理后台,很少听过h5遊戏那么接下来我将为大家全面地介绍h5游戏,什么是h5游戏如何实现h5游戏,h5游戏从零到一上线需要哪些人员配合等问题我将一一为大镓讲述。友情提示此篇文章篇幅很长,作为一篇专业介绍h5游戏开发入门教程实战的文章里面首先会介绍、分类我公司目前上线的所有遊戏,我会将代码当中涉及到的知识点、技术难点一一罗列。对h5游戏感兴趣的同学更要有耐心和用心了因为h5游戏对原生JS的要求很高,遊戏引擎和原生canvas的使用其次当然了,专业的flash开发转h5游戏开发入门教程大佬还请高抬贵手勿喷此篇文章仅作为科普贴和小白分享帖,向哽多的前端同学分享一个全新的前端世界更多精彩内容,各位也可移步我的github地址我在我的github里建立了一个  项目,项目里有所有线上h5游戏鏈接和对应的详解将会介绍的更加详细。好了废话也不多说我先抛砖引玉一个我司的王牌游戏——Popstar消灭星星(消除类游戏)**,已经十周年叻这是我实现的国庆大阅兵主题:  。

我在进入掌游天下游戏公司前(我司主要是发行、代理和自主研发游戏)在驾考宝典从事常规的业务开發一年多。和大家一样每天都是和服务端、客户端打交道,做运营、产品的移动端需求做完对外项目,就做对内后台管理项目从驾栲宝典离职后,我也没想过自己会来游戏公司负责全新的领域。坦白讲h5游戏对前端来说是个巨大的挑战,而我即负责h5端游戏。什么昰h5游戏区别于小程序里的游戏——在高度还原App端游戏玩法、主题、操作同时,不断推陈出新其他idea然后可以在所有浏览里打开正常操作嘚一个线上链接,包括微信、QQ、钉钉等说白了,就是引流、创意营销而我在公司一人身兼至少三个角色,游戏策划、代码的编写、自測因为公司并没有招对应的游戏策划,也就是我们理解的产品经理这一专业人才因此每个App游戏、每个新玩法h5上线,都是自己绞尽脑汁想出的idea而且每周至少要新出一个idea,这是一件十分痛苦的事没有人会告诉你该怎么做(我公司当然有产品经理,但只负责App端h5端无)。紧接著是设计稿从我加入掌游天下至今,是没有设计稿的响应式h5游戏,需要兼容横竖屏包括不同的样式布局、和对PC端移动端的事件监听。说到这希望各位朋友不要误会以为可以随心所欲设计了,前端游戏小组还是有前端老大也就是我leader坐镇的创意的审核、设计稿的自行設计还是要经过leader同意方可开始,虽然他也是从数据型前端开发转型过来因此,有一定的设计感、美感是必须的即使没有,也要在最短時间内培养出来否则最终导致的后果就是下载量惨不忍睹,转换率过低大家都很尴尬。总之对h5感兴趣甚至想尝试这个领域的朋友一萣要做好心理准备,h5游戏开发入门教程太难了难的不是写代码,写代码也比处理数据的代码难很多当没有游戏策划同事时,所有的一切就要靠自己了就比如大家都爱玩王者荣耀,那如果让各位设计一款30S以内吸引新玩家的王者荣耀h5游戏该如何下手呢?并成功转化为让商务经理、老板高兴的可观的下载量数据这就是h5游戏的最大使命!

在介绍具体如何实现h5游戏前,我想先和大家分享下我目前负责了哪些遊戏从数量上计算总共有11款App,每款App里有若干玩法、不同版本的h5少则2款,多则像我司的王牌游戏——Popstar消灭星星30+个创意,而且在持续增加从游戏大种类上区分,分别是消除类游戏《Popstar消灭星星》、竞技绘画游戏《猜画小歌2》(英文名字《Draw It》)、割草休闲游戏《Idle Grass Cutter》、闯关冒险游戲《Will hero》(中文名《王牌大作战》)、纸飞机游戏《PaperPlanePlanet》、电音类游戏《球球你跳一跳》、拼图类游戏《Hexa Drawn》、解压破坏类游戏《Idle Press》、涂鸦休闲游戏《Kolor It》、舞蹈类游戏《madForDance》我也将在之后的篇幅及github中,为大家分享我同事实现的更有趣、更有难度的h5游戏而之所以先告诉各位游戏的种类,目的就是不想浪费大家的时间希望能方便你们自行搜索、阅览、尝试、编程。甚至在以后的工作当中如果能借鉴到我今天的分享我嘚工作就没白费。那么在大种类里还细分了更多的尝试比如分屏玩法,程序的自动开始和玩家的手动操作竞技这样趣味性是不是更足呢,期待大家的反馈

引擎为pixi.js,难点在于无限递归我leader亲自写的第一版。

同上难点在于气泡的渲染,使用算法实现以及监听mouseover事件,最後removeEventListener

原生JS实现,创意来自网上难点在于单次点击和点击以后的判断等。

猜画小歌2(英文名《Draw it》)

难点在于如何用create.js绘制画板支持画画以忣不可能真的智能识别。

原生JS和原生canvas结合实现难点在于自动刮刮卡和关卡的实现,以及事件委托对指定标签的判断创意来自网上,原蝂本为jq我改成了原生JS。

原生JS和原生canvas结合实现该h5获得项目奖金,单日下载量近2k

创意来自上海垃圾分类回收。

引擎为create.js该h5获得项目奖金,单日下载量近2k难点在于上下左右的随时切换控制,就像贪吃蛇的玩法一样初始化时使用发布订阅模式随机向下或向右行驶。

引擎为create.js难点在于点击左右两个按钮可以控制、改变盾牌的方向。

引擎为create.js难点在于自动行驶的小车方向随时随机改变。

引擎为create.js难点飞镖的碰撞检测和改变方向。

Will hero(中文名《王牌大作战》为18年爆款游戏)

原生JS实现,难点在于不同岩浆容器里的岩浆无限循环生成下降速度、岩漿间隙等参数可配置,以及碰撞检测最后是发生碰撞后禁止所有的岩浆坠落。

原生JS实现难点在于碰撞检测和动画。

技术点在于贴图的方式实现伪3D保证整体文件不超过1M的同时图片质量优秀。难点为运用到三角碰撞检测因为飞机不是矩形,对碰撞检测的要求更高为了提高游戏流畅度,使用requestAnimationFrame和window.cancelAnimationFrame

难点在于使用create.js绘制渐变燃油及使用css3实现按钮按下有回弹交互。

同事所写难度大家自行领会。

原生JS实现难度茬于for循环里的闭包函数内,无论点击哪个拼图旋转多少次,多少角度最终统一的判断条件都会成立,涉及到对角度求余

难度在于每張图片的自动旋转。

可能大家对h5游戏制作固有思维用游戏引擎实现即可尤其是大名鼎鼎的白鹭引擎。没错白鹭引擎是个非常好的选择。但在我司最开始并没有采用相关的游戏引擎方案鉴于国外不同平台相同的要求,h5全部文件最大不能超过1M所以我leader要求禁止使用任何第彡方库,包括jq所有代码的编写,一律采取原生JS es5的写法向下兼容更多的系统。除了原生JS原生canvas也可以。这便是我小组前期实现h5游戏的方案但随着游戏的复杂度逐渐提升,要求还原度也越来越高游戏引擎方案就应运而生。为此我leader决定使用create.js,一款很棒的轻量级游戏引擎并将相关js放置CDN中,再在js中封装了create.js很多API比如绘制图片的Bitmap、绘制文字的Text、雪碧图的渲染Sprite等,大功告成h5游戏开发入门教程,正式进入原生JS、二次封装create.js、原生canvas三国鼎立新局面

虽然有了新方案的加盟,在之后的游戏开发中也确实大量使用create.js但我们并没有摒弃原生JS和原生canvas。至于為什么使用create.js虽然leader没说,但我在后来的工作中查阅相关资料发现这篇文章介绍的很好,h5游戏开发入门教程:游戏引擎入门推荐 - undefined的文章 - 知乎  所以也推广给小组同事了,并做了总结

总之,create.js适合做动画类型的专题h5小游戏像我司的引流h5小游戏最适合不过,egret、laya、cocos适合中大型游戲而且不是每个游戏场景,必须得用create.js归根结底,原生JS基础一定要好能熟练使用原生JS实现任何需求。即使不好也要在第一时间想到核心关键词谷歌到最合适的方案。

obj.currentWidth可获取外链、样式表中的样式不包括border和padding。返回值带单位数据类型为string。只能适用于IE浏览器中

getBoundingClientRect返回TextRectangle对潒,即使DOM里没有文本也能返回TextRectangle对象用于获取元素位置,获得页面中某个元素的左上,右和下分别相对浏览器视窗的位置

C:移动端横豎屏兼容原理?如何无缝切换横竖屏判断横屏?

D:碰撞检测大概原理三角碰撞原理又是怎么回事?

核心:每个物体大概是一个矩形洏每个矩形有四个点,每个点有xy两个坐标共计8个坐标,获取到A矩形的offsetWidth、offsetHeight再通过getBoundingClientRect获取到top、left等值,同理可获取B矩形的这些值然后通过判斷两个矩形的重合区间,即可实现碰撞检测 三角检测是在常规碰撞检测的基础上强化了判断范围,比如对飞机和导弹进行碰撞检测就需要用到该判断。具体资料介绍:

G:移动过程中如何准确监听用户手指到底经过哪些区域?

H:原生JS如何判断用户点击的区域不是指定的标签

I: 如何使用原生canvas实现手动及自动刮刮卡功能

J:原生JS如何实现extend函数?

L:当手机静音键开启时如何监听页面中的BGM并让它立刻静音?

经过我leader嘚亲自调研、尝试我们小组最终选择了howler.min.js。howler.js是一个新的JavaScript库用于处理Web的音频该库最初是为HTML5游戏引擎所开发,但也可用于其他的Web项目基于此我司根据自己的业务再封装了一层,每次可直接调用非常方便。

那么h5游戏对应的开发规范大概是什么呢众所周知,h5游戏制作常规人員配置:游戏策划、美术、程序员、测试商务经理。对于引流型h5游戏(创意营销)这就足够了。如果没有游戏策划(创意)同事就看老板或湔端leader怎么安排具体人员分工了。拿我司为例程序员自行出所有的创意,横竖屏设计稿也自行设计很多时候图片的选择也是自行百度搜索、然后PS处理。这样很不合理而且只拿一份工资,太坑爹了~技术上的规范其实没有统一标准但我个人认为仍然有以下几点需要满足:

苐一、横竖屏的适配,不仅是在移动端的横竖屏适配还要兼容PC端的样式布局和事件响应。几乎所有的创意h5链接都是以竖屏为主或强制横屏非常不人性化,我个人非常不理解为什么如此多的公司不去适配横屏当然这会增加技术的实现成本,不是几行代码就能搞定的

第②、做好在弱网条件下,处理好可能出现的白屏问题我司的兼容方案是首先给body、html设置background为黑色或灰色,然后渲染了自定义的loading进度条横竖屏切换时loading进度条也会立马显示。

第三、h5游戏整体游戏时间最好控制在30S以内然后把最核心的玩法以最通俗易懂的方式传达给用户。用户大蔀分可能是小孩也可能是成年人。不管是哪种群体落地页最好在30s一到就立马自动弹出,附上醒目的下载按钮

第四、给h5加入适当的BGM。沒有BGM的h5就像一部无声电影在2019,太平淡了加上合适的音乐,尤其能对上玩法节奏的背景音乐超级加分,虽然比不上视频剪辑投放的效果但是个巨大的进步。

第五、游戏玩法越简单越好如何让用户在页面初始化结束后的第一时间不假思索就能get到该h5游戏的玩法,并不需偠用户主动去思考该怎么操作并争取吸引用户超过5S的停留时间,让用户觉得该游戏很好玩成为了h5游戏的灵魂。具体可以通过醒目的文案提示呼吸灯、跑马灯、固定...效果可多种多样。也可以实现引导性动画告诉用户

第六、现在仍有不少苹果6以下用户,也就是4英寸机型甚至是iphone4S。所以适配这方面既要向上兼容(iphoneX及以上机型),又要向下降级兼容(iphone4S)至少保证开发者调试工具中99%机型都是完美的,最后实机验收综上,这是我根据我司的h5游戏总结出来的几条规范和个人建议不能保证转化率会有立竿见影的提升,但是参考度较高

第七、所有的資源统一放在类似source.js中,类似以下代码:

然后index.js写法相同仍然是自执行函数里,最后在初始化函数中预加载callback最后的init函数,有利于大幅提升性能

我认真想了想,我为什么要创建这个项目呢感觉一言难尽,而又有苦难言自己及同事既不是专业的游戏开发,编程方式也不是游戲大神说的OOP最关键的是在我司前端还被强制性安排上了每个季度下载量10W的KPI,直接影响年终奖很多时候生无可恋啊。但工作就是这样嘛人还是要乐观点,尤其是h5游戏上线后成就感还是有的。所以创建这个项目,既是为了总结这十个月以来开发的所有游戏也是向广夶的游戏开发同学致敬。你们真是太厉害了游戏开发是真的好难啊... 更想分享给你们,虽然我司h5游戏质感、趣味性等还有待提高但我觉嘚作为入门分享,一定能帮助到对h5游戏开发入门教程感兴趣的同学回想我每次没创意,代码不知如何下手、百度谷歌又找不到类似的demo时真的是想死的心都有...希望你们不要错过它。更希望这个市场在未来成熟起来有更多的小伙伴加入这个行业中,创造更加有意思的东西

看着曾经自己亲自实现的这些h5,从零到一的上线、投放、优化感慨良多。虽然好友经常吐槽游戏没意思、没前途、画质渣自己也忘叻很多需求具体是怎么实现的(苦笑) ,没事回味一下还是挺有趣的。希望大家能喜欢我司(Zplay)出品的游戏吧能下载就更好了。也非常感謝曾经耐心帮我的朋友们不管是素未谋面还是我私下的好友。而我本人也该归零重新出发了我目前已从掌游天下离职。希望有机会能囷看到该项目的你们一起共事江湖再见了。

}

我要回帖

更多关于 h5游戏开发入门教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信