一个专为纯前端单机游戏打造的全方位集成平台。它旨在通过简单的 SDK 接入,为传统单机游戏提供后端能力,包括用户认证、云端存档、数据同步以及管理后台。
- 🚀 快速接入:通过
fishpi-play几行代码即可完成用户登录与数据持久化。 - 🛡️ 安全认证:深度集成摸鱼派开放平台,提供安全可靠的身份验证。
- ☁️ 云端存档:支持游戏存档的上传与下载,支持多设备无缝连接。
- 📊 游戏管理后台:
- 开发者端:注册新游戏、管理域名白名单、配置回调路径、查看玩家数据。
- 超级管理端:审批游戏申请、下架违规游戏、全局资源监控。
项目采用 Monorepo 架构进行管理:
/
├── apps/
│ ├── admin/ # 管理后台前端 (Vue 3, Element Plus, Vite, Pinia)
│ └── server/ # 后端服务 (Express, TypeORM, MongoDB / MySQL, TypeScript)
├── packages/
│ └── sdk/ # 游戏接入 SDK (Type-safe HTTP client)
└── package.json # 根目录工作区配置
- Frontend: Vue 3, Vite, Element Plus, Pinia, Vue Router, Iconify
- Backend: Node.js, Express, TypeORM, TypeScript
- Database: MongoDB / MySQL (可选)
- Package Manager: NPM (Workspaces)
- Node.js (建议 v18+)
- MongoDB 或 MySQL
-
安装依赖
npm install
-
配置后端 在
apps/server/src/config.ts、config.json或环境变量中配置 MongoDB 或 MySQL 连接信息(亦可在首次访问管理后台时通过初始化界面配置)。 -
启动开发环境
启动后端服务:
npm run dev --prefix apps/server
启动管理后台:
npm run dev --prefix apps/admin
脚本会自动优先读取 config.json 中的 mongodb 与 mysql 连接配置,你可以通过 --dataType(或 --type)指定操作的数据库类型,无需重复输入主机与账号密码:
-
导出数据(支持从 MongoDB 或 MySQL 导出,自动生成 JSON 备份):
# 直接读取 config.json 中的 mongodb 配置进行导出 npm run db:export -- --dataType mongodb # 或直接读取 config.json 中的 mysql 配置进行导出 npm run db:export -- --dataType mysql
-
导入数据(自动建立库表、去重并同步索引):
# 直接读取 config.json 中的 mysql 配置导入数据(并自动将系统切换为 mysql 模式) npm run db:import -- --dataType mysql # 或导入到 mongodb npm run db:import -- --dataType mongodb
-
一键全量迁移 (MongoDB -> 备份文件 -> MySQL):
# 脚本将同时读取 config.json 中的 mongodb(作为源库)和 mysql(作为目标库)直接完成全量迁移 npm run db:migrate
- 进入“游戏注册”页面填写游戏名称、Key 及相关配置。
- 提交申请后,状态默认为
待审批。 - 超级管理员在“超级管理”页面进行
通过操作后,游戏正式上线并可使用 SDK。
import { GameSDK } from 'fishpi-play';
const sdk = new GameSDK('YOUR_GAME_KEY');
// 登录
await sdk.login();
// 获取存档
const archive = await sdk.getArchive();
// 上传存档
await sdk.saveArchive(archiveData);SDK 更多使用方法请参考 SDK 文档。