chore: 添加 .gitignore,移除 deploy-output 文件夹

This commit is contained in:
OpenClaw Agent
2026-03-12 17:35:22 +08:00
parent 1cef69106e
commit 878472cb39
20 changed files with 19 additions and 4209 deletions

19
.gitignore vendored Normal file
View File

@@ -0,0 +1,19 @@
# 部署输出
deploy-output/
# 依赖
node_modules/
.pnpm-store/
# 缓存
.cache/
*.log
# 临时文件
*.tmp
*.swp
*~
# 系统文件
.DS_Store
Thumbs.db

View File

@@ -1,20 +0,0 @@
{
"projects": {
"hybrid-farm": {
"domain": "hybrid-farm.basegamesstudio.com",
"description": "混合农场游戏策划案"
},
"demo-site": {
"domain": "demo.basegamesstudio.com",
"description": "部署测试页面"
}
},
"git": {
"remote": "origin",
"branch": "main"
},
"autoDeploy": {
"enabled": true,
"commitMessage": "auto: deploy {project-name}"
}
}

View File

@@ -1,131 +0,0 @@
# Git 部署凭证配置指南
## 🔐 问题说明
部署脚本执行时遇到 Git 认证问题。需要配置凭证才能推送到远程仓库。
---
## 方案 A使用 Git Credential Helper推荐
### 1. 配置凭证存储
```bash
# 启用凭证缓存(记住 1 小时)
git config --global credential.helper 'cache --timeout=3600'
# 或者永久存储(不推荐用于生产环境)
git config --global credential.helper store
```
### 2. 执行一次 push 触发凭证输入
```bash
cd /home/admin/.openclaw/workspace
git push origin master:main
```
第一次会提示输入用户名和密码(或 access token之后会自动记住。
---
## 方案 B使用 SSH更安全
### 1. 生成 SSH 密钥(如果没有)
```bash
ssh-keygen -t ed25519 -C "openclaw@iZj6c7hj775d4sotdpj7w2Z"
```
### 2. 添加公钥到 Git 服务器
```bash
# 查看公钥
cat ~/.ssh/id_ed25519.pub
# 复制输出内容,添加到 http://git.joywaygames.cn:3000 的 SSH Keys 设置
```
### 3. 切换远程仓库为 SSH
```bash
cd /home/admin/.openclaw/workspace
git remote set-url origin git@git.joywaygames.cn:zsfy/OpenClawWorkspace.git
git push origin master:main
```
---
## 方案 C使用 Access Token
### 1. 在 Git 服务器生成 Token
访问:`http://git.joywaygames.cn:3000/user/settings/applications`
创建新的 Personal Access Token勾选 `repo` 权限。
### 2. 使用 Token 推送
```bash
# 方式 1直接在 URL 中使用(不推荐,会暴露在历史记录中)
git push http://admin:YOUR_TOKEN@git.joywaygames.cn:3000/zsfy/OpenClawWorkspace.git master:main
# 方式 2使用凭证存储推荐
git credential fill <<EOF
protocol=http
host=git.joywaygames.cn:3000
username=admin
password=YOUR_TOKEN
EOF
# 或者手动执行一次 push输入 token 作为密码
git push origin master:main
```
---
## ✅ 配置完成后测试
```bash
cd /home/admin/.openclaw/workspace
./deploy.sh
```
应该看到:
```
[INFO] 扫描 deploy-output 目录...
[INFO] 部署项目demo-site
[INFO] 部署项目hybrid-farm
[SUCCESS] 已提交deploy: hybrid-farm - ...
[INFO] 推送到远程仓库...
[SUCCESS] 部署完成!共部署 2 个项目
```
---
## 🛠️ 快速解决(临时)
如果只是想快速测试,可以:
```bash
# 临时禁用认证检查(仅用于测试)
git config --global credential.helper '!f() { echo "username=admin"; echo "password=YOUR_TOKEN"; }; f'
# 或者使用 credential-cache
git config --global credential.helper cache
git push origin master:main # 输入一次凭证
```
---
## 📝 推荐流程
1. **生成 SSH 密钥**(方案 B- 最安全
2. **或使用 Access Token**(方案 C- 适合 HTTP
3. **测试部署**`./deploy.sh`
4. **配置服务器端**(参考 `SERVER-SETUP.md`
5. **配置 DNS 解析**
---
**需要我帮你配置 SSH 密钥吗?** 告诉我你的选择!

View File

@@ -1,64 +0,0 @@
# 部署输出目录
所有需要部署到服务器的文件请放在此目录下。
## 📁 目录结构
```
deploy-output/
├── project-name/ # 项目目录(以项目名命名)
│ ├── index.html
│ ├── css/
│ ├── js/
│ └── assets/
├── another-project/ # 另一个项目
│ └── ...
├── .deploy-config.json # 部署配置(域名映射等)
└── SERVER-SETUP.md # 服务器配置指南
```
## 🚀 使用方法
### 方式 1自动部署所有项目
```bash
cd /home/admin/.openclaw/workspace
./deploy.sh
```
### 方式 2部署单个项目
```bash
./deploy.sh project-name
```
### 方式 3Agent 自动生成
Agent 只需将生成的文件输出到 `deploy-output/{项目名}/` 目录即可。
## 📋 配置域名
编辑 `.deploy-config.json`
```json
{
"projects": {
"project-name": {
"domain": "your-domain.com",
"description": "项目描述"
}
}
}
```
## ⚠️ 注意事项
1. **不要修改** `.deploy-config.json``SERVER-SETUP.md` 以外的根目录文件
2. 项目目录名建议使用 **小写字母 + 连字符**(如 `my-project`
3. 每次部署会自动 commit 并 push 到远程仓库
4. 服务器端配置完成后,部署会自动生效
## 🔗 远程仓库
- URL: `http://git.joywaygames.cn:3000/zsfy/OpenClawWorkspace.git`
- 分支:`main`

View File

@@ -1,177 +0,0 @@
# 服务器端部署配置指南
## 📋 前提条件
- 服务器已安装 Git
- 服务器已安装 Nginx
- 你有服务器的 SSH 访问权限
---
## 步骤 1创建 Bare 仓库
```bash
# SSH 登录服务器
ssh admin@your-server-ip
# 创建 bare 仓库目录
sudo mkdir -p /var/repos/OpenClawWorkspace.git
cd /var/repos/OpenClawWorkspace.git
# 初始化 bare 仓库
sudo git init --bare
# 设置权限(确保你的 SSH 用户有写入权限)
sudo chown -R admin:admin /var/repos/OpenClawWorkspace.git
```
---
## 步骤 2创建网站目录
```bash
# 创建网站根目录
sudo mkdir -p /var/www/openclaw
# 设置权限
sudo chown -R admin:admin /var/www/openclaw
```
---
## 步骤 3配置 Post-Receive Hook
```bash
# 创建 hook 文件
sudo nano /var/repos/OpenClawWorkspace.git/hooks/post-receive
```
粘贴以下内容:
```bash
#!/bin/bash
# post-receive hook - 自动部署到网站目录
GIT_DIR="/var/repos/OpenClawWorkspace.git"
WORK_TREE="/var/www/openclaw"
# Checkout 所有文件到网站目录
git --git-dir=$GIT_DIR --work-tree=$WORK_TREE checkout -f
# 确保权限正确
chown -R admin:admin $WORK_TREE
echo "✅ 部署完成!文件已同步到 $WORK_TREE"
```
保存后赋予执行权限:
```bash
sudo chmod +x /var/repos/OpenClawWorkspace.git/hooks/post-receive
```
---
## 步骤 4配置 Nginx
```bash
# 创建 Nginx 配置
sudo nano /etc/nginx/sites-available/openclaw
```
配置内容:
```nginx
server {
listen 80;
server_name your-domain.com; # 替换为你的域名
root /var/www/openclaw;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
# 可选:启用 gzip 压缩
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
}
```
启用站点:
```bash
sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置
sudo systemctl reload nginx
```
---
## 步骤 5测试部署
在本地执行:
```bash
cd /home/admin/.openclaw/workspace
# 创建测试文件
mkdir -p deploy-output/test-project
echo "<h1>Hello from OpenClaw!</h1>" > deploy-output/test-project/index.html
# 执行部署
./deploy.sh test-project
```
然后在浏览器访问:`http://your-domain.com/test-project/index.html`
---
## 🔒 HTTPS 配置(可选)
使用 Let's Encrypt 免费证书:
```bash
# 安装 certbot
sudo apt install certbot python3-certbot-nginx # Ubuntu/Debian
# 获取证书
sudo certbot --nginx -d your-domain.com
# 自动续期(已自动配置 cron
```
---
## 📝 常见问题
### Q: push 被拒绝?
```bash
# 检查 bare 仓库权限
sudo chown -R admin:admin /var/repos/OpenClawWorkspace.git
```
### Q: 部署后文件没更新?
```bash
# 检查 hook 是否可执行
ls -la /var/repos/OpenClawWorkspace.git/hooks/post-receive
# 手动测试 hook
cd /var/repos/OpenClawWorkspace.git
./hooks/post-receive
```
### Q: Nginx 403 Forbidden
```bash
# 检查目录权限
sudo chown -R www-data:www-data /var/www/openclaw
# 或者
sudo chmod -R 755 /var/www/openclaw
```
---
## 🎯 完成!
现在任何 Agent 生成的文件放到 `deploy-output/项目名/` 目录后,执行 `./deploy.sh` 即可自动部署到服务器!

View File

@@ -1,28 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OpenClaw 部署测试</title>
<style>
body { font-family: Arial, sans-serif; max-width: 800px; margin: 50px auto; padding: 20px; }
h1 { color: #333; }
.status { background: #e7f3ff; padding: 15px; border-radius: 8px; margin: 20px 0; }
.success { color: #28a745; }
</style>
</head>
<body>
<h1>🎉 OpenClaw 部署成功!</h1>
<div class="status">
<p class="success">✅ Git 工作流部署系统已就绪</p>
<p>这是通过 Agent 自动生成的测试页面</p>
</div>
<h2>下一步</h2>
<ol>
<li>按照 <code>SERVER-SETUP.md</code> 配置服务器</li>
<li>配置域名 DNS 解析</li>
<li>运行 <code>./deploy.sh</code> 部署</li>
<li>访问你的域名查看效果</li>
</ol>
</body>
</html>

View File

@@ -1,106 +0,0 @@
#!/bin/bash
#
# OpenClaw 部署 - 服务器端一键配置脚本
# 使用方法SSH 登录服务器后执行 bash deploy-server-setup.sh
#
set -e
echo "🚀 OpenClaw 服务器端配置开始..."
echo ""
# 颜色输出
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
# 检查是否 root 或 sudo
if [ "$EUID" -ne 0 ]; then
log_error "请使用 sudo 执行sudo bash $0"
exit 1
fi
# 1. 创建 Bare 仓库
log_info "创建 Git Bare 仓库..."
mkdir -p /var/repos/OpenClawWorkspace.git
cd /var/repos/OpenClawWorkspace.git
git init --bare
chown -R admin:admin /var/repos/OpenClawWorkspace.git
log_info "✅ Bare 仓库创建完成:/var/repos/OpenClawWorkspace.git"
# 2. 创建网站目录
log_info "创建网站目录..."
mkdir -p /var/www/openclaw
chown -R admin:admin /var/www/openclaw
log_info "✅ 网站目录创建完成:/var/www/openclaw"
# 3. 配置 Post-Receive Hook
log_info "配置自动部署 Hook..."
cat > /var/repos/OpenClawWorkspace.git/hooks/post-receive << 'EOF'
#!/bin/bash
GIT_DIR="/var/repos/OpenClawWorkspace.git"
WORK_TREE="/var/www/openclaw"
git --git-dir=$GIT_DIR --work-tree=$WORK_TREE checkout -f
chown -R admin:admin $WORK_TREE
echo "✅ 部署完成!文件已同步到 $WORK_TREE"
EOF
chmod +x /var/repos/OpenClawWorkspace.git/hooks/post-receive
log_info "✅ Hook 配置完成"
# 4. 配置 Nginx
log_info "配置 Nginx..."
cat > /etc/nginx/sites-available/openclaw << 'EOF'
server {
listen 80;
server_name hybrid-farm.basegamesstudio.com demo.basegamesstudio.com;
root /var/www/openclaw;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
autoindex on;
}
# 日志
access_log /var/log/nginx/openclaw-access.log;
error_log /var/log/nginx/openclaw-error.log;
}
EOF
# 启用站点
ln -sf /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
# 测试配置
nginx -t
# 重启 Nginx
systemctl reload nginx
log_info "✅ Nginx 配置完成"
# 5. 输出总结
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "✅ 服务器端配置完成!"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "📋 下一步操作:"
echo ""
echo "1. 在域名服务商添加 DNS 解析:"
echo " A 记录hybrid-farm.basegamesstudio.com → $(hostname -I | awk '{print $1}')"
echo " A 记录demo.basegamesstudio.com → $(hostname -I | awk '{print $1}')"
echo ""
echo "2. 等待 DNS 生效(通常几分钟内)"
echo ""
echo "3. 访问测试:"
echo " http://hybrid-farm.basegamesstudio.com"
echo " http://demo.basegamesstudio.com"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""

View File

@@ -1,257 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文档预览 - Hybrid Farm</title>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; line-height: 1.7; color: #24292e; background: #f6f8fa; }
.container { max-width: 1440px; margin: 0 auto; padding: 0; }
header { background: #24292e; color: white; padding: 16px 32px; display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; z-index: 100; box-shadow: 0 1px 3px rgba(0,0,0,0.12); }
header h1 { font-size: 1.4em; font-weight: 600; }
.header-actions { display: flex; gap: 12px; align-items: center; }
.btn { padding: 8px 16px; border-radius: 6px; text-decoration: none; font-size: 14px; font-weight: 500; transition: all 0.2s; border: 1px solid rgba(255,255,255,0.3); cursor: pointer; }
.btn-primary { background: #2ea44f; color: white; border-color: rgba(255,255,255,0.3); }
.btn-primary:hover { background: #2c974b; }
.btn-secondary { background: rgba(255,255,255,0.1); color: white; }
.btn-secondary:hover { background: rgba(255,255,255,0.2); }
.main-wrapper { display: flex; min-height: calc(100vh - 60px); }
.sidebar { width: 280px; background: white; border-right: 1px solid #e1e4e8; padding: 24px 0; position: sticky; top: 60px; height: calc(100vh - 60px); overflow-y: auto; }
.sidebar-title { padding: 0 24px 16px; font-size: 14px; font-weight: 600; color: #586069; text-transform: uppercase; letter-spacing: 0.5px; border-bottom: 1px solid #e1e4e8; margin-bottom: 8px; }
.doc-list { list-style: none; }
.doc-list li { margin: 0; }
.doc-item { display: flex; align-items: center; padding: 8px 24px; gap: 8px; cursor: pointer; transition: background 0.15s; }
.doc-item:hover { background: #f6f8fa; }
.doc-item.active { background: #e8f0fe; border-left: 3px solid #0366d6; padding-left: 21px; }
.doc-link { flex: 1; text-decoration: none; color: #0366d6; font-size: 14px; font-weight: 500; }
.doc-item.active .doc-link { color: #0366d6; font-weight: 600; }
.doc-download { padding: 4px 8px; background: #f6f8fa; color: #586069; text-decoration: none; border-radius: 4px; font-size: 13px; transition: all 0.15s; border: 1px solid #e1e4e8; }
.doc-download:hover { background: #0366d6; color: white; border-color: #0366d6; }
.content-wrapper { flex: 1; background: white; padding: 40px 60px; max-width: 100%; }
.doc-header { padding-bottom: 20px; margin-bottom: 30px; border-bottom: 1px solid #e1e4e8; display: flex; justify-content: space-between; align-items: center; }
.doc-header h2 { font-size: 28px; font-weight: 600; color: #24292e; }
.markdown-body { font-size: 16px; line-height: 1.7; color: #24292e; scroll-margin-top: 80px; }
.markdown-body h1 { font-size: 32px; font-weight: 600; color: #24292e; margin: 40px 0 24px; padding-bottom: 0.3em; border-bottom: 1px solid #eaecef; }
.markdown-body h2 { font-size: 24px; font-weight: 600; color: #24292e; margin: 32px 0 20px; padding-bottom: 0.3em; border-bottom: 1px solid #eaecef; }
.markdown-body h3 { font-size: 20px; font-weight: 600; color: #24292e; margin: 24px 0 16px; }
.markdown-body h4 { font-size: 16px; font-weight: 600; color: #24292e; margin: 20px 0 12px; }
.markdown-body p { margin: 16px 0; line-height: 1.7; }
.markdown-body ul, .markdown-body ol { padding-left: 2em; margin: 16px 0; }
.markdown-body li { margin: 6px 0; list-style-type: disc; }
.markdown-body ol li { list-style-type: decimal; }
.markdown-body li + li { margin-top: 4px; }
.markdown-body code { background: rgba(27,31,35,0.05); padding: 0.2em 0.4em; border-radius: 3px; font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; font-size: 85%; color: #24292e; }
.markdown-body pre { background: #f6f8fa; padding: 16px; border-radius: 6px; overflow: auto; margin: 16px 0; border: 1px solid #e1e4e8; }
.markdown-body pre code { background: transparent; padding: 0; font-size: 85%; line-height: 1.45; }
.markdown-body blockquote { border-left: 4px solid #dfe2e5; padding: 0 16px; margin: 16px 0; color: #6a737d; }
.markdown-body blockquote p { margin: 16px 0; }
.markdown-body table { border-collapse: collapse; margin: 16px 0; width: 100%; display: block; overflow: auto; }
.markdown-body table th, .markdown-body table td { padding: 10px 14px; border: 1px solid #dfe2e5; }
.markdown-body table th { background: #f6f8fa; font-weight: 600; }
.markdown-body table tr:nth-child(2n) { background: #f6f8fa; }
.markdown-body img { max-width: 100%; height: auto; margin: 16px 0; border: 1px solid #e1e4e8; border-radius: 6px; }
.markdown-body a { color: #0366d6; text-decoration: none; }
.markdown-body a:hover { text-decoration: underline; }
.markdown-body strong { font-weight: 600; color: #24292e; }
.loading { text-align: center; padding: 60px; color: #586069; font-size: 16px; }
.error { background: #ffeef0; color: #cb2431; padding: 16px; border-radius: 6px; border: 1px solid #f97583; margin: 16px 0; }
@media (max-width: 1024px) { .sidebar { display: none; } .content-wrapper { padding: 30px 24px; } }
@media (max-width: 768px) { header { padding: 12px 16px; } header h1 { font-size: 1.2em; } .content-wrapper { padding: 20px 16px; } .markdown-body h1 { font-size: 26px; } .markdown-body h2 { font-size: 22px; } }
</style>
</head>
<body>
<div class="container">
<header>
<h1>📄 Hybrid Farm 文档预览</h1>
<div class="header-actions">
<a href="index.html" class="btn btn-secondary">← 返回首页</a>
<a href="#" class="btn btn-primary" id="headerDownloadBtn" download>📥 下载原文档</a>
</div>
</header>
<div class="main-wrapper">
<aside class="sidebar">
<div class="sidebar-title">📚 文档列表</div>
<ul class="doc-list" id="docList"></ul>
</aside>
<main class="content-wrapper">
<div class="doc-header" id="docHeader" style="display:none;">
<h2 id="docTitle">文档标题</h2>
<a href="#" class="btn btn-primary" id="inlineDownloadBtn" download>📥 下载</a>
</div>
<div class="markdown-body" id="content"><div class="loading">📖 加载中...</div></div>
</main>
</div>
</div>
<script>
const documents = [
{id:'00',name:'📋 项目简报',file:'00-project-brief.md'},
{id:'01',name:'🎮 机制设计',file:'01-mechanics-task.md'},
{id:'02',name:'⚖️ 数值平衡',file:'02-balance-task.md'},
{id:'03',name:'📖 故事设计',file:'03-story-task.md'},
{id:'04',name:'🗺️ 关卡设计',file:'04-level-task.md'},
{id:'05',name:'📈 市场分析',file:'05-analysis-task.md'},
{id:'06',name:'📝 文档规范',file:'06-document-task.md'},
{id:'07',name:'🤝 协作流程',file:'07-collaboration-plan.md'},
{id:'08',name:'📊 进度追踪',file:'08-progress-tracker.md'},
{id:'10',name:'📊 分析报告',file:'10-analysis-report.md'},
{id:'11',name:'⚙️ 详细机制',file:'11-mechanics-design.md'}
];
// 生成 slug用于标题 ID
function generateSlug(text) {
return text.toString()
.toLowerCase()
.replace(/[^\w\s\u4e00-\u9fff-]/g, '')
.replace(/\s+/g, '-')
.replace(/-+/g, '-')
.trim();
}
// 为 HTML 中的标题添加 ID
function addHeadingIds(html) {
return html.replace(/<h([1-6])>(.*?)<\/h\1>/g, function(match, level, content) {
const slug = generateSlug(content);
return '<h' + level + ' id="' + slug + '">' + content + '</h' + level + '>';
});
}
function renderDocList() {
const docList = document.getElementById('docList');
docList.innerHTML = '';
documents.forEach(function(doc) {
const li = document.createElement('li');
const docItem = document.createElement('div');
docItem.className = 'doc-item';
docItem.setAttribute('data-file', doc.file);
const a = document.createElement('a');
a.href = '#'; a.textContent = doc.name; a.className = 'doc-link';
a.addEventListener('click', function(e) { e.preventDefault(); loadDoc(doc.file, docItem); });
const downloadLink = document.createElement('a');
downloadLink.href = 'docs/' + doc.file; downloadLink.className = 'doc-download'; downloadLink.textContent = '📥';
downloadLink.title = '下载 ' + doc.name; downloadLink.setAttribute('download', '');
docItem.appendChild(a); docItem.appendChild(downloadLink); li.appendChild(docItem); docList.appendChild(li);
});
}
function updateDownloadButtons(filename) {
const headerBtn = document.getElementById('headerDownloadBtn');
const inlineBtn = document.getElementById('inlineDownloadBtn');
if (filename) {
headerBtn.href = 'docs/' + filename; inlineBtn.href = 'docs/' + filename;
headerBtn.style.display = 'inline-block'; inlineBtn.style.display = 'inline-block';
} else {
headerBtn.style.display = 'none'; inlineBtn.style.display = 'none';
}
}
function loadDoc(filename, element) {
const contentDiv = document.getElementById('content');
const docHeader = document.getElementById('docHeader');
const docTitle = document.getElementById('docTitle');
const allItems = document.querySelectorAll('.doc-item');
allItems.forEach(function(item) { item.classList.remove('active'); });
if (element) element.classList.add('active');
contentDiv.innerHTML = '<div class="loading">📖 加载中...</div>';
docHeader.style.display = 'none';
fetch('docs/' + filename)
.then(function(response) { if (!response.ok) throw new Error('HTTP ' + response.status); return response.text(); })
.then(function(markdown) {
let html;
if (typeof marked !== 'undefined' && typeof marked.parse === 'function') {
html = marked.parse(markdown);
} else {
html = simpleMarkdownToHtml(markdown);
}
// 为标题添加 ID
html = addHeadingIds(html);
contentDiv.innerHTML = html;
var docName = '文档预览';
for (var i = 0; i < documents.length; i++) {
if (documents[i].file === filename) { docName = documents[i].name; break; }
}
docTitle.textContent = docName;
docHeader.style.display = 'flex';
document.title = docName + ' - Hybrid Farm';
updateDownloadButtons(filename);
handleAnchorLinks();
if (window.location.hash) {
setTimeout(function() {
const target = document.querySelector(window.location.hash);
if (target) target.scrollIntoView({ behavior: 'smooth' });
}, 100);
}
var newUrl = window.location.protocol + '//' + window.location.host + window.location.pathname + '?doc=' + filename;
window.history.pushState({}, '', newUrl);
})
.catch(function(error) {
contentDiv.innerHTML = '<div class="error"><h3>❌ 加载失败</h3><p>' + error.message + '</p><p style="margin-top:10px"><a href="docs/' + filename + '" download>📥 下载原文档</a></p></div>';
updateDownloadButtons(filename);
});
}
function handleAnchorLinks() {
const links = document.querySelectorAll('.markdown-body a[href^="#"]');
links.forEach(function(link) {
link.addEventListener('click', function(e) {
e.preventDefault();
const targetId = this.getAttribute('href').substring(1);
const target = document.getElementById(targetId);
if (target) {
target.scrollIntoView({ behavior: 'smooth', block: 'start' });
const newUrl = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search + '#' + targetId;
window.history.pushState({}, '', newUrl);
}
});
});
}
function simpleMarkdownToHtml(md) {
let html = md;
html = html.replace(/^# (.*$)/gim, function(m, p1) { return '<h1 id="' + generateSlug(p1) + '">' + p1 + '</h1>'; });
html = html.replace(/^## (.*$)/gim, function(m, p1) { return '<h2 id="' + generateSlug(p1) + '">' + p1 + '</h2>'; });
html = html.replace(/^### (.*$)/gim, function(m, p1) { return '<h3 id="' + generateSlug(p1) + '">' + p1 + '</h3>'; });
html = html.replace(/\*\*(.*)\*\*/gim, '<strong>$1</strong>');
html = html.replace(/\*(.*)\*/gim, '<em>$1</em>');
html = html.replace(/`([^`]+)`/gim, '<code>$1</code>');
html = html.replace(/^\> (.*$)/gim, '<blockquote>$1</blockquote>');
html = html.replace(/\[(.*?)\]\((.*?)\)/gim, '<a href="$2">$1</a>');
const lines = html.split('\n');
const result = [];
let inList = false;
for (let i = 0; i < lines.length; i++) {
const line = lines[i];
if (line.match(/^- /) || line.match(/^\d+\. /)) {
if (!inList) { result.push('<ul>'); inList = true; }
result.push(line.replace(/^- /, '<li>').replace(/^\d+\. /, '<li>') + '</li>');
} else {
if (inList) { result.push('</ul>'); inList = false; }
result.push(line);
}
}
if (inList) result.push('</ul>');
return result.join('\n');
}
function loadFromURL() {
var params = window.location.search.substring(1).split('&');
var doc = null;
for (var i = 0; i < params.length; i++) {
var parts = params[i].split('=');
if (parts[0] === 'doc') { doc = decodeURIComponent(parts[1]); break; }
}
if (doc) {
var element = document.querySelector('.doc-item[data-file="' + doc + '"]');
if (element) { loadDoc(doc, element); return; }
}
if (documents.length > 0) {
var firstElement = document.querySelector('.doc-item');
if (firstElement) loadDoc(documents[0].file, firstElement);
} else { updateDownloadButtons(null); }
}
renderDocList(); loadFromURL();
</script>
</body>
</html>

View File

@@ -1,56 +0,0 @@
# 🌱 《杂交农场》项目简报
## 项目概述
**游戏名称**:杂交农场 (Hybrid Farm)
**游戏类型**:模拟经营 + 遗传育种 + 联机社交
**美术风格**:星露谷式像素风
**目标平台**PC (Steam)
**核心卖点**
1. 严谨但有趣的植物遗传杂交系统
2. 双轨难度(科普向 + 硬核向)
3. 袁隆平剧情科普线
4. 联机交易与稀有品种展示
5. 完整图鉴与培育历史记录
## 目标受众
| 受众类型 | 特征 | 需求 |
|---------|------|------|
| 休闲玩家 | 对遗传学不了解 | 简单易懂、有引导、有成就感 |
| 学生群体 | 学习遗传学中 | 复习工具、实验模拟、可导出报告 |
| 科普爱好者 | 对科学感兴趣 | 了解袁隆平贡献、遗传学知识 |
| 硬核玩家 | 有遗传学基础 | 深度系统、真实规律、挑战性 |
## 植物分类
1. **花卉类** (60 种) - 观赏价值
2. **蔬菜类** (40 种) - 产量价值
3. **果树类** (25 种) - 长期投资
4. **药用植物类** (20 种) - 高价值
## 核心系统
- 遗传系统(孟德尔 + 复杂遗传)
- 环境模拟系统
- 突变诱导系统
- 图鉴系统
- 联机交易系统
- 剧情任务系统
## 开发阶段
1. MVP - 核心遗传 + 基础种植
2. v1.0 - 完整植物 + 双难度 + 剧情
3. v2.0 - 联机功能
4. DLC - 扩展内容
---
**创建时间**2026-03-10
**最后更新**2026-03-10
**版本**v0.1

View File

@@ -1,83 +0,0 @@
# 🎲 任务:核心玩法机制设计
## 项目背景
参考 `00-project-brief.md`
## 任务描述
设计《杂交农场》的**核心玩法机制**,包括:
### 1. 核心循环设计
- 玩家每天做什么?
- 短期/中期/长期目标是什么?
- 行动→反馈→奖励的闭环如何形成?
### 2. 遗传系统机制
- 杂交操作流程(玩家交互)
- 基因传递规则(简化但严谨)
- 性状表达方式
- 突变触发机制
### 3. 环境控制系统
- 玩家可调控哪些环境因子?
- 环境如何影响表型?
- 环境如何诱导突变?
### 4. 图鉴系统机制
- 如何记录培育历史?
- 如何展示基因型/表型?
- 亲本关系如何追溯?
### 5. 联机交互机制
- 玩家间如何交易?
- 如何展示稀有品种?
- 合作育种如何实现?
## 输出要求
请使用**游戏机制设计师**的专业模板输出:
```markdown
## [系统名称]
### 核心循环
[行动] → [反馈] → [奖励] → [新目标]
### 系统架构
- 子系统 1
- 子系统 2
- ...
### 玩法规则
1. 规则 1
2. 规则 2
3. ...
### 交互流程
[流程图描述]
### 变体设计
- 新手模式
- 专家模式
```
## 依赖关系
- ✅ 已完成:项目简报
- ⏳ 待完成:数值平衡(需要机制框架)
- ⏳ 待完成:关卡设计(需要玩法机制)
- ⏳ 待完成:剧情设计(需要机制配合)
## 验收标准
- [ ] 核心循环清晰易懂
- [ ] 遗传系统既严谨又有趣
- [ ] 双难度机制有明确区分
- [ ] 交互流程可落地实现
- [ ] 与数值/剧情/关卡系统兼容
---
**分配给**:🎲 游戏机制设计师
**优先级**P0 (最高)
**预计耗时**2-3 小时

View File

@@ -1,78 +0,0 @@
# 📐 任务:数值平衡设计
## 项目背景
参考 `00-project-brief.md`
依赖:`03-mechanics-design.md` (机制设计完成后)
## 任务描述
设计《杂交农场》的**数值体系**,包括:
### 1. 遗传概率数值
- 各基因型杂交子代概率表
- 突变率(自然/人工诱导)
- 性状表达概率(不完全显性等)
### 2. 植物生长数值
- 生长周期(天)
- 不同环境因子影响系数
- 产量公式
### 3. 经济系统数值
- 各植物基础售价
- 稀有度加成系数
- 订单奖励数值
- 升级/解锁成本
### 4. 成长曲线
- 玩家等级经验曲线
- 设施升级成本曲线
- 解锁新植物/科技的进度
### 5. 难度平衡
- 新手模式 vs 专家模式数值差异
- 前期/中期/后期节奏控制
## 输出要求
请使用**数值平衡专家**的专业模板输出:
```markdown
## [数值系统名称]
### 公式
[核心公式]
### 数值表
| 参数 | 值 | 说明 |
|------|-----|------|
| ... | ... | ... |
### 曲线特点
- 前期:
- 中期:
- 后期:
### 设计思路
[解释数值设计理由]
```
## 依赖关系
- ✅ 已完成:项目简报
- ⏳ 依赖:机制设计(需要系统框架)
- ⏳ 待完成:文档整合(需要数值表)
## 验收标准
- [ ] 遗传概率符合遗传学原理
- [ ] 经济系统产出/消耗平衡
- [ ] 成长曲线合理(不肝不氪)
- [ ] 双难度数值有明确区分
- [ ] 提供计算示例和验证
---
**分配给**:📐 数值平衡专家
**优先级**P1 (高)
**预计耗时**2-3 小时

View File

@@ -1,82 +0,0 @@
# 📖 任务:剧情与世界观设计
## 项目背景
参考 `00-project-brief.md`
## 任务描述
设计《杂交农场》的**剧情和世界观**,包括:
### 1. 世界观设定
- 游戏世界背景(现代/近未来/架空?)
- 玩家身份设定(学生/研究员/继承农场?)
- 世界观中的科学水平
### 2. 主线剧情(袁隆平特别任务链)
- 第 1 章:饥饿的记忆
- 第 2 章:发现野败
- 第 3 章:三系配套
- 第 4 章:超级稻
- 第 5 章:禾下乘凉梦
每章需要:
- 剧情背景
- 任务目标
- 关键 NPC
- 情感高潮点
- 科普知识点
### 3. 支线剧情
- 其他科学家故事(孟德尔、摩尔根等)
- 顾客订单剧情
- 收集成就剧情
### 4. 角色设计
- 主角人设(可自定义?)
- 重要 NPC导师、竞争对手、合作伙伴
- 历史科学家角色(袁隆平、孟德尔等)
### 5. 科普内容
- 遗传学小课堂(何时触发?如何呈现?)
- 科学史故事
- 术语解释系统
## 输出要求
请使用**剧情世界观专家**的专业模板输出:
```markdown
## [剧情/角色名称]
### 故事概述
[一句话概括]
### 三幕式结构
[详细结构]
### 角色人设
[角色信息]
### 主题表达
[想要表达的主题]
```
## 依赖关系
- ✅ 已完成:项目简报
- ⏳ 依赖:机制设计(需要知道系统如何配合剧情)
- ⏳ 待完成:文档整合(需要剧情内容)
## 验收标准
- [ ] 袁隆平剧情线感人且有教育意义
- [ ] 科普内容自然融入 gameplay
- [ ] 角色有魅力和记忆点
- [ ] 剧情节奏与游戏进度匹配
- [ ] 双难度模式下剧情呈现有差异
---
**分配给**:📖 剧情世界观专家
**优先级**P1 (高)
**预计耗时**2-3 小时

View File

@@ -1,85 +0,0 @@
# 🗺️ 任务:关卡与进度设计
## 项目背景
参考 `00-project-brief.md`
依赖:`03-mechanics-design.md` (机制设计完成后)
## 任务描述
设计《杂交农场》的**关卡结构和进度节奏**,包括:
### 1. 新手引导关卡
- 第 1 天:种植基础(浇水→收获)
- 第 2 天:杂交入门(授粉→收种)
- 第 3 天:遗传规律(观察子代性状)
- 第 7 天:第一次稀有品种培育
### 2. 主线任务关卡(袁隆平剧情)
- 每章的任务目标
- 难度递增曲线
- 所需植物/工具解锁节点
### 3. 植物解锁进度
- 初始解锁植物
- 等级解锁植物
- 成就解锁植物
- 隐藏植物获取条件
### 4. 设施解锁进度
- 温室解锁
- 实验室解锁
- 诱变室解锁
- 交易市场解锁
### 5. 难度曲线
- 前期1-7 天):教学期
- 中期8-30 天):发展期
- 后期31+ 天):优化/收集期
### 6. 活动关卡(可选)
- 季节性活动
- 限时挑战
- 特殊订单
## 输出要求
请使用**关卡设计专家**的专业模板输出:
```markdown
## [关卡/阶段名称]
### 关卡概述
- 类型:
- 预计时长:
- 推荐等级:
### 关卡结构
[流程图]
### 难度曲线
| 阶段 | 难度 | 说明 |
### 节奏控制
[时间轴设计]
```
## 依赖关系
- ✅ 已完成:项目简报
- ⏳ 依赖:机制设计(需要知道玩法)
- ⏳ 依赖:数值设计(需要难度参考)
- ⏳ 待完成:文档整合
## 验收标准
- [ ] 新手引导循序渐进
- [ ] 主线任务节奏合理
- [ ] 解锁进度有成就感
- [ ] 难度曲线平滑
- [ ] 长期游玩有目标
---
**分配给**:🗺️ 关卡设计专家
**优先级**P1 (高)
**预计耗时**2 小时

View File

@@ -1,91 +0,0 @@
# 🔍 任务:竞品分析与设计参考
## 项目背景
参考 `00-project-brief.md`
## 任务描述
对《杂交农场》的**竞品和参考游戏**进行深度分析,包括:
### 1. 核心竞品分析
#### Crazy Plant Shop (Steam)
- 遗传系统设计
- 游戏循环
- 优缺点分析
- 可借鉴点
#### 星露谷物语
- 种植系统
- 像素美术风格
- 玩家粘性设计
- 可借鉴点
#### 基因花园 (桌游)
- 遗传机制桌游化
- 骰子=基因的设计
- 科普与娱乐平衡
### 2. 系统级参考
#### 宝可梦育种系统
- IV 值遗传
- 特性遗传
- 蛋组系统
#### 牧场物语系列
- 作物杂交
- 品种改良
### 3. 可借鉴设计提炼
#### 可直接复用
- [列出可直接使用的设计]
#### 需适配调整
- [列出需要修改的设计]
#### 不建议借鉴
- [列出避坑点]
### 4. 差异化定位
基于竞品分析,明确《杂交农场》的:
- 独特卖点 (USP)
- 目标受众差异化
- 玩法创新点
## 输出要求
请使用**游戏拆解分析师**的专业模板输出:
```markdown
## [游戏名称] - [系统名称] 拆解
### 系统概述
### 系统架构
### 核心机制
### 设计亮点
### 可借鉴点
### 设计思路还原
```
## 依赖关系
- ✅ 已完成:项目简报
- ✅ 可独立进行(不需要其他设计完成)
- 📤 输出供所有专家参考
## 验收标准
- [ ] 竞品分析全面(至少 3 款游戏)
- [ ] 优缺点分析客观
- [ ] 可借鉴点明确且可落地
- [ ] 差异化定位清晰
- [ ] 提供具体设计建议
---
**分配给**:🔍 游戏拆解分析师
**优先级**P0 (最高 - 需要尽早完成供其他专家参考)
**预计耗时**2 小时

View File

@@ -1,119 +0,0 @@
# 📝 任务:完整 GDD 文档整合
## 项目背景
参考 `00-project-brief.md`
依赖:所有其他专家设计完成后
## 任务描述
将各专家的设计内容整合为**完整的游戏设计文档 (GDD)**,包括:
### 1. GDD 标准结构
```markdown
# 《杂交农场》游戏设计文档
## 1. 游戏概述
- 游戏类型
- 目标受众
- 核心玩法
- 差异化特点
## 2. 游戏机制 (来自🎲)
- 核心循环
- 遗传系统
- 环境系统
- 图鉴系统
- 联机系统
## 3. 数值设计 (来自📐)
- 遗传概率表
- 生长数值
- 经济系统
- 成长曲线
## 4. 世界观与剧情 (来自📖)
- 世界观设定
- 主线剧情
- 角色设计
- 科普内容
## 5. 关卡与进度 (来自🗺️)
- 新手引导
- 任务关卡
- 解锁进度
- 难度曲线
## 6. 竞品分析 (来自🔍)
- 竞品对比
- 差异化定位
## 7. UI/UX 设计
- 界面布局
- 交互流程
## 8. 美术风格
- 整体风格
- 角色/场景风格
- UI 风格
## 9. 音效设计
- BGM 风格
- 音效需求
## 10. 技术需求
- 引擎建议
- 平台
- 性能要求
## 11. 开发计划
- MVP 范围
- v1.0 范围
- 后续更新
```
### 2. 文档规范
- 统一术语表
- 命名规范
- 版本控制
- 图表规范
### 3. 验收清单
为每个系统创建验收清单,供开发完成后测试使用。
### 4. 附录
- 遗传学知识速查
- 植物列表总览
- 术语解释
## 输出要求
请使用**策划文档专家**的专业模板输出:
- 完整 GDD 文档Markdown 格式)
- 各系统设计文档(可单独拆分)
- 术语表
- 验收清单
## 依赖关系
- ✅ 已完成:项目简报
- ⏳ 依赖:所有专家设计完成
- 📤 输出:最终交付物
## 验收标准
- [ ] GDD 结构完整
- [ ] 各章节内容一致无矛盾
- [ ] 术语统一
- [ ] 图表清晰
- [ ] 可交付给开发团队
---
**分配给**:📝 策划文档专家
**优先级**P2 (中 - 需要等其他专家完成)
**预计耗时**3-4 小时(整合时间)

View File

@@ -1,189 +0,0 @@
# 🎮 《杂交农场》多 Agent 协作计划
## 项目总览
**项目名称**:杂交农场 (Hybrid Farm)
**项目经理**:🎮 游戏项目经理
**创建时间**2026-03-10
---
## 专家分工与依赖关系
```mermaid
gantt
title 《杂交农场》策划案开发流程
dateFormat YYYY-MM-DD
section 第一阶段
竞品分析 :a1, 2026-03-10, 2h
机制设计 :a2, after a1, 3h
section 第二阶段
数值平衡 :b1, after a2, 3h
剧情设计 :b2, after a2, 3h
关卡设计 :b3, after a2, 2h
section 第三阶段
文档整合 :c1, after b1 b2 b3, 4h
```
---
## 任务分配表
| 序号 | 任务 | 负责 Agent | 优先级 | 状态 | 依赖 |
|------|------|-----------|--------|------|------|
| 1 | 竞品分析 | 🔍 游戏拆解分析师 | P0 | ⏳ 待开始 | 无 |
| 2 | 核心机制 | 🎲 游戏机制设计师 | P0 | ⏳ 等待中 | 任务 1 |
| 3 | 数值平衡 | 📐 数值平衡专家 | P1 | ⏳ 等待中 | 任务 2 |
| 4 | 剧情设计 | 📖 剧情世界观专家 | P1 | ⏳ 等待中 | 任务 2 |
| 5 | 关卡设计 | 🗺️ 关卡设计专家 | P1 | ⏳ 等待中 | 任务 2,3 |
| 6 | 文档整合 | 📝 策划文档专家 | P2 | ⏳ 等待中 | 任务 2,3,4,5 |
---
## 执行流程
### 阶段一:基础设计 (Day 1)
**步骤 1**:🔍 游戏拆解分析师
- 输入:`00-project-brief.md`
- 输出:`10-analysis-report.md`
- 内容:竞品分析报告
**步骤 2**:🎲 游戏机制设计师
- 输入:`00-project-brief.md` + `10-analysis-report.md`
- 输出:`11-mechanics-design.md`
- 内容:核心玩法机制设计
### 阶段二:详细设计 (Day 2)
**步骤 3**:📐 数值平衡专家
- 输入:`11-mechanics-design.md`
- 输出:`20-balance-design.md`
- 内容:数值系统设计
**步骤 4**:📖 剧情世界观专家
- 输入:`11-mechanics-design.md`
- 输出:`21-story-design.md`
- 内容:剧情与世界观设计
**步骤 5**:🗺️ 关卡设计专家
- 输入:`11-mechanics-design.md` + `20-balance-design.md`
- 输出:`22-level-design.md`
- 内容:关卡与进度设计
### 阶段三:文档整合 (Day 3)
**步骤 6**:📝 策划文档专家
- 输入:所有上述设计文档
- 输出:`30-GDD-complete.md`
- 内容:完整游戏设计文档
---
## 沟通协议
### 专家间接力规则
1. **上游专家**完成设计后,在文档中标注:
- ✅ 已完成部分
- ⚠️ 需要下游注意的点
- ❓ 待决策问题
2. **下游专家**开始工作前:
- 阅读所有依赖文档
- 确认理解一致
- 如有疑问提出讨论
3. **项目经理**职责:
- 跟踪进度
- 解决跨专家分歧
- 确保设计一致性
- 最终质量把控
### 设计一致性检查清单
- [ ] 术语使用一致(如"杂交"vs"育种"
- [ ] 数值范围兼容(机制与数值不冲突)
- [ ] 剧情与机制融合(剧情任务可使用游戏机制)
- [ ] 难度曲线一致(新手/专家模式定义统一)
---
## 交付物清单
### 阶段交付物
| 阶段 | 交付物 | 负责人 |
|------|--------|--------|
| 1 | `10-analysis-report.md` | 🔍 |
| 1 | `11-mechanics-design.md` | 🎲 |
| 2 | `20-balance-design.md` | 📐 |
| 2 | `21-story-design.md` | 📖 |
| 2 | `22-level-design.md` | 🗺️ |
| 3 | `30-GDD-complete.md` | 📝 |
### 最终交付物
**主文档**
- `30-GDD-complete.md` - 完整游戏设计文档
**附录文档**
- `31-terminology.md` - 术语表
- `32-plant-list.md` - 植物列表总览
- `33-checklist.md` - 验收清单
---
## 质量标准
### 各专家质量要求
| 专家 | 质量要求 |
|------|---------|
| 🔍 分析 | 至少 3 款竞品,可借鉴点明确 |
| 🎲 机制 | 核心循环清晰,双难度区分明确 |
| 📐 数值 | 公式可计算,提供验证示例 |
| 📖 剧情 | 袁隆平剧情线完整,科普自然融入 |
| 🗺️ 关卡 | 新手引导循序渐进,解锁节奏合理 |
| 📝 文档 | GDD 结构完整,无矛盾,可交付开发 |
### 整体质量要求
- ✅ 科学性:遗传学原理正确(专家模式)
- ✅ 游戏性:好玩不枯燥
- ✅ 科普性:袁隆平故事感人,知识准确
- ✅ 可行性:开发可落地
- ✅ 完整性:覆盖所有核心系统
---
## 风险与应对
| 风险 | 概率 | 影响 | 应对措施 |
|------|------|------|---------|
| 遗传系统过于复杂 | 中 | 高 | 双难度设计,新手模式简化 |
| 科普内容说教味重 | 中 | 中 | 融入 gameplay剧情化呈现 |
| 数值不平衡 | 低 | 高 | 多轮模拟验证,预留调整空间 |
| 开发成本过高 | 中 | 中 | MVP 优先DLC 扩展 |
| 联机功能延迟 | 高 | 低 | v1.0 单机v2.0 联机 |
---
## 启动指令
**项目经理指令**
> 各位专家好!《杂交农场》项目正式启动。
>
> **第一步**:请🔍游戏拆解分析师立即开始竞品分析。
> **第二步**:其他专家阅读 `00-project-brief.md` 待命。
>
> 预计完成时间3 天
> 最终交付:完整 GDD 策划案
>
> 开始!🚀
---
**最后更新**2026-03-10
**版本**v1.0

View File

@@ -1,92 +0,0 @@
# 📊 《杂交农场》项目进度追踪
**创建时间**2026-03-10
**当前状态**:🟡 进行中
---
## 总体进度
```
[████████████░░░░] 50% 完成
阶段一:基础设计 [██████████████] 70%
阶段二:详细设计 [░░░░░░░░░░░░] 0%
阶段三:文档整合 [░░░░░░░░░░░░] 0%
```
---
## 任务状态
| 任务 | 负责人 | 状态 | 开始时间 | 完成时间 | 交付物 |
|------|--------|------|---------|---------|--------|
| 1. 竞品分析 | 🔍 | ✅ 已完成 | 07:35 | 07:38 | `10-analysis-report.md` |
| 2. 机制设计 | 🎲 | 🟢 进行中 | 07:36 | - | `11-mechanics-design.md` |
| 3. 数值平衡 | 📐 | ⏳ 等待中 | - | - | `20-balance-design.md` |
| 4. 剧情设计 | 📖 | ⏳ 等待中 | - | - | `21-story-design.md` |
| 5. 关卡设计 | 🗺️ | ⏳ 等待中 | - | - | `22-level-design.md` |
| 6. 文档整合 | 📝 | ⏳ 等待中 | - | - | `30-GDD-complete.md` |
**图例**
- 🟢 已完成
- 🟡 进行中
- ⏳ 等待中
- 🔴 阻塞
---
## 当前阻塞
---
## 待决策问题
| 问题 | 提出者 | 优先级 | 状态 |
|------|--------|--------|------|
| 暂无 | - | - | - |
---
## 设计一致性检查
- [ ] 术语统一检查(待所有文档完成后)
- [ ] 数值兼容性检查(待机制 + 数值完成后)
- [ ] 剧情 - 机制融合检查(待剧情完成后)
- [ ] 难度曲线一致性(待关卡完成后)
---
## 里程碑
| 里程碑 | 目标日期 | 状态 |
|--------|---------|------|
| 阶段一完成 | Day 1 | ⏳ 未开始 |
| 阶段二完成 | Day 2 | ⏳ 未开始 |
| 阶段三完成 | Day 3 | ⏳ 未开始 |
| GDD 交付 | Day 3 | ⏳ 未开始 |
---
## 会议记录
### 启动会议 (2026-03-10)
**参会**:🎮 项目经理,全体专家
**决议**
1. 项目正式启动
2. 按协作计划执行
3. 优先级:竞品分析 → 机制设计 → 其他
**待办**
- [x] 创建项目文件夹
- [x] 创建任务文档
- [x] 创建协作计划
- [ ] 开始竞品分析
---
**最后更新**2026-03-10 07:30

View File

@@ -1,591 +0,0 @@
# 🔍 《杂交农场》竞品分析与设计参考报告
**报告类型**:游戏拆解分析
**分析师**:🔍 游戏拆解分析师
**创建时间**2026-03-10
**版本**v1.0
---
## 目录
1. [Crazy Plant Shop - 核心竞品拆解](#1-crazy-plant-shop---核心竞品拆解)
2. [星露谷物语 - 美术与种植系统参考](#2-星露谷物语---美术与种植系统参考)
3. [基因花园桌游 - 遗传机制桌游化参考](#3-基因花园桌游---遗传机制桌游化参考)
4. [宝可梦育种系统 - IV 值遗传参考](#4-宝可梦育种系统---iv 值遗传参考)
5. [可借鉴设计提炼](#5-可借鉴设计提炼)
6. [《杂交农场》差异化定位](#6-杂交农场差异化定位)
---
## 1. Crazy Plant Shop - 核心竞品拆解
### 1.1 遗传系统拆解
#### 系统概述
Crazy Plant Shop 是一款以植物育种为核心玩法的模拟经营游戏,玩家通过杂交不同植物来创造新品种,经营自己的植物商店。
#### 系统架构
```
遗传系统
├── 基因池 (Gene Pool)
│ ├── 显性基因 (Dominant)
│ ├── 隐性基因 (Recessive)
│ └── 突变基因 (Mutation)
├── 杂交机制 (Crossbreeding)
│ ├── 亲本选择
│ ├── 基因组合
│ └── 后代预测
└── 性状表达 (Trait Expression)
├── 外观性状 (颜色、形状、大小)
├── 功能性状 (生长速度、产量、抗性)
└── 稀有度评级
```
#### 核心机制
| 机制 | 描述 | 实现方式 |
|------|------|----------|
| 孟德尔遗传 | 显性/隐性基因传递 | 每个植物有 2 对等位基因 |
| 性状分离 | F2 代出现性状分离 | 3:1 或 9:3:3:1 比例 |
| 基因连锁 | 某些基因倾向于一起遗传 | 连锁群设计 |
| 突变系统 | 小概率产生新基因 | 1-5% 突变率 |
#### 设计亮点
**可视化基因图谱**:玩家可以查看植物的基因组成,理解遗传规律
**渐进式学习曲线**:从简单杂交到复杂育种,自然引导玩家学习遗传学
**经济系统绑定**:稀有品种 = 高售价,激励深度育种
**图鉴收集**:鼓励玩家培育所有品种
#### 可借鉴点
| 借鉴点 | 类型 | 说明 |
|--------|------|------|
| 基因可视化 | 可直接复用 | 用图标/颜色表示显性/隐性基因 |
| 稀有度分级 | 可直接复用 | N/R/SR/SSR 分级,对应不同售价 |
| 育种记录 | 需适配 | 记录亲本 - 后代关系树 |
| 突变动画 | 可直接复用 | 突变时特殊光效,增强成就感 |
#### 设计思路还原
Crazy Plant Shop 的设计核心是**"让遗传学变得有趣"**。它没有回避真实的遗传规律,而是通过可视化、游戏化的方式让玩家自然理解。关键设计决策:
- 选择植物而非动物:植物杂交更直观,无伦理问题
- 简化基因数量:每株植物 3-5 个性状,避免认知过载
- 经济反馈循环:好品种 = 高收益 = 更多实验资源
---
### 1.2 经营系统拆解
#### 系统概述
玩家经营植物商店,销售自己培育的植物,同时满足顾客订单需求。
#### 核心循环
```
育种实验 → 收获植物 → 商店销售 → 获得资金 → 购买新亲本/道具 → 继续育种
```
#### 可借鉴点
| 借鉴点 | 类型 | 《杂交农场》适配建议 |
|--------|------|---------------------|
| 顾客订单系统 | 需适配 | 可加入"科研订单",要求特定基因型 |
| 店铺装饰 | 不建议 | 偏离核心玩法,资源应聚焦育种 |
| 价格波动 | 需适配 | 稀有品种价格随市场饱和度变化 |
| 成就系统 | 可直接复用 | "培育出 10 种 SSR 品种"等 |
---
## 2. 星露谷物语 - 美术与种植系统参考
### 2.1 像素美术风格拆解
#### 系统概述
星露谷物语采用 16-bit 像素风格,色彩鲜艳,角色和场景都有高度辨识度。
#### 美术规范
| 元素 | 规格 | 特点 |
|------|------|------|
| 角色精灵 | 16×16 或 32×32 | 4 方向动画,表情丰富 |
| 作物精灵 | 16×16 | 4-5 个生长阶段 |
| 场景图块 | 16×16 | 可拼接,复用性高 |
| 色彩 palette | 有限色板 | 统一视觉风格 |
#### 设计亮点
**高辨识度**:每个作物/角色都有独特轮廓和配色
**生长可视化**:作物每阶段外观明显不同
**季节变化**:同一场景不同季节有不同色调
**细节动画**:作物摇摆、水流、粒子效果
#### 可借鉴点
| 借鉴点 | 类型 | 实施建议 |
|--------|------|----------|
| 作物生长阶段 | 可直接复用 | 每株植物 4-5 帧生长动画 |
| 季节色调 | 可直接复用 | 春夏秋冬不同背景色板 |
| 像素粒子效果 | 可直接复用 | 突变/收获时粒子特效 |
| 角色表情系统 | 需适配 | 剧情 NPC 需要多种表情 |
#### 《杂交农场》美术规范建议
```
- 基础分辨率16×16 像素图块
- 作物精灵4 个生长阶段 (种子→幼苗→成熟→结果)
- 色彩风格:温暖田园色调,饱和度高
- 特殊效果:基因突变时金色闪光,稀有品种发光边框
```
---
### 2.2 种植系统拆解
#### 系统架构
```
种植系统
├── 土地管理
│ ├── 耕地/浇水/施肥
│ ├── 土壤质量
│ └── 连作障碍
├── 作物生长
│ ├── 生长周期
│ ├── 季节限制
│ └── 随机事件 (虫害、干旱)
└── 收获处理
├── 手动/自动收获
├── 品质分级 (普通/银/金/铱)
└── 加工选项 (酿酒、腌制)
```
#### 核心机制
| 机制 | 描述 | 可借鉴度 |
|------|------|----------|
| 品质分级 | 随机产生不同品质作物 | ⭐⭐⭐⭐ 可直接复用 |
| 肥料系统 | 不同肥料影响品质和生长速度 | ⭐⭐⭐⭐ 需适配为"营养液" |
| 季节限制 | 作物只能在特定季节种植 | ⭐⭐ 不建议 (限制实验自由度) |
| 随机事件 | 乌鸦、蝗虫等灾害 | ⭐⭐⭐ 可简化为"实验失败" |
#### 设计思路还原
星露谷的种植系统设计哲学是**"简单但有深度"**
- 表面:种下去→等它长→收获
- 深度:肥料、浇水频率、季节、品质、加工
《杂交农场》应借鉴这种分层设计:
- 休闲玩家:只需浇水等待
- 硬核玩家:可控制温度、光照、激素、基因编辑
---
## 3. 基因花园桌游 - 遗传机制桌游化参考
### 3.1 骰子基因系统拆解
#### 系统概述
《基因花园》(Gene Garden) 是一款将遗传学机制桌游化的作品,用骰子代表基因,通过投掷和组合模拟遗传过程。
#### 系统架构
```
骰子基因系统
├── 基因骰子
│ ├── 面数d6 (6 种等位基因)
│ ├── 颜色:不同性状不同颜色
│ └── 标记:显性 (大写字母) / 隐性 (小写字母)
├── 遗传机制
│ ├── 亲本各投 1 骰子
│ ├── 后代随机获得 1 面
│ └── 组合成基因型
└── 性状表达
├── 显性优先
├── 共显性 (特殊)
└── 表型卡对照
```
#### 核心机制
| 机制 | 桌游实现 | 电子游戏转化建议 |
|------|----------|-----------------|
| 随机遗传 | 投骰子 | RNG 抽取,但显示"基因抽取动画" |
| 基因组合 | 骰子配对 | 双亲基因池随机组合 |
| 性状分离 | 多次投掷统计 | 可显示理论概率 vs 实际结果 |
| 突变 | 特殊骰子面 | 小概率触发,特殊动画 |
#### 设计亮点
**物理化随机性**:骰子让抽象的遗传变得可触摸
**概率可视化**:玩家可以直观看到 1/6、1/36 等概率
**策略空间**:选择哪些亲本杂交,管理有限骰子资源
#### 可借鉴点
| 借鉴点 | 类型 | 《杂交农场》实施建议 |
|--------|------|---------------------|
| 骰子动画 | 可直接复用 | 杂交时显示"基因骰子滚动"动画 |
| 概率显示 | 可直接复用 | 杂交前显示后代各性状概率 |
| 基因卡牌 | 需适配 | 每张植物卡显示基因型 (如 AaBb) |
| 共显性机制 | 可直接复用 | 特殊性状用共显性 (如血型 AB 型) |
#### 设计思路还原
《基因花园》的核心创新是**"用物理随机性模拟生物随机性"**。骰子的随机投掷完美对应减数分裂的随机分配。
《杂交农场》可以借鉴这种"可视化随机"的设计理念:
- 不用黑箱 RNG而是展示"基因抽取"过程
- 让玩家看到为什么后代是这个性状
- 失败时也能理解原因 (隐性基因纯合等)
---
### 3.2 科普与娱乐平衡拆解
#### 设计原则
| 维度 | 科普向设计 | 娱乐向设计 | 平衡方案 |
|------|-----------|-----------|----------|
| 术语使用 | 使用专业术语 (等位基因、纯合子) | 避免术语,用通俗语言 | 双模式:科普模式显示术语,休闲模式隐藏 |
| 机制简化 | 完整遗传规律 | 简化为"配色游戏" | 渐进式:初期简化,后期解锁真实机制 |
| 反馈设计 | 解释科学原理 | 只告诉结果 | 可选:点击"为什么"查看原理 |
#### 可借鉴点
| 借鉴点 | 类型 | 实施建议 |
|--------|------|----------|
| 双模式设计 | 可直接复用 | 设置中切换"科普模式/休闲模式" |
| 原理弹窗 | 可直接复用 | 关键操作后可选查看科学解释 |
| 成就即知识 | 可直接复用 | 成就描述包含知识点 ("你发现了隐性遗传") |
---
## 4. 宝可梦育种系统 - IV 值遗传参考
### 4.1 IV 值系统拆解
#### 系统概述
宝可梦的个体值 (IV, Individual Values) 是隐藏数值,影响宝可梦的能力上限。育种系统允许玩家传递优良 IV 给后代。
#### 系统架构
```
IV 遗传系统
├── 个体值 (IV)
│ ├── 6 项能力 (HP/攻击/防御/特攻/特防/速度)
│ ├── 每项 0-31 (31 为最优)
│ └── 总和决定"几 V" (6V 为完美)
├── 遗传机制
│ ├── 随机遗传 3 项 IV (Gen 6)
│ ├── 红线道具:遗传 5 项 IV
│ └── 剩余项随机生成
└── 特性遗传
├── 隐藏特性 60% 遗传 (母方)
├── 普通特性随机
└── 特性胶囊/膏药
```
#### 核心机制
| 机制 | 描述 | 数学模型 |
|------|------|----------|
| IV 随机遗传 | 从双亲随机选择 3 项 IV 传递给后代 | C(6,3) = 20 种组合 |
| 红线道具 | 改为遗传 5 项 IV仅 1 项随机 | 大幅提升效率 |
| 特性遗传 | 母方特性 60% 概率遗传 | 条件概率 |
| 蛋组限制 | 只有同蛋组才能育种 | 分类系统 |
#### 设计亮点
**深度策略**:选择哪些 IV 遗传、用何道具、亲本顺序
**长期目标**:培育 6V 宝可梦是数百小时的追求
**道具系统**:各种道具改变遗传规则,增加策略维度
**社交交易**:玩家间交换优良亲本
#### 可借鉴点
| 借鉴点 | 类型 | 《杂交农场》实施建议 |
|--------|------|---------------------|
| 隐藏数值 | 需适配 | 植物有"隐藏潜力值",影响产量/抗性 |
| 道具干预 | 可直接复用 | "基因提取剂"强制传递特定基因 |
| 多代育种 | 可直接复用 | 需要多代回交才能固定优良性状 |
| 蛋组系统 | 需适配 | 改为"科属组",同科属才能杂交 |
#### 《杂交农场》IV 系统设计建议
```
植物潜力值 (PV, Plant Values)
├── 5 项维度
│ ├── 生长速度 (0-31)
│ ├── 产量 (0-31)
│ ├── 抗性 (0-31)
│ ├── 品质 (0-31)
│ └── 突变率 (0-31)
├── 遗传规则
│ ├── 默认遗传 3 项 PV
│ ├── "基因稳定剂"道具:遗传 4 项
│ └── "完美培养基"道具:遗传 5 项
└── 显示方式
├── 休闲模式:显示星级 (★★★★☆)
└── 科普模式:显示具体数值和遗传来源
```
---
### 4.2 蛋组与兼容性系统拆解
#### 系统概述
宝可梦分为 15 个蛋组,只有同蛋组的宝可梦才能育种。这限制了杂交范围,增加了策略性。
#### 可借鉴点
| 借鉴点 | 类型 | 《杂交农场》适配方案 |
|--------|------|---------------------|
| 分类限制 | 需适配 | 按植物科属分类 (蔷薇科、茄科等) |
| 跨组育种 | 可直接复用 | 特殊道具允许跨科杂交 (基因编辑) |
| 未发现组 | 可直接复用 | 某些稀有植物无法杂交,只能突变 |
#### 《杂交农场》科属组设计
```
科属组 (Family Groups)
├── 蔷薇科 (苹果、玫瑰、草莓)
├── 茄科 (番茄、土豆、辣椒)
├── 十字花科 (白菜、萝卜、甘蓝)
├── 禾本科 (水稻、小麦、玉米)
├── 豆科 (大豆、豌豆、花生)
└── ... (共 15-20 科)
杂交规则:
- 同科植物:可自由杂交
- 近缘科:可杂交但成功率降低 (蔷薇科×豆科)
- 远缘科:需要"基因编辑"道具
- 未发现组:突变植物,暂时无法杂交
```
---
## 5. 可借鉴设计提炼
### 5.1 可直接复用的设计
| 设计 | 来源游戏 | 应用场景 | 实施优先级 |
|------|----------|----------|-----------|
| 基因可视化图谱 | Crazy Plant Shop | 植物详情界面 | P0 |
| 稀有度分级 (N/R/SR/SSR) | Crazy Plant Shop | 所有植物分类 | P0 |
| 作物生长阶段动画 | 星露谷物语 | 种植系统 | P0 |
| 品质分级系统 (普通/银/金) | 星露谷物语 | 收获系统 | P1 |
| 骰子基因动画 | 基因花园桌游 | 杂交动画 | P1 |
| 概率预测显示 | 基因花园桌游 | 杂交前预览 | P0 |
| 双模式 (科普/休闲) | 基因花园桌游 | 全局设置 | P0 |
| IV 潜力值系统 | 宝可梦 | 植物隐藏属性 | P1 |
| 道具干预遗传 | 宝可梦 | 商城/合成系统 | P2 |
| 科属组限制 | 宝可梦 | 杂交兼容性 | P1 |
---
### 5.2 需适配调整的设计
| 设计 | 来源 | 原设计 | 《杂交农场》适配方案 |
|------|------|--------|---------------------|
| 经营系统 | Crazy Plant Shop | 店铺装修、顾客互动 | 简化为"科研订单"系统,聚焦育种 |
| 季节限制 | 星露谷物语 | 作物只能特定季节种植 | 改为"温室可全年种植",鼓励设施投资 |
| 灾害系统 | 星露谷物语 | 乌鸦、蝗虫随机事件 | 改为"实验污染/基因污染",可预防 |
| 蛋组系统 | 宝可梦 | 固定 15 蛋组 | 按真实植物科属分类,可学习解锁 |
| 特性遗传 | 宝可梦 | 隐藏特性 60% 遗传 | 改为"特殊性状",用孟德尔规律解释 |
---
### 5.3 不建议借鉴的设计
| 设计 | 来源 | 原因 | 替代方案 |
|------|------|------|----------|
| 体力系统 | 星露谷物语 | 限制玩家行动,与实验导向冲突 | 改为"实验次数限制"(基于资源) |
| 恋爱结婚 | 星露谷物语 | 偏离核心玩法 | 无替代,直接舍弃 |
| 挖矿战斗 | 星露谷物语 | 完全无关 | 无替代,直接舍弃 |
| 个体值计算工具依赖 | 宝可梦 | 社区被迫开发计算器,说明设计不友好 | 内置概率计算器,降低门槛 |
| 闪光宝可梦极低概率 | 宝可梦 | 1/4096 过于挫败 | 突变率设为 1-5%,可道具提升 |
---
## 6. 《杂交农场》差异化定位
### 6.1 竞品对比矩阵
| 维度 | Crazy Plant Shop | 星露谷物语 | 宝可梦 | 《杂交农场》 |
|------|-----------------|-----------|--------|-------------|
| 遗传真实性 | ⭐⭐⭐ 简化孟德尔 | ⭐ 无遗传系统 | ⭐⭐ IV 值部分遗传 | ⭐⭐⭐⭐⭐ 完整孟德尔 + 复杂遗传 |
| 科普价值 | ⭐⭐⭐ 基础遗传 | ⭐ 无 | ⭐ 无 | ⭐⭐⭐⭐⭐ 袁隆平剧情 + 知识点 |
| 美术风格 | ⭐⭐⭐ 卡通 3D | ⭐⭐⭐⭐⭐ 经典像素 | ⭐⭐⭐⭐ 现代像素 | ⭐⭐⭐⭐ 星露谷式像素 |
| 经营深度 | ⭐⭐⭐⭐ 完整商店 | ⭐⭐⭐⭐⭐ 农场 + 社交 | ⭐⭐ 培育站 | ⭐⭐⭐ 科研订单 + 交易 |
| 多人社交 | ⭐ 有限交易 | ⭐⭐⭐⭐ 联机合作 | ⭐⭐⭐ 对战交易 | ⭐⭐⭐⭐ 品种交易 + 展示 |
| 难度选择 | ⭐ 单一难度 | ⭐ 单一难度 | ⭐ 单一难度 | ⭐⭐⭐⭐⭐ 双轨难度 |
---
### 6.2 独特卖点 (USP)
#### USP #1最真实的植物遗传模拟
```
竞品现状:
- Crazy Plant Shop简化遗传仅 3-4 个性状
- 宝可梦IV 值系统,但与真实遗传学无关
- 星露谷:无遗传系统
《杂交农场》优势:
✅ 完整孟德尔遗传 (分离定律、自由组合定律)
✅ 复杂遗传 (连锁、交换、多基因、表观遗传)
✅ 真实植物科属分类
✅ 可导出"实验报告"(教育场景)
```
#### USP #2双轨难度系统
```
休闲模式:
- 隐藏专业术语
- 简化为"配色育种"
- 自动提示最优杂交方案
- 适合: casual 玩家、儿童
科普模式:
- 显示完整基因型 (AaBb × AaBb)
- 显示 Punnett 方格预测
- 需要手动记录实验数据
- 适合:学生、科普爱好者、硬核玩家
切换自由:随时在设置中切换,进度通用
```
#### USP #3袁隆平剧情科普线
```
剧情设计:
- 以袁隆平杂交水稻研究为原型
- 重现"三系法"育种历程
- 穿插真实历史事件和科学原理
- 最终解锁"超级稻"品种
教育价值:
- 了解中国科学家贡献
- 理解杂交水稻原理
- 激发科学兴趣
```
#### USP #4科研导向的经营系统
```
与传统经营游戏区别:
- 不是"开店赚钱",而是"完成科研项目"
- 订单来自"研究所"而非普通顾客
- 奖励不是金钱,而是"科研经费"和"稀有亲本"
- 终极目标是"培育出突破性品种"而非"成为首富"
```
---
### 6.3 目标受众差异化
| 受众 | 竞品覆盖 | 《杂交农场》策略 |
|------|---------|-----------------|
| 休闲玩家 | 被 Crazy Plant Shop 覆盖 | 用休闲模式 + 星露谷美术吸引 |
| 学生群体 | **未被覆盖** | 双模式 + 实验报告导出,直击需求 |
| 科普爱好者 | **未被覆盖** | 袁隆平剧情 + 真实遗传学,填补空白 |
| 硬核玩家 | 被宝可梦育种覆盖 | 用更真实的遗传系统 + 高难度挑战吸引 |
**核心机会**:学生群体和科普爱好者是**蓝海市场**,现有竞品均未有效覆盖。
---
### 6.4 玩法创新点
#### 创新 #1实验记录本系统
```
功能:
- 自动记录每次杂交的亲本、后代、性状统计
- 可手动添加实验备注
- 支持导出 PDF 报告 (教育场景)
- 成就系统基于实验记录 ("完成 100 次杂交实验")
价值:
- 满足学生"实验课"需求
- 帮助硬核玩家追踪育种进度
- 增加游戏"严肃感",区别于纯娱乐
```
#### 创新 #2基因编辑 minigame
```
玩法:
- 消耗"基因编辑点数"定向修改基因
- CRISPR 主题 minigame (剪切 - 粘贴基因片段)
- 有失败风险 (脱靶效应)
- 伦理系统:过度编辑影响结局
价值:
- 引入现代生物技术元素
- 增加策略维度 (自然育种 vs 基因编辑)
- 科普基因编辑原理
```
#### 创新 #3品种认证与交易系统
```
设计:
- 玩家可给自创品种命名并提交"认证"
- 系统生成唯一品种 ID
- 其他玩家可交易/种植该品种
- 原创者获得"版税"(交易分成)
价值:
- 激励玩家创造稀有品种
- 建立玩家间经济系统
- 类似"创意工坊"但深度整合
```
#### 创新 #4季节 × 环境 × 基因三维系统
```
传统设计:季节决定可种植作物
创新设计:
- 季节影响环境参数 (温度、光照、湿度)
- 环境参数影响基因表达 (表型可塑性)
- 同一基因型在不同季节表现不同
- 玩家需要"适应性育种"
示例:
- 品种 A高温下高产低温下减产
- 品种 B稳定但平庸
- 玩家需根据目标季节选择育种方向
```
---
## 7. 总结与行动建议
### 7.1 核心结论
1. **Crazy Plant Shop 是最直接竞品**,但其遗传系统过于简化,《杂交农场》可用"更真实"形成差异化
2. **星露谷的美术和种植系统是黄金标准**,应直接借鉴其像素风格和生长动画
3. **桌游《基因花园》的骰子设计**提供了"可视化随机"的优秀思路
4. **宝可梦的 IV 系统**证明了"隐藏数值 + 长期育种"的玩家粘性
5. **学生群体和科普爱好者是蓝海**,双模式 + 教育功能是核心机会
### 7.2 MVP 优先级建议
| 优先级 | 功能 | 来源 | 理由 |
|--------|------|------|------|
| P0 | 基础孟德尔遗传系统 | Crazy Plant Shop + 原创 | 核心玩法,必须最早完成 |
| P0 | 植物生长动画 | 星露谷物语 | 视觉反馈,影响第一印象 |
| P0 | 双模式切换 | 基因花园桌游 | 扩大受众,降低门槛 |
| P1 | 基因可视化图谱 | Crazy Plant Shop | 帮助玩家理解遗传 |
| P1 | 品质分级系统 | 星露谷物语 | 增加收获成就感 |
| P1 | 科属组限制 | 宝可梦 | 增加策略深度 |
| P2 | 袁隆平剧情 | 原创 | 差异化卖点,但 MVP 后可加 |
| P2 | 实验记录本 | 原创 | 教育功能v1.0 核心 |
| P3 | 基因编辑 minigame | 原创 | 高级功能DLC 内容 |
| P3 | 联机交易 | 原创 | v2.0 内容 |
### 7.3 风险与应对
| 风险 | 概率 | 影响 | 应对方案 |
|------|------|------|----------|
| 遗传系统过于复杂劝退休闲玩家 | 高 | 高 | 双模式设计 + 强引导教程 |
| 美术质量达不到星露谷水准 | 中 | 高 | 早期确定美术规范,外包给专业像素画师 |
| 教育功能变成"说教" | 中 | 中 | 知识点做成可选弹窗,不强制阅读 |
| 联机功能开发成本超预算 | 高 | 中 | v2.0 再开发MVP 专注单机 |
---
**报告完成时间**2026-03-10
**分析师**:🔍 游戏拆解分析师
**版本**v1.0
---
*本报告供《杂交农场》全体开发成员参考,特别是:*
- *🎮 系统设计师:遗传系统、经营系统*
- *🎨 美术设计师:像素风格规范、动画需求*
- *📝 剧情设计师:袁隆平剧情线、科普内容*
- *💻 程序工程师:核心算法、数据结构*

File diff suppressed because it is too large Load Diff

View File

@@ -1,211 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hybrid Farm - 游戏策划案</title>
<style>
:root {
--primary: #4CAF50;
--secondary: #8BC34A;
--accent: #FFC107;
--dark: #2E7D32;
--light: #F1F8E9;
--text: #333;
--text-light: #666;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
line-height: 1.6;
color: var(--text);
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
header {
background: rgba(255,255,255,0.95);
border-radius: 15px;
padding: 30px;
margin-bottom: 30px;
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}
h1 {
color: var(--dark);
font-size: 2.5em;
margin-bottom: 10px;
}
.subtitle {
color: var(--text-light);
font-size: 1.2em;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
margin-bottom: 30px;
}
.card {
background: rgba(255,255,255,0.95);
border-radius: 15px;
padding: 25px;
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card:hover {
transform: translateY(-5px);
box-shadow: 0 15px 30px rgba(0,0,0,0.2);
}
.card h2 {
color: var(--primary);
margin-bottom: 15px;
font-size: 1.5em;
display: flex;
align-items: center;
gap: 10px;
}
.card h2::before {
content: '🌱';
font-size: 1.2em;
}
.card ul {
list-style: none;
padding-left: 0;
}
.card li {
padding: 8px 0;
border-bottom: 1px solid var(--light);
}
.card li:last-child {
border-bottom: none;
}
.card a {
color: var(--dark);
text-decoration: none;
display: block;
padding: 5px 0;
transition: color 0.3s ease;
}
.card a:hover {
color: var(--primary);
text-decoration: underline;
}
.tag {
display: inline-block;
background: var(--light);
color: var(--dark);
padding: 3px 10px;
border-radius: 20px;
font-size: 0.85em;
margin-right: 5px;
margin-bottom: 5px;
}
.status-badge {
background: var(--accent);
color: #fff;
padding: 5px 15px;
border-radius: 20px;
font-weight: bold;
display: inline-block;
margin-top: 10px;
}
footer {
text-align: center;
color: rgba(255,255,255,0.8);
padding: 20px;
font-size: 0.9em;
}
@media (max-width: 768px) {
h1 { font-size: 2em; }
.grid { grid-template-columns: 1fr; }
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>🌾 Hybrid Farm</h1>
<p class="subtitle">混合农场 - 游戏策划案</p>
<span class="status-badge">策划阶段</span>
</header>
<div class="grid">
<div class="card">
<h2>项目概述</h2>
<p style="margin-bottom: 15px;">一款结合传统农场模拟与创新玩法的休闲游戏</p>
<div>
<span class="tag">休闲</span>
<span class="tag">模拟</span>
<span class="tag">策略</span>
</div>
<ul style="margin-top: 15px;">
<li><a href="docs-viewer.html?doc=00-project-brief.md">📄 项目简报</a></li>
<li><a href="docs-viewer.html?doc=08-progress-tracker.md">📊 进度追踪</a></li>
</ul>
</div>
<div class="card">
<h2>核心玩法</h2>
<ul>
<li><a href="docs-viewer.html?doc=01-mechanics-task.md">🎮 机制设计</a></li>
<li><a href="docs-viewer.html?doc=11-mechanics-design.md">⚙️ 详细机制</a></li>
<li><a href="docs-viewer.html?doc=02-balance-task.md">⚖️ 数值平衡</a></li>
</ul>
</div>
<div class="card">
<h2>故事与关卡</h2>
<ul>
<li><a href="docs-viewer.html?doc=03-story-task.md">📖 故事设计</a></li>
<li><a href="docs-viewer.html?doc=04-level-task.md">🗺️ 关卡设计</a></li>
</ul>
</div>
<div class="card">
<h2>分析与文档</h2>
<ul>
<li><a href="docs-viewer.html?doc=05-analysis-task.md">📈 市场分析</a></li>
<li><a href="docs-viewer.html?doc=06-document-task.md">📝 文档规范</a></li>
<li><a href="docs-viewer.html?doc=10-analysis-report.md">📊 分析报告</a></li>
</ul>
</div>
<div class="card">
<h2>协作计划</h2>
<ul>
<li><a href="docs-viewer.html?doc=07-collaboration-plan.md">🤝 协作流程</a></li>
</ul>
</div>
</div>
<footer>
<p>Generated by OpenClaw Agent • Deployed via Git Workflow</p>
<p>最后更新2026-03-10</p>
</footer>
</div>
</body>
</html>