mini-shed
mini-shed copied to clipboard
迷你屋 是一个开放,模块化,数据驱动,前端友好的小游戏框架 :video_game:(实验中)

一个开放,模块化,数据驱动,前端友好的小游戏框架(实验中)
mini-shed 目前版本 v0.2,龟速独立开发中,有建议,想参与,想聊天的欢迎来骚扰。
特性
- 基于前端流行技术
TypeScript编写,babel+rollup构建,用组合npm包的方式开发小游戏。 - 在
VSCode中开发,Chrome浏览器中实时刷新调试,秒编译到各个小游戏平台。 - 可发布 Web版
H5小游戏,微信/QQ小游戏,头条/抖音小游戏,OPPO/VIVO小游戏等快游戏平台。 Entity-Component-System架构,数据驱动,简单高效,独立System自由组合,易于扩展。- 专注于小且快,没用
Adapter库,原生WebGL渲染,跨小游戏平台统一API。
快速开始
安装 @shed/cli 命令行工具
迷你屋使用 @shed/cli 来创建,编译小游戏。
- 用 npm 安装
npm install -g @shed/cli
# 网络环境不好可安装淘宝镜像 cnpm,之后所有 npm 命令都用 cnpm 代替
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g @shed/cli
- 或用 yarn 安装
yarn global add @shed/cli
打开命令行输入 shed 回车,如果安装成功会有提示信息。
创建一个新的小游戏
> shed create myGame # 在当前目录下创建一个新游戏叫做 `myGame`
进入 myGame 目录,安装依赖
> cd myGame
> npm install # 或者 yarn install
实时编译Web预览
在 myGame 目录中运行
> yarn dev # 或者 npm run dev
编译后电脑会立刻弹开默认浏览器,并且生成本地二维码,手机扫描可与电脑同时查看效果。
此时代码在监视模式中,修改代码保存,电脑和手机浏览器会自动刷新。
其他命令见 @shed/cli 文档页
项目结构
整个项目是在 Lerna 管理下的 monorepo。
mini-shed 中的包是标准的 npm 包,可按需组合,并不局限在下边的包,可自行扩展。
常用包
新包模板
创建一个新包可以基于此修改
| Package | Status | Description |
|---|---|---|
| @shed/new-package | 一个配置好typescript, babel, rollup 的模板包 |
Systems
Entity Component System 中的 System 可以独立成一个 npm 包存在,使得非常容易扩展。
| Project | Status | Description |
|---|---|---|
| @shed/render2d-system | 2d渲染系统,它会尽量把所有 Entity 打包在一起一次渲染 |
默认demo包
| Package | Description |
|---|---|
| @shed/starter | 使用shed create 命令创建的默认demo |
.github 文件夹
.github 文件夹内是 github actions ,用于发布@shed/starter 到国内镜像
触发
每次push源代码到 github 时,会触发此流程
发布 starter
github actions会自动把 /packages/starter 目录 ,强推到 coding.net 和 gitee.com 以下项目地址
- https://shed.coding.net/p/mini-shed-starter
- https://gitee.com/nshen/mini-shed-starter
使用@shed/cli命令行创建游戏时,实际上是从上边的地址clone下来的
shed create myGame
# 实际相当于
# git clone https://e.coding.net/shed/mini-shed-starter.git myGame