Skip to content

迷你屋 是一个开放,模块化,数据驱动,前端友好的小游戏框架 🎮(实验中)

License

Notifications You must be signed in to change notification settings

nshen/mini-shed

Repository files navigation

mini-shed 小游戏,小框架

一个开放,模块化,数据驱动,前端友好的小游戏框架(实验中)


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/cli shed-cli-status 命令行工具,主要用来创建,编译小游戏,还提供一些辅助功能
@shed/ecs shed-ecs-status 开放的 Entity-Component-System 系统实现
@shed/math shed-math-status 数学支持库 Matrix,Vector 等
@shed/gl shed-gl-status 使WebGL API 简化的面向对象包装
@shed/platform shed-platform-status 以微信小游戏为基准,统一各小游戏平台提供的API,并 Promise
@shed/utils shed-utils-status 一些实用类或函数

新包模板

创建一个新包可以基于此修改

Package Status Description
@shed/new-package shed-new-package-status 一个配置好typescript, babel, rollup 的模板包

Systems

Entity Component System 中的 System 可以独立成一个 npm 包存在,使得非常容易扩展。

Project Status Description
@shed/render2d-system @shed/render2d-system-status 2d渲染系统,它会尽量把所有 Entity 打包在一起一次渲染

默认demo包

Package Description
@shed/starter 使用shed create 命令创建的默认demo

.github 文件夹

.github 文件夹内是 github actions ,用于发布@shed/starter 到国内镜像

触发

每次push源代码到 github 时,会触发此流程

发布 starter

github actions会自动把 /packages/starter 目录 ,强推到 coding.netgitee.com 以下项目地址

使用@shed/cli命令行创建游戏时,实际上是从上边的地址clone下来的

shed create myGame 
# 实际相当于 
# git clone https://e.coding.net/shed/mini-shed-starter.git myGame

Contributors

License

The MIT License

About

迷你屋 是一个开放,模块化,数据驱动,前端友好的小游戏框架 🎮(实验中)

Resources

License

Stars

Watchers

Forks

Packages

No packages published