从0到1开发H5游戏

前言

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

什么是H5游戏?

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

image

image

H5游戏市场崛起

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

image

游戏类型

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

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

image

精巧团队

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

游戏三跨步

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

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

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

image

游戏引擎
什么是游戏引擎?

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

为什么用游戏引擎?

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

游戏引擎学习

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

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

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

  • 编辑器【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,减少使用不断轮询方式
  • 合并没必要的请求,减少请求数
  • 对请求响应时间做数据统计分析,定位接口问题
  • 对大流量接口进行数据优化

写在最后

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






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


  • 13
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值