小游戏开发(1) | 青训营笔记

216 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的的第13天

游戏

广泛意义上的游戏

一种有组织的玩耍,一般是以娱乐为目的,有时也有教育目的,在英语中,体育比赛(game)也是游戏,只要其活动本质带有目的、规则、挑战和互动,我们都可以把其归为游戏

缩小范围指电子游戏,在游戏中,玩家依托电子设备(如电脑、游戏机、手机等)进行交互

狭义上的游戏

通过游戏引擎制作的电子游戏

游戏分类:根据玩法进行大类分,再经过小类细化

image.png

前端场景下的游戏开发

游戏开发的基本链路

image.png

为什么要用游戏引擎

游戏引擎能够给我们一套完整的实现方案,不需要我们再自己去拼凑、封装,让你花更少的事件做出更好的效果,特别是关于渲染效率和性能优化

游戏引擎最大的优势是:渲染

引擎的诞生就是因为一家公司做了一款游戏,做下一款游戏时复用了上一款游戏的代码,后来发现这些代码几乎每个游戏都会用到,抽离出来就成了一个引擎。如果不使用引擎,你可以做复杂的动效渲染和交互吗?当然可以,但并不一定方便。所以游戏引擎更像是一套解决方案,让你在制作某一类型的产品的时候能够提高你的开发效率。

前端开发过渡到游戏开发

前端开发和游戏开发并不是相斥的,现在市面上很多小游戏、H5游戏都是Web前端开发制作的,并不是专门的游戏开发团队研发的。原因可能如下:

  • 接触前端开发的研发数量远大于接触游戏开发的数量(招聘成本高)
  • 2d游戏引擎上手门槛足够低(易上手)
  • 活动H5中的游戏玩法的实现方式比较模糊(开发界限模糊)

游戏引擎

市面常见的游戏引擎

  • Unreal(虚幻引擎,《PUBG》《GTA5》)
  • Source(起源引擎,《CS》《Dota2》)
  • Frostbite Engine(寒霜引擎,《战地》《极品飞车18》)
  • Unity3D(《炉石传说》《王者荣耀》)

特定类型的客户端游戏引擎

  1. The NVL Maker——文字冒险游戏制作器: No Code形式的开发,只需要写文字脚本加上一定的配置就可以生成一个文字冒险游戏,代表作《Fate/stay night》和steam上一众GAL Game
  2. RPG Maker:可以Low Code搭建一个关卡类型的游戏,适合代码能力不强但是想发挥自己的创意的开发者,代表作 《To the Moon》

Web游戏引擎

利用Canvas和WebGL为底层技术抽象的图像绘制库(往往还附带一些其他的功能)

Web游戏引擎的通用能力

  • 预加载
  • 展示与图层、组合系统
  • 动画系统
  • 音效和声音系统

Cocos

优势:

  • 平台支持能力好
  • 完善的游戏功能支持
  • 生态较好

缺点:

  • 3D能力仍在建设中
  • 版本迭代过快

Laya

优势:

  • 3D能力比较成熟
  • 支持JS、TS、AS
  • 引擎体积小

缺点:

  • 界面能力不友好
  • 生态很差

Egret

优势:

  • 工具链比较完善
  • 第三方库支持好
  • 企业定制能力强

缺点:

  • 更新迭代瓶颈
  • 生态较差