游戏开发的最小基本链路
组建一个最小但最完整的游戏开发团队只需要3个人:策划、程序、美术。
游戏引擎
游戏引擎能够给你一套完整的实现方案,不需要你再自己去拼凑、封装,让你花更少的时间做出更好的效果,特别是关于渲染效率和性能优化。
它提供游戏开发时需要的常见功能:引擎会提供许多组件,使用这些组件能缩短开发时间,让游戏开发变得更简单;专业引擎通常会能比自制引擎表现出更好的性能。
游戏引擎通常会包含渲染器,2D/3D图形元素,碰撞检测,物理引擎,声音,控制器支持,动画等部分。
前端开发和游戏开发并不相斥,但在开发理念上,游戏开发更关注内容。
渲染是游戏引擎的基础
引擎的诞生就是因为一家公司做了一款游戏,做下一款游戏时复用了上一款游戏的代码, 后来发现这些代码几乎每个游戏都会用到,抽离出来就成了一个引擎。
如果不使用引擎,无法方便地做复杂的动效渲染和交互,因此游戏引擎更像是一套解决方案,能够提高你的开发效率。
前端开发最容易上手的引擎
- The NVL Makers——文字冒险游戏制作器:No Code形式的开发,只需要写文字脚本加上一定的配置就可以生成一个文字冒险游戏。但其缺乏迭代和运营。
- RPG Maker可 以Low Code搭建一个关卡类型的游戏,适合代码能力不强但是想发挥自己的创意的开发者。
- 利用Canvas和 WebGL为底层技术抽象的图像绘制库(往往还附带一些其他的功能)
Web游戏引擎的通用能力
- 预加载:游戏引擎中的预加载引擎将加载时机、加载过程加以抽象,解决加载编码中的效率问题。
- 展示与图层、组合系统:对于Web游戏编程而言,往往选择Canvas 或WebGL作为渲染方式(大家可以想想为什么不用DOM作为渲染方式?)。而Canvas 和 WebGL作为底层的API,,接口非常基础,需要用大量的编码来编写简单的展示。而且图形之间没有组合和图层,很难处理元素组合和图层问题。渲染引擎和图层、组合系统应运而生。
- 动画系统:动画往往被分为缓动动画和逐帧动画,这里讨论缓动动画系统。缓动动画系统在原生JS 中需要搭配帧渲染进行考量而进行书写,代码量和思考量巨大,抽象程度低,所以需要游戏引擎动画系统。
- 音效和声音系统:游戏相较于普通的Web前端而言需要更加立体、及时的反馈,声音和音效是反馈的重要组成部分。
其中web游戏引擎有:Cocos、Laya、Egret、Create&Phaser