这是我参与「第四届青训营 」笔记创作活动的第12天
游戏发展史
1970
- 《银河战士》--雅达利游戏
- 一般是街机,家用电脑
1980
- 《合金装备》--
FC游戏(游戏机) - 街机黄金时代,早期网络游戏,LCD掌机游戏
1990
- 《雷神之锤》--
3D游戏 - 街机衰弱,掌机降临,
3D出现
2000
- 《魔兽世界》---网络游戏
- 网络游戏崛起,游戏控制方式改革
2010
- 《王者荣耀》--移动端游戏
- 高分辨率,开发成本,移动端,小游戏
现在的游戏可能是多个分类的重合,但是总是会产生一个标签(竞技类,动作类,冒险类等等)
前端场景下的游戏开发
开发链路和角色
一个游戏开发团队,最小需要三个(策划,程序,美术)
graph LR
id1[游戏团队]-->id2[策划]
id2-->id21[数值]
id2-->id22[内容]
id1-->id3[美术]
id3-->id31[原画]
id3-->id32[2D/3D]
id3-->id33[音效/动效]
id1-->id4[程序]
id4-->前端
id4-->后端
id1-->id5[其他支持]
id5-->QA
id5-->运营
id5-->运维
id5-->市场
为什么要用游戏引擎
游戏引擎最大的优势:渲染
前端开发过度到游戏开发
前端开发和游戏开发不是相斥的 现在市场上很多H5游戏、小游戏都是web前端开发制作的,而不是专门的游戏开发团队、专业的游戏研发同学开发
-
接触前端开发的研发数量远大于接触游戏开发的数量(招聘成本高)
-
2.2d游戏引擎的上手门档已经足够低(易上手)
-
活动H书5中的游戏玩法的实现方式比较模糊(开发界限模糊)
-
现在很多主流的2d游戏引擎都支持使用Javascript进行开发同时使用相关的工程化能力,也是游戏开发向web前端开发靠拢的一种衣现。
因此.以web前端开发的视角看zd游戏引擎,无非是一套框架、一套解决方案而已.但是开发理念上还是有差别的:游戏开发史关注内容-
游戏引擎
常见游戏引擎
-
Unreal
-
Source
-
Frostbite Engine
-
Unity3D -
The
NVLMaker -
RPGMaker
特定类型的用户端游戏引擎
- The
NVLMaker--- 适合文字冒险类游戏制作 RPGMaker---一种低代码搭建的关卡类游戏
web游戏引擎
利用canvas和webGL为底层计数抽象的图像绘制库
web游戏引擎的通用能力
- 预加载:游戏中往往存在大量的静态素材.包括场景、元素、声音、动画、模型、贴图等.如果以原生5进行请求,并统筹请求时间和加载的时机,将会非常麻烦。游戏引擎中的预加载引擎将加载时机、加载过程加以抽象.解决加载编码中的效率问题.
- 展示与图层、组合系统:对于web游戏编程而言,往往选择Canvas 或 webGL作为渲染方式(大家可以想想为什么不用DOM作为渲染方式?).而Canvas和 webGL作为底层的API,按口非常基础,需要用大量的编码来编写简单的展示。而且图形之间没有组合和图层,很难处理元素组合和图层问题。渲染引擎和图层、组合系统应运而生-
- 动画系统:动画往往被分为缓动动画和逐帧动画,这里讨论缓动动画系统。缓动动画系统在原生5中需要搭配帧渲染进行考量而进行书写,代码量和思考量巨大,抽象程度低.所以需要游戏引擎动画系统-
- 音效和声音系统:游戏相较于普洒的web前端而言需要更加立体、及时的反馈,声音和音效是反愤的重要组成部分。所以声音和音效系统往往包含了声音的播放、音量、截止、暂停等功能的集成。
常见web游戏引擎
-
Cocos优势:
- 平台支持能力好
- 完善的游戏功能支持
- 生态好
缺点
3D还在建设中
引擎架构
-
Laya优势:
3D技术成熟- 支持
JS,TS
缺点
- 生态差
- 页面能力不友好