这是我参与「第四届青训营 」笔记创作活动的的第3天
一、本堂部分内容:
- 前端场景下的游戏开发
- 游戏引擎
- 游戏开发的技能树
二、前端场景下的游戏开发:
最小团队(能力强的话可以独立开发)
最小团队只需如下三个部分:
-
策划
-
程序
-
美术
完整点说的话如下图:
开发的基本链路
简单说的话就是:
graph LR
策划案 --> 游戏Demo --> 体验版本 --> 运营
具体呢,如下图:
三、游戏引擎:
为什么要用呢?
首先,游戏引擎中最大的游戏:渲染。
其他原因如下:
-
而有些代码几乎每个游戏都会用到,为了不反复造轮子,使用游戏引擎是很好的解决方案\
-
因为你想要的它能够给你一套完整的实现方案,不需要你再自己去拼凑、封装,让你花更少的时间做出更好的效果,特别是关于渲染效率和性能优化。\
-
它提供游戏开发时需要的常见功能:引擎会提供许多组件,使用这些组件能缩短开发时间,让游戏开发变得更简单;专业引擎通常会能比自制引擎表现出更好的性能。游戏引擎通常会包含渲染器,2D/3D图形元素,碰撞检测,物理引擎,声音,控制器支持,动画等部分\
前端开发到游戏开发
那从前端开发到游戏开发有什么要注意的呢?
-
前端开发和游戏开发不是相斥的\
-
现在市场上很多H5游戏、小游戏都是Web前端开发制作的,而不是专门的游戏开发团队、专业的游戏研发同学开发。原因:
- 1.接触前端开发的研发数量远大于接触游戏开发的数量(招聘成本高)\
- 2.2d游戏引擎的上手门槛已经足够低(易上手)\
- 3.活动H5中的游戏玩法的实现方式比较模糊(开发界限模糊)\
-
现在很多主流的2d游戏引擎都支持使用JavaScript进行开发同时使用相关的工程化能力,也是游戏开发向web前端开发靠拢的一种表现。\
特定类型的客户端游戏引擎
利用这些特定类型的客户端游戏引擎,你可以专注于想法到现实的转变,
而不用苦恼于单有想法而无代码能力!
-
The NVL Maker——文字游戏冒险制作器
\
-
RPG Maker
Web游戏引擎
此处介绍了4种引擎,分别是:
- Cocos
- Laya
- Egret
- CreatJS & Phaser(无可视化UI)
功能引擎
-
大型游戏引擎往往是由小的功能引擎组装成的,一个大型游戏引擎往往包含渲染引擎、物理引擎、UI系统、声音系统、动画系统、粒子系统、骨骼系统、网络系统等组合而成。其中最重要的便是渲染引擎和物理引擎。
-
功能引擎是专注某个方向能力的引擎,其特点是体积小、功能完善。特别是Pixijs和Three.js这两个渲染引擎,通常被误以为是一个完整的游戏引擎,但它们是专注渲染能力的渲染引擎。
-
引擎区分图表:
2D游戏引擎的技术架构
如下图,也看不懂:
Web游戏引擎的渲染原理
- 以Pixi的渲染流程为例子大致流程如下:
1.创建一个Renderer渲染器,获取它的view (一个canvas对象),添加到Dom Tree中。(或者指定Dom Tree中已经存在的canvas对象作为view)\
2在MainLoop(主循环)中调用Renderer.render()并传入一个DisplayObject作为根节点开发渲染。\
3.从场景树的根节点开始,以zIndex为序从小到大进行深度优先遍历,对每个节点进行渲染操作,由后往前把整个场景绘制一次。(CanvasRenderer)\
4.WebGL的render方法执行过程
四、游戏开发的技能树:
放上一张路线图: