小游戏|青训营笔记

165 阅读4分钟

这是我参与「第四届青训营 」笔记创作活动的第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前端开发制作的,而不是专门的游戏开发团队、专业的游戏研发同学开发

  1. 接触前端开发的研发数量远大于接触游戏开发的数量(招聘成本高)

  2. 2.2d游戏引擎的上手门档已经足够低(易上手)

  3. 活动H书5中的游戏玩法的实现方式比较模糊(开发界限模糊)

  4. 现在很多主流的2d游戏引擎都支持使用Javascript进行开发同时使用相关的工程化能力,也是游戏开发向web前端开发靠拢的一种衣现。

    因此.以web前端开发的视角看zd游戏引擎,无非是一套框架、一套解决方案而已.但是开发理念上还是有差别的:游戏开发史关注内容-

游戏引擎

常见游戏引擎

  1. Unreal

  2. Source

  3. Frostbite Engine

  4. Unity3D

  5. The NVL Maker

  6. RPG Maker

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

  1. The NVL Maker--- 适合文字冒险类游戏制作
  2. RPG Maker---一种低代码搭建的关卡类游戏

web游戏引擎

利用canvaswebGL为底层计数抽象的图像绘制库

web游戏引擎的通用能力

  1. 预加载:游戏中往往存在大量的静态素材.包括场景、元素、声音、动画、模型、贴图等.如果以原生5进行请求,并统筹请求时间和加载的时机,将会非常麻烦。游戏引擎中的预加载引擎将加载时机、加载过程加以抽象.解决加载编码中的效率问题.
  2. 展示与图层、组合系统:对于web游戏编程而言,往往选择Canvas 或 webGL作为渲染方式(大家可以想想为什么不用DOM作为渲染方式?).而Canvas和 webGL作为底层的API,按口非常基础,需要用大量的编码来编写简单的展示。而且图形之间没有组合和图层,很难处理元素组合和图层问题。渲染引擎和图层、组合系统应运而生-
  3. 动画系统:动画往往被分为缓动动画和逐帧动画,这里讨论缓动动画系统。缓动动画系统在原生5中需要搭配帧渲染进行考量而进行书写,代码量和思考量巨大,抽象程度低.所以需要游戏引擎动画系统-
  4. 音效和声音系统:游戏相较于普洒的web前端而言需要更加立体、及时的反馈,声音和音效是反愤的重要组成部分。所以声音和音效系统往往包含了声音的播放、音量、截止、暂停等功能的集成。

常见web游戏引擎

  1. Cocos

    优势:

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

    缺点

    • 3D还在建设中

    引擎架构

cocos.png

  1. Laya

    优势:

    • 3D技术成熟
    • 支持JS,TS

    缺点

    • 生态差
    • 页面能力不友好