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