这是我参与「第四届青训营 」笔记创作活动的的第13天
游戏
广泛意义上的游戏
一种有组织的玩耍,一般是以娱乐为目的,有时也有教育目的,在英语中,体育比赛(game)也是游戏,只要其活动本质带有目的、规则、挑战和互动,我们都可以把其归为游戏
缩小范围指电子游戏,在游戏中,玩家依托电子设备(如电脑、游戏机、手机等)进行交互
狭义上的游戏
通过游戏引擎制作的电子游戏
游戏分类:根据玩法进行大类分,再经过小类细化
前端场景下的游戏开发
游戏开发的基本链路
为什么要用游戏引擎
游戏引擎能够给我们一套完整的实现方案,不需要我们再自己去拼凑、封装,让你花更少的事件做出更好的效果,特别是关于渲染效率和性能优化
游戏引擎最大的优势是:渲染
引擎的诞生就是因为一家公司做了一款游戏,做下一款游戏时复用了上一款游戏的代码,后来发现这些代码几乎每个游戏都会用到,抽离出来就成了一个引擎。如果不使用引擎,你可以做复杂的动效渲染和交互吗?当然可以,但并不一定方便。所以游戏引擎更像是一套解决方案,让你在制作某一类型的产品的时候能够提高你的开发效率。
前端开发过渡到游戏开发
前端开发和游戏开发并不是相斥的,现在市面上很多小游戏、H5游戏都是Web前端开发制作的,并不是专门的游戏开发团队研发的。原因可能如下:
- 接触前端开发的研发数量远大于接触游戏开发的数量(招聘成本高)
- 2d游戏引擎上手门槛足够低(易上手)
- 活动H5中的游戏玩法的实现方式比较模糊(开发界限模糊)
游戏引擎
市面常见的游戏引擎
- Unreal(虚幻引擎,《PUBG》《GTA5》)
- Source(起源引擎,《CS》《Dota2》)
- Frostbite Engine(寒霜引擎,《战地》《极品飞车18》)
- Unity3D(《炉石传说》《王者荣耀》)
特定类型的客户端游戏引擎
- The NVL Maker——文字冒险游戏制作器: No Code形式的开发,只需要写文字脚本加上一定的配置就可以生成一个文字冒险游戏,代表作《Fate/stay night》和steam上一众GAL Game
- RPG Maker:可以Low Code搭建一个关卡类型的游戏,适合代码能力不强但是想发挥自己的创意的开发者,代表作 《To the Moon》
Web游戏引擎
利用Canvas和WebGL为底层技术抽象的图像绘制库(往往还附带一些其他的功能)
Web游戏引擎的通用能力
- 预加载
- 展示与图层、组合系统
- 动画系统
- 音效和声音系统
Cocos
优势:
- 平台支持能力好
- 完善的游戏功能支持
- 生态较好
缺点:
- 3D能力仍在建设中
- 版本迭代过快
Laya
优势:
- 3D能力比较成熟
- 支持JS、TS、AS
- 引擎体积小
缺点:
- 界面能力不友好
- 生态很差
Egret
优势:
- 工具链比较完善
- 第三方库支持好
- 企业定制能力强
缺点:
- 更新迭代瓶颈
- 生态较差