170 lines
7.6 KiB
Markdown
170 lines
7.6 KiB
Markdown
# 模拟宗门
|
||
|
||
基于 Godot 4.7(GDScript)的宗门经营模拟游戏。
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
模拟宗门/
|
||
│
|
||
├── Doc/ # 设计文档
|
||
│ ├── 修仙宗门设计文档.md
|
||
│ ├── 宗门行政体系.md
|
||
│ ├── 宗门礼仪建筑.md
|
||
│ ├── 游戏模块总览.md
|
||
│ ├── 存档界面UI设计.md
|
||
│ └── 开发计划表.md # 开发排期与进度跟踪
|
||
│
|
||
├── addons/ # Godot 插件
|
||
│
|
||
├── assets/ # 资源文件
|
||
│ ├── sprites/ # 精灵图
|
||
│ │ ├── buildings/
|
||
│ │ ├── characters/
|
||
│ │ ├── icons/
|
||
│ │ └── ui/
|
||
│ ├── audio/ # 音频
|
||
│ │ ├── bgm/
|
||
│ │ └── sfx/
|
||
│ └── fonts/ # 字体(中文字体已导入)
|
||
│
|
||
├── resources/ # 配置数据 (.tres / .res)
|
||
│ ├── settings/
|
||
│ ├── buildings/
|
||
│ ├── characters/
|
||
│ ├── skills/
|
||
│ ├── items/
|
||
│ └── events/
|
||
│
|
||
├── src/ # 源码 + 场景(.gd 与 .tscn 同目录)
|
||
│ │
|
||
│ ├── Core/ # 核心框架
|
||
│ │ ├── MainGame.gd # [已实现] 主游戏入口,注册游戏场景分组
|
||
│ │ ├── MainGame.tscn
|
||
│ │ ├── GameState.gd # [已实现] Autoload,场景参数 + 游戏时间
|
||
│ │ ├── TimeSystem.gd # [已实现] Autoload,时间推进/暂停/流速/信号
|
||
│ │ └── Settings.gd # [已实现] Autoload,用户设置持久化 (user://)
|
||
│ │
|
||
│ ├── Data/ # 数据层
|
||
│ │ ├── Models/
|
||
│ │ └── SO/
|
||
│ │
|
||
│ ├── Sect/ # 宗门管理(规划)
|
||
│ │ ├── buildings/
|
||
│ │ │ └── buildings/
|
||
│ │ │ ├── admin/ # 行政类
|
||
│ │ │ ├── education/ # 教育类
|
||
│ │ │ ├── workshop/ # 工坊类
|
||
│ │ │ ├── storage/ # 物资类
|
||
│ │ │ ├── resource/ # 资源类
|
||
│ │ │ ├── living/ # 生活类
|
||
│ │ │ ├── ritual/ # 礼仪类
|
||
│ │ │ └── utility/ # 功能类
|
||
│ │ ├── halls/ # 各堂管理
|
||
│ │ └── panels/
|
||
│ │
|
||
│ ├── Character/ # 角色系统(规划)
|
||
│ │ └── AI/
|
||
│ │
|
||
│ ├── Production/ # 生产制造(规划)
|
||
│ │
|
||
│ ├── Combat/ # 战斗系统(规划)
|
||
│ │ └── enemies/
|
||
│ │
|
||
│ ├── World/ # 世界/地图(规划)
|
||
│ │
|
||
│ ├── Events/ # 事件/叙事(规划)
|
||
│ │
|
||
│ ├── UI/ # 用户界面
|
||
│ │ ├── HUD/ # [已实现] 顶部信息栏(灵石/时间/声望 + 速度控制)
|
||
│ │ │ ├── TopBarHUD.tscn
|
||
│ │ │ └── top_bar_hud.gd
|
||
│ │ └── Panels/ # 功能面板
|
||
│ │ ├── MainMenu/ # [已实现] 主菜单(新游戏/读取存档/设置/退出)
|
||
│ │ ├── SavePanel.gd # [已实现] 存档选择面板
|
||
│ │ ├── SavePanel.tscn
|
||
│ │ ├── SaveSlot.gd # [已实现] 存档槽位(载入/删除/新建)
|
||
│ │ └── SaveSlot.tscn
|
||
│ │
|
||
│ └── Utils/ # 工具类(规划)
|
||
│
|
||
├── icon.svg
|
||
└── project.godot
|
||
```
|
||
|
||
> `[已实现]` = 当前已有代码/场景;未标注目录为规划结构,随开发逐步填充。
|
||
|
||
## 当前功能进度
|
||
|
||
| 功能 | 状态 | 说明 |
|
||
| ---- | ---- | ---- |
|
||
| 主菜单 | 已完成 | 新游戏/读取存档/设置/退出,中文字体 |
|
||
| 场景切换 | 已完成 | MainMenu ↔ MainGame,经 GameState 传参 |
|
||
| 存档界面 | 已完成 | 槽位动态生成 + 空槽新建,信号驱动 |
|
||
| 时间系统 | 已完成 | 12月×30天历法,暂停/1x/5x/20x 流速,日/月/年信号 |
|
||
| 用户设置 | 已完成 | 默认流速持久化 (user://settings.cfg) |
|
||
| 顶部 HUD | 已完成 | 灵石/时间/声望显示,速度按钮组(toggle 高亮) |
|
||
| 画面质量 | 已完成 | 1920x1080 视口,MSAA 2D/3D + TAA,文字抗锯齿 |
|
||
| 宗门数据模型 | 已完成 | SectManager:灵石/声望/灵米 + 增减/设定接口(D2) |
|
||
| 弟子系统 | 已完成 | 生成/入宗分流/天灵根/列表详情(D3-D4) |
|
||
| 修炼循环 | 已完成 | 修为逐日增长/门槛升层/瓶颈判定/13 层圆满(D5) |
|
||
| 建筑系统 | 已完成 | 灵石矿/灵田建造升级产出,口粮消耗与断粮离宗(D6) |
|
||
| 存档接入 | 已完成 | 两级存档:无限组/槽,读档全量还原(D8) |
|
||
| 大境界突破 | 已完成 | 练气圆满手动花费灵石突破至筑基及以上,失败灵石不返还+修为倒退(D9) |
|
||
|
||
> 进度跟踪见 `Doc/开发计划表.md`,里程碑:M1(8/12) 核心闭环 → M2(9/6) 丰富玩法 → M3(10/11) 正式版本。
|
||
|
||
## 开发计划
|
||
|
||
### 下一步:核心循环闭环(P1)
|
||
|
||
目标:跑通"时间推进 → 资源产出 → 弟子修炼"最小循环,让游戏可玩。
|
||
|
||
| # | 任务 | 说明 | 依赖 |
|
||
| - | ---- | ---- | ---- |
|
||
| 1 | TimeSystem | 天/月/年推进,挂载 GameState,UI 显示当前日期 | — |
|
||
| 2 | 宗门数据模型 | SectManager 单例:灵石/灵气浓度/声望/建筑列表 | — |
|
||
| 3 | 建筑系统基础 | 建筑放置、建造/升级耗时、基础产出(灵石/药材) | 1,2 |
|
||
| 4 | 弟子系统基础 | 弟子生成(资质/灵根)、入宗分流(亲传/内门/外门/杂役) | 2 |
|
||
| 5 | 修炼循环 | 弟子按资质/灵气浓度自动修炼涨修为,境界突破 | 3,4 |
|
||
| 6 | 存档接入 | SaveSystem 序列化宗门/弟子/时间数据,替换 SavePanel 测试数据 | 全部 |
|
||
|
||
### 之后(P2)
|
||
|
||
| 任务 | 说明 |
|
||
| ---- | ---- |
|
||
| 财政经济 | 收支明细、俸禄发放、市场价格 |
|
||
| 任务系统 | 宗门任务发布、贡献值、兑换 |
|
||
| 生产制造 | 炼丹/炼器/符箓工坊 |
|
||
| 战斗系统 | 弟子组队、外敌入侵事件 |
|
||
|
||
### 里程碑
|
||
|
||
- **M1(P1 完成)**:新游戏 → 招弟子 → 挂机产出 → 存档读档,完整闭环
|
||
- **M2(P2 完成)**:可体验宗门经营的丰富玩法
|
||
- **M3**:战斗/秘境/外交,正式版本
|
||
|
||
## 运行方式
|
||
|
||
1. 用 Godot 4.7 打开 `project.godot`
|
||
2. F5 运行,主场景为 `MainMenu.tscn`
|
||
3. "新游戏"直接进入;"读取存档"在存档面板中选择
|
||
4. 游戏内顶部 HUD 可暂停/调速(1x/5x/20x),返回按钮回主菜单
|
||
|
||
## 导出
|
||
|
||
1. 编辑器安装 **4.7.1 导出模板**(编辑器 → 管理导出模板)
|
||
2. 项目 → 导出 → Windows Desktop(`export_presets.cfg` 已配置 `all_resources`,输出 `aaa.exe` 单文件含嵌入 PCK)
|
||
3. **约定**:`resources/game_config.cfg` 为未知扩展名,**不随导出打包**——导出版使用 `GameConfig.gd` 代码默认值。修改 cfg 参数后,需同步 `GameConfig.gd` 默认值再导出(注释已标注同步项)。
|
||
|
||
## 命名规范
|
||
|
||
| 类别 | 格式 | 示例 |
|
||
| -------- | ---------- | ------------------- |
|
||
| GDScript | snake_case | `top_bar_hud.gd` |
|
||
| 场景文件 | PascalCase | `MainGame.tscn` |
|
||
| 信号 | snake_case | `back_pressed` |
|
||
| 回调方法 | `_on_` 前缀 | `_on_button_pressed` |
|
||
| 资源文件 | snake_case | `iron_sword.tres` |
|
||
| 精灵图 | snake_case | `bg1.png` |
|