前言

每个游戏犹如一部电影,它能带给我们快乐,让我们在游戏世界中释放最真的自我,玩游戏过程中学习到智慧。游戏也是游戏开发者发现生活中的智慧的展示载体,传播了开发者对生活智慧的乐趣。我们将从0到1,帮助游戏开发者讲述游戏是怎么制作出来的。

什么是H5游戏?

H5游戏具有即开即玩、碎片化、上手简单、易玩等特点,市面上的游戏平台包括了:微信公众号、微信小游戏、QQ玩一玩、Facebook InstantGames、新浪微博小游戏等,主流的游戏开发商包括爱微游、疯狂游乐场等,下面是H5游戏平台和H5游戏的截图:

H5游戏市场崛起

随着更多的游戏平台崛起,包括:微信小游戏、QQ玩一玩、facebook instant games、新浪微博等,给H5游戏市场带来了更多的生机活力,下图是H5游戏的市场趋势图:

游戏类型

  • 动作游戏【ACT】、冒险游戏【AVG】、格斗游戏【FTG】、角色扮演游戏【RPG】
  • 恋爱游戏【LVG】、音乐游戏【MUG】、即时战略游戏【RTS】、射击游戏【STG】、益智或解谜游戏【PUZ】
  • 卡片游戏【CAG】、竞速游戏【RAC】、体育游戏【SPG】、模拟经营游戏【SIM/SLG】、第一人称视点射击游戏【FPS】、桌面游戏【TAB】、...

其中的H5游戏的市场的类型分布占比如下图所示:

精巧团队

基础团队
  • 游戏策划一汪:游戏功能需求、数据、关卡等设计
  • 视觉设计二狮:界面、动画特效、交互等
  • H5游戏二猿&游戏后端一猿:游戏开发、部署、管理等
更有甚小团队
  • 视觉兼策划一枚
  • H5游戏开发二生
细化岗位
  • 游戏主策、数据策划、关卡策划
  • 视觉设计、动画设计、特效设计、原画设计、地图设计
  • 主程、引擎开发、游戏工具开发、游戏动画开发、游戏后端开发、运维、游戏测试、性能测试、...

游戏三跨步

H5游戏的特点是开发周期短、轻量级、即开即玩,那绕不开下面几个方面:

  • 游戏系统
  • 游戏引擎
  • 开发工具

游戏系统

游戏系统定义了我们要开发的游戏功能,不同游戏针对不同的玩家,会设计不同的系统,丰富游戏的可玩性,提高游戏的乐趣。举例来说,放置类游戏一般的系统设计如下所示:

游戏引擎

什么是游戏引擎?

游戏引擎是一套图形库,封装了一套底层的能力,并且提供了多套游戏动画库,提供了网络特性、物理系统、动画、粒子特效、龙骨动画等功能,市面上比较知名的H5游戏引擎包括了:白鹭引擎、cocos、layabox、threesjs(3D)、phaser、hilo等

为什么用游戏引擎?

游戏引擎能够帮助游戏开发者提高开发效率,缩短开发周期,提升了游戏的性能;运用游戏引擎,开发者能够按照规则开发出相对易于维护的代码,减少了界面开发的复杂性

游戏引擎学习

游戏引擎厂商提供了丰富的文档,我们需要学习游戏的基础库文档,通过例子不断的实践,循序渐进、从浅到深的方式的学习,以白鹭引擎为例:

  1. 下载开发工具,并且学习Egret Engine2D基础库文档
  2. 学习上层封装组件EUI库
  3. 学习动画相关的,包括了缓动、龙骨动画、MovieClip等
  4. 学习粒子效果库、物理世界库(p2)等
  5. 学习外部库,包括了音频howlerjs、网络(websocket、http)、项目工程化(redux、react等)
  6. 遇到问题,反复查询文档回顾学习,论坛查找问题解决方案,微信群提问等方式积累

开发工具

开发工具对于开发者来说,可以进行可视化的编辑页面,与此同时,提供了各种动画和粒子的可视化制作及导出,帮助开发者提高开发效率,其中开发工具还可以进行实时的编辑调试,及时的帮助开发者定位问题,拿白鹭工具举个栗子: 

  • 编辑器【Egret Wing】:可视化编辑界面,并且实现一些简单的缓动效果可视化
  • 雪碧图【Texture Merger】:提供雪碧图合并导出,并且可以将gif,swf等动画转成MovieClip可运行的文件
  • 龙骨动画编辑器【DragonBones】:提供了龙骨动画的可视化编辑,支持多种格式文件导出
  • 粒子编辑器【Egret Feather】:提供了粒子的可视化制作
  • 调试工具【Egret Inspector】:chrome插件,可以及时定位错误

当然,除了上面的工具,还有其他工具,如:地图制作工具、关卡制作工具、性能分析工具...

知识体系

由于H5游戏的特殊性,他对游戏开发者提出了更高的要求,以下是你想入门游戏必须掌握的知识体系:

  • 前端知识
  • 游戏知识
  • 平台知识
前端知识

由于H5游戏属于Web范畴,所以需要具备很多的前端的基础知识,包括了以下几个方面:

  • 基础语言:JavaScript、HTML、CSS、TypeScript、PHP等
  • 浏览器:浏览器缓存、本地存储、浏览器页面渲染流程、多屏适配、兼容性
  • 网络协议:HTTP、HTTPS、WebSocket
  • 缓存:redis、memcache
  • 音频视频:howlerjs
  • 基础技能:PS切图、动画制作、音频剪切压缩
游戏知识

由于H5游戏又有游戏的范畴,也是一个复杂的前端工程化项目,对基础游戏知识和前端工程化知识也有一定的要求:

  • 资源管理:按需加载,延迟加载
  • 图片压缩:tinypng、雪碧图、减少动画帧
  • 数据状态管理:redux、react...
  • 实时性管理:socketio
  • 解耦业务系统:新手引导、红点系统
平台知识

H5游戏的发布需要平台作为载体,需要掌握相关平台的能力体系,进行适应性开发,充分发挥平台的能力:

  • 微信公众号:授权、支付、分享、关注、客服、红包
  • 其他平台:账户、支付、数据统计、兑换码、添加图标到桌面、分服

相关规范

H5游戏开发 && 设计师:
  • 通用按钮一致性
  • 背景图片可复用
  • 特效动画尽量精简帧数
  • 粒子特效尽量减少资源
  • ...
H5游戏开发 && 游戏后端:
  • 接口规范:规定单个页面中的查询数据一个接口返回,奖品规范格式返回,错误格式规范
  • 前后端通信协议,小团队建议使用HTTP,实时性使用websocket
  • 公共组件提取:账户、支付、红包、平台、...
  • ...

性能优化

资源
  • 小图资源进行雪碧图合并
  • 动画进行重复帧数减少跟复用
  • 图片进行tinypng压缩
  • 资源按需、按页面异步加载
  • 图片进行浏览器缓存:cdn、静态资源站点
  • 首屏游戏资源大小控制在2M以内,提供加载页优化用户体验
内存
  • 使用chrome性能分析,对函数内存优化
  • 减少JavaScript大数据或复杂运算
  • 对动画、缓动的计算进行优化
  • 保证游戏的FPS在30帧以上
网络
  • 实时性要求高的使用websocket,减少使用不断轮询方式
  • 合并没必要的请求,减少请求数
  • 对请求响应时间做数据统计分析,定位接口问题
  • 对大流量接口进行数据优化

写在最后

游戏更像一场奇幻的魔术秀,好的游戏能够带给游戏玩家无限的惊喜感和快乐。而游戏开发者正如伟大的魔术师一样,发现生活中的智慧,精心安排游戏中的每一个环节,把最优秀的游戏作品制作出来,奉献给玩家。正因为热爱改变,所以我们才一起聚集在游戏行业中。

微信扫一扫关注“游戏好莱坞“,更及时的获取到最新的动态

从0到1开发H5游戏相关推荐

  1. 从0到1实现H5游戏

    从0到1实现H5游戏 预览 试玩地址 源码 简介 我将这款游戏命名为herald(先驱),玩家可以在界面右上角改变操控模式(鼠键模式和声音模式),通过鼠标点击.空格键.↑键以及声音控制herald(h ...

  2. 开发H5游戏引擎的选择:Egret或Laya?

    一.H5游戏开发的引擎介绍 开发H5游戏的引擎有很多,比如egret.laya.cocos-js等等.这里主要是分析的是egret和laya,因为我们团队是从as3转过来的.所以天然地在有as3基因的 ...

  3. createjs开发h5游戏: 指尖大冒险

    之前看到一个指尖冒险游戏,觉得挺有意思,就想学习一下怎么实现,毕竟当产经提出类似的需求时,问我等开发可不可以实现的时候,不至于回答不知道. 本文的主要思路,参考的是凹凸实验室的这篇文章:H5游戏开发: ...

  4. 白鹭引擎 4.0 发布 让重度H5游戏研发更简单

    今天,白鹭引擎 4.0正式发布,此次版本包含众多新特性,主要提升了目前市场上重度HTML5游戏性能,内存以及开发效率等,为开发者提供强有力的技术支撑,保证用户在开发重度游戏时可以随心所欲的实现游戏功能 ...

  5. 使用Cocos2d-JS开发H5游戏

    如何学习 如何开始学习Cocos2d-JS?我我觉得比较好的方式是: 1)看测试例:测试例 2)看API文档: 在线API索引(中文版) 下载版API索引 3)看源码 另外还有大神录制了进阶视频教程: ...

  6. cocoscreator开发h5游戏提升加载速度

    有个cocoscreator开发的游戏项目需要导出h5端.开发完毕,导出web-mobile端,然后部署到nginx容器里,问题来了,加载速度有点慢. 解决这个问题的直接方式,就是直接把游戏包放在cd ...

  7. php开发h5游戏,H5的canvas实现贪吃蛇小游戏

    这次给大家带来H5的canvas实现贪吃蛇小游戏,H5的canvas实现贪吃蛇小游戏注意事项有哪些,下面就是实战案例,一起来看一下. 本文介绍了H5 canvas实现贪吃蛇小游戏,分享给大家,具体如下 ...

  8. 开发H5游戏练手, 黑暗堡垒-炼狱传奇H5 (一) 登陆界面开发

    项目介绍 使用JS lufylegend框架编写RPG游戏练手项目,首先展示几项目的效果图: 项目地址 https://github.com/mangenotwork/HABL-H5 介绍 lufyl ...

  9. 开发H5游戏练手, 黑暗堡垒-炼狱传奇H5 (三) 玩家信息,背包,商店,技能,任务,玩家菜单,游戏菜单,NPC对话与攻击怪物

    项目地址 https://github.com/mangenotwork/HABL-H5 基于 lufylegend 开发 lufylegend 框架官网 : http://www.lufylegen ...

  10. 开发H5游戏练手, 黑暗堡垒-炼狱传奇H5 (二) 游戏界面-地图与角色

    项目地址 https://github.com/mangenotwork/HABL-H5 基于 lufylegend 开发 lufylegend 框架官网 : http://www.lufylegen ...

最新文章

  1. H. Fight Against Monsters
  2. 我是如何学习写一个操作系统(六):进程的调度
  3. linux 计算集群搭建,使用centos构建服务器计算集群
  4. VDO-SLAM论文阅读
  5. IT人必读:写给浮躁的IT同仁
  6. TA能让你家的那些“哑”终端都“活”过来
  7. 虚函数,虚基类 与纯虚函数 一
  8. sencha touch 入门学习资料大全
  9. windows服务器管理(1)——WinServer2012 开启中文语言包(无需下载补丁)
  10. java摄像头推流,流媒体服务 javaCV-2 推流
  11. 像写C#一样编写java代码
  12. URLClassLoader加载class到当前线程类加载器【zt】
  13. SPSS缺失值处理【SPSS 009期】
  14. 增强 扫描王 源码_全能扫描王(一款识别率超高的OCR识别APP)
  15. 人工智能本科专业高校名单大全(440所)
  16. python是高级语言还是低级语言_python学习之高级语言和低级语言
  17. matlab 拟合光滑曲线图,Matlab光滑曲线多项式拟合与样条曲线拟合的两个案例
  18. 解决Linux图片加水印(Graphics2D)出现方框的问题
  19. mathtype中如何添加一个圆圈中间一个减号的符号
  20. 第9周 Python计算生态概览

热门文章

  1. Docker for Mac配置阿里加速器
  2. Calendar打印日历
  3. JRebel安装、最新激活方式
  4. 使用prometheus+grafana监控k8s集群
  5. python 菜鸟 3.0-终于清楚python菜鸟入门教程
  6. 【狂神说】Spring学习笔记(全)
  7. 中国地图流动图(一)
  8. uni-app项目部署 打包 运行
  9. 用计算机计算实际利率,教你计算信用卡分期真实利率,算完大吃一惊!
  10. PPT分享 | 怎么在区块链上保护隐私?