小游戏开发

article/2025/8/26 18:01:54

小游戏开发

1、游戏发展历史

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

狭义:通过游戏引擎制作的电子游戏。


2、前端场景下的游戏开发

开发链路和角色
在这里插入图片描述
在这里插入图片描述
为什么要用游戏引擎

游戏引擎最大的游戏:渲染

引擎的诞生就是因为一家公司做了一款游戏,做下一款游戏时复用了上一款游戏的代码,后来发现这些代码几乎每个游戏都会用到,抽离出来就成了一个引擎。所以游戏引擎更像是一套解决方案,让你在制作某一类型的产品的时候能够提高你的开发效率。

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

它提供游戏开发时需要的常见功能:引擎会提供许多组件,使用这些组件能缩短开发时间,让游戏开发变得更简单;专业引擎通常会能比自制引擎表现出更好的性能。

游戏引擎通常会包含渲染器,2D/3D图形元素,碰撞检测,物理引擎,声音,控制器支持,动画等部分。

前端场景下的游戏开发

需要先有一个明确的认知:前端开发和游戏开发不是相斥的。现在市场上很多H5游戏、小游戏都是Web前端开发制作的,而不是专门的游戏开发团队、专业的游戏研发同学开发。其原因可能在于:

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

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

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


3、游戏引擎

The NVL Maker——文字冒险游戏制作器

No Code形式的开发,只需要写文字脚本加上一定的配置就可以生成一个文字冒险游戏。当然,由于缺乏迭代和运营,该游戏引擎算是比较小众的。

RPG Maker

RPG Maker可以Low Code搭建一个关卡类型的游戏,适合代码能力不强但是想发挥自己的创意的开发者。

Web游戏引擎

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

Web游戏引擎的通用能力:

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

Web游戏引擎-Cocos
在这里插入图片描述

Web游戏引擎-Laya
在这里插入图片描述

Web游戏引擎-Egret

Web游戏引擎-CreateJS & Phaser
在这里插入图片描述
功能引擎
大型游戏引擎往往是由小的功能引擎组装成的,一个大型游戏引擎往往包含渲染引擎、物理引擎、UI系统、声音系统、动画系统、粒子系统、骨骼系统、网络系统等组合而成。其中最重要的便是渲染引擎和物理引擎。

功能引擎是专注某个方向能力的引擎,其特点是体积小、功能完善。特别是Pixi.js和Three.js这两个渲染引擎,通常被误以为是一个完整的游戏引擎,但它们是专注渲染能力的渲染引擎。

下面介绍几种可能会经常接触的功能引擎:
在这里插入图片描述
web游戏引擎的渲染原理
在这里插入图片描述
在这里插入图片描述


4、游戏开发入门技能树

在这里插入图片描述


5、PixiJS+Web开发

Pixi简介:本质上还是一个渲染引擎,它不仅仅能做游戏,还能使用这个技术去创建任何交互式内容,比如APP,还能够在它的基础上做自己的游戏引擎。(AVG.js和 Phaser.js 的渲染引擎就是Pixi)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


6、Cocos Creator编辑器开发

Cocos Creator介绍:一个完整的游戏开发解决方案,包含了轻量高效的跨平台游戏引擎,以及能让你更快速开发游戏所需要的各种图形界面工具。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


7、扩展

游戏发布平台的差异性:
在这里插入图片描述
游戏开发的重要理念:

激发创造!把游戏开发过程当作一个游戏,在规则的约束下通过创意和技术力挑战一个高质量游戏开发。


http://chatgpt.dhexx.cn/article/76j2TBwJ.shtml

相关文章

小游戏开发指南及过程中的难点问题

如果仅仅针对个人开发者来讲,要独立开发一款大型游戏几乎无可能,更大成功的可能还是开发一款类似《羊了个羊》这样洗脑的小程序游戏。 所以这里主要论述小游戏开发的情况,也就是小程序游戏,首先从小游戏的开发流程来看&#xff1…

oracle数据库中的注释

oracle数据库中的注释 单行注释-- --这是oracle中的单行注释 SELECT SYSDATE FROM dual; 多行注释/**/ /*这是oracle中的多行注释*/ SELECT 6 6 AS "计算结果" FROM dual;

MYSQL数据库如何写注释

方式一 注意:在写注释时,–与注释之间必须要一个空格 select * from stu -- 注释方式二 注意:这种方式比较随意,加不加空格不影响 select * from t_info #注释select * from t_info#注释select * from t_info # 注释方式三 s…

Idea连接数据库,显示表注释

idea设置显示数据库表名注释 操作步骤: View Apperarance Details in Tree View选上

达梦数据库中的注释的使用

在管理规模较大的数据库时,我们往往需要面对大量的表与视图,与此同时在表与视图中可能会存在着许多的字段,让人难以迅速分辨,不利于对于数据库对象的管理。除了在命名时,对于有意义的表、视图及列,应尽量赋…

Jpa 自动建表的时候在数据库中添加注释。

github地址 本项目可以让 Jpa 自动建表的时候在数据库中添加注释。 为什么做这件事 过去想要让 Jpa 在建表的时候自动添加注释一般需要使用 Column#columnDefinition 属性。示例如下: Column(columnDefinition "INT COMMENT ...") private int unitI…

达梦数据库中迁移过来的数据,在Mysql中批量添加注释,修改注释

一、原因 数据是从达梦数据库中迁移过来的,迁移完成注释丢失 二、方法 利用 information_schema.COLUMNS 这个表 三、执行步骤 1.这是达梦数据库导出的注释2.达梦的数数据库数据导出时是和创建表和索引都在一起,因此需要单独把注释这一块的给提取出…

2021.3.17丨致病菌毒力因子(VFDB)数据库注释

摘要 接到一个常规细菌的组装注释项目,不过客户提出想要获取关于组装结果与病毒之间的联系/按之前的操作,dfast没有病毒相关的数据库,无法满足客户需求。一番查阅,发现大家用这个VFDB数据库进行常规的病毒注释,下面将介…

【TP5】获取数据库注释信息

author:咔咔 wechat:fangkangfk table为表名 $data Db::query(SHOW FULL COLUMNS FROM .$table);

SpringBoot中使用Mybatis逆向工程(实体类含数据库注释)

Mybatis逆向工程:根据创建好的数据库表,生成对应的实体类、DAO、映射文件 文章目录 开发环境1.新建SpringBoot应用2.添加逆向工程插件依赖3.执行逆向生成 开发环境 开发工具:IntelliJ IDEA 2021.3.3 (Ultimate Edition)SpringBoot版本&#…

达梦数据库中注释的使用

在管理规模较大的数据库时,我们往往需要面对大量的表与视图,与此同时在表与视图中可能会存在着许多的字段,让人难以迅速分辨,不利于对于数据库对象的管理。除了在命名时,对于有意义的表、视图及列,应尽量赋…

达梦数据库注释的使用方法

在管理规模较大的数据库时,我们往往需要面对大量的表与视图,与此同时在表与视图中可能会存在着许多的字段,让人难以迅速分辨,不利于对于数据库对象的管理。除了在命名时,对于有意义的表、视图及列,应尽量赋…

数据库注释符

数据库注释符 MySQL数据库支持3中注释: 从‘#’字符到结尾;从‘- -’序列到结尾(‘- -’要求第二个破折号后面至少跟一个空格);从/*到*/,可跨行; 例:

k8s安装kuboard面板

前面介绍了k8s的dashboard面板,这里介绍国人开发的kuboard面板,相较于dashboard面板,kuboard面板对很多运维调试功能做了很多增强。 官方文档:https://www.kuboard.cn/install/v3/install.html#kuboard-v3-x-%E7%89%88%E6%9C%AC%E…

[CKA]考试之K8s 版本升级

由于最新的CKA考试改版,不允许存储书签,本博客致力怎么一步步从官网把答案找到,如何修改把题做对,下面开始我们的 CKA之旅 题目为: Task 现有的Kubernetes 集群正在运行版本1.22.0。仅将master节点上的所有 Kuberne…

k8s kuboard-部署skwalking-es

1.导入变量 前提安装:helm export SKYWALKING_RELEASE_NAMEskywalking export SKYWALKING_RELEASE_NAMESPACEskywalking 2.添加仓库 export REPOskywalking helm repo add ${REPO} JFrog 3.安装部署 helm install "${SKYWALKING_RELEASE_NAME}" ${REPO}/…

Kuboard Spray+Kuboard搭建k8s集群

使用Kuboard Spray搭建k8s集群 服务器环境 使用3台centos7.6系统虚拟机,4核4g内存,使用最小化安装系统,并修改配置好网络 k8s版本1.23.12,docker版本20.10.18,集群角色规划如下 192.168.2.101 k8s01 master,etcd,wor…

k8s-RBAC

一、认证及sa 1.进入到证书目录 cd /etc/kubernetes/pki/2.创建kxq用户的私钥 (umask 077; openssl genrsa -out kxq.key 2048 )3.创建kxq用户的证书 openssl req -new -key kxq.key -out kxq.csr -subj "/CNkxq"4.利用ca.crt,ca.key进行签证 [rootm…

【Kubernetes系列】Kubernetes管理工具Kuboard的安装使用

目录 一、Kuboard 简介二、安装方式三、安装四、升级1.停止已有 kuboard 容器2.使用新版本的镜像启动 kuboard 五、访问 一、Kuboard 简介 Kuboard 是一款专为 Kubernetes 设计的免费管理界面,提供了丰富的功能,结合已有或新建的代码仓库、镜像仓库、CI…

linux下kegg注释软件,工具篇丨GO和KEGG富集不到通路?快试试这个超赞的功能分析工具吧...

原标题:工具篇丨GO和KEGG富集不到通路?快试试这个超赞的功能分析工具吧 i生信 专注生物分析最前沿 定期解读生信文章 提供生信分析思路和套路 方便大家短平快发SCI GO和KEGG富集分析是我们在筛选出差异表达基因之后,都会去做的套路性分析。然鹅……我相信,总有那么一些“倒…