131 lines
3.1 KiB
Markdown
131 lines
3.1 KiB
Markdown
|
|
# 星域故事汇
|
|||
|
|
|
|||
|
|
一款 AI 驱动的互动短剧微信小游戏,将超休闲游戏的极简操作与互动叙事的强代入感相结合。
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
ai_game/
|
|||
|
|
├── client/ # 微信小游戏客户端
|
|||
|
|
│ ├── js/
|
|||
|
|
│ │ ├── data/ # 数据管理
|
|||
|
|
│ │ │ └── StoryManager.js
|
|||
|
|
│ │ ├── scenes/ # 场景模块
|
|||
|
|
│ │ │ ├── HomeScene.js # 首页
|
|||
|
|
│ │ │ ├── StoryScene.js # 故事播放
|
|||
|
|
│ │ │ ├── EndingScene.js # 结局页
|
|||
|
|
│ │ │ ├── ProfileScene.js # 个人中心
|
|||
|
|
│ │ │ ├── ChapterScene.js # 章节选择
|
|||
|
|
│ │ │ └── SceneManager.js # 场景管理
|
|||
|
|
│ │ ├── utils/ # 工具类
|
|||
|
|
│ │ └── main.js # 入口文件
|
|||
|
|
│ ├── game.js # 游戏启动
|
|||
|
|
│ └── game.json # 小游戏配置
|
|||
|
|
│
|
|||
|
|
├── server/ # Node.js 后端服务
|
|||
|
|
│ ├── routes/ # API 路由
|
|||
|
|
│ │ ├── story.js # 故事相关接口
|
|||
|
|
│ │ └── user.js # 用户相关接口
|
|||
|
|
│ ├── models/ # 数据模型
|
|||
|
|
│ ├── config/ # 配置文件
|
|||
|
|
│ ├── sql/ # 数据库脚本
|
|||
|
|
│ └── app.js # 服务入口
|
|||
|
|
│
|
|||
|
|
└── README.md
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
**客户端**
|
|||
|
|
- 原生微信小游戏(无引擎)
|
|||
|
|
- Canvas 2D 渲染
|
|||
|
|
- ES6+ 模块化
|
|||
|
|
|
|||
|
|
**服务端**
|
|||
|
|
- Node.js + Express
|
|||
|
|
- MySQL 数据库
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 1. 启动后端服务
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd server
|
|||
|
|
npm install
|
|||
|
|
# 配置 .env 文件(参考 .env.example)
|
|||
|
|
npm start
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 导入客户端
|
|||
|
|
|
|||
|
|
1. 打开微信开发者工具
|
|||
|
|
2. 导入项目,选择 `client` 目录
|
|||
|
|
3. 填入 AppID(测试号可使用测试 AppID)
|
|||
|
|
4. 编译运行
|
|||
|
|
|
|||
|
|
## 核心功能
|
|||
|
|
|
|||
|
|
### 故事游玩
|
|||
|
|
- 沉浸式视觉小说风格界面
|
|||
|
|
- 打字机效果文字展示
|
|||
|
|
- 多分支选择剧情
|
|||
|
|
- 多结局达成系统
|
|||
|
|
|
|||
|
|
### 章节选择
|
|||
|
|
- 可选择任意已解锁节点重新游玩
|
|||
|
|
- 体验不同分支剧情
|
|||
|
|
|
|||
|
|
### 个人中心
|
|||
|
|
- 游玩记录
|
|||
|
|
- 收藏管理
|
|||
|
|
- 结局成就
|
|||
|
|
|
|||
|
|
## API 接口
|
|||
|
|
|
|||
|
|
| 接口 | 方法 | 说明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `/api/stories` | GET | 获取故事列表 |
|
|||
|
|
| `/api/stories/:id` | GET | 获取故事详情 |
|
|||
|
|
| `/api/stories/categories` | GET | 获取分类列表 |
|
|||
|
|
| `/api/stories/:id/play` | POST | 记录游玩 |
|
|||
|
|
| `/api/stories/:id/like` | POST | 点赞故事 |
|
|||
|
|
| `/api/user/login` | POST | 用户登录 |
|
|||
|
|
| `/api/user/progress` | GET/POST | 游玩进度 |
|
|||
|
|
| `/api/user/collections` | GET/POST | 收藏管理 |
|
|||
|
|
|
|||
|
|
## 配置说明
|
|||
|
|
|
|||
|
|
### 服务端配置 (.env)
|
|||
|
|
|
|||
|
|
```env
|
|||
|
|
PORT=3000
|
|||
|
|
DB_HOST=localhost
|
|||
|
|
DB_USER=root
|
|||
|
|
DB_PASSWORD=your_password
|
|||
|
|
DB_NAME=ai_game
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 客户端配置 (game.json)
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"deviceOrientation": "portrait",
|
|||
|
|
"showStatusBar": false
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 开发计划
|
|||
|
|
|
|||
|
|
- [x] 核心游玩模块
|
|||
|
|
- [x] 故事播放场景
|
|||
|
|
- [x] 结局展示系统
|
|||
|
|
- [x] 章节选择功能
|
|||
|
|
- [ ] AI 改写功能
|
|||
|
|
- [ ] AI 续写功能
|
|||
|
|
- [ ] UGC 创作系统
|
|||
|
|
- [ ] 社交分享优化
|
|||
|
|
|
|||
|
|
## License
|
|||
|
|
|
|||
|
|
MIT
|