docs: 重构 README 为实际工程结构并新增开发计划
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
# 模拟宗门 — 项目目录结构
|
||||
# 模拟宗门
|
||||
|
||||
## 结构总览
|
||||
基于 Godot 4.7(GDScript)的宗门经营模拟游戏。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
模拟宗门/
|
||||
@@ -9,11 +11,12 @@
|
||||
│ ├── 修仙宗门设计文档.md
|
||||
│ ├── 宗门行政体系.md
|
||||
│ ├── 宗门礼仪建筑.md
|
||||
│ └── 游戏模块总览.md
|
||||
│ ├── 游戏模块总览.md
|
||||
│ └── 存档界面UI设计.md
|
||||
│
|
||||
├── addons/ # Godot 插件
|
||||
│
|
||||
├── assets/ # 原始资源文件(导入前素材)
|
||||
├── assets/ # 资源文件
|
||||
│ ├── sprites/ # 精灵图
|
||||
│ │ ├── buildings/
|
||||
│ │ ├── characters/
|
||||
@@ -22,141 +25,126 @@
|
||||
│ ├── audio/ # 音频
|
||||
│ │ ├── bgm/
|
||||
│ │ └── sfx/
|
||||
│ └── fonts/ # 字体
|
||||
│ └── fonts/ # 字体(中文字体已导入)
|
||||
│
|
||||
├── resources/ # Godot 资源文件 (.tres / .res)
|
||||
│ ├── settings/ # 全局配置
|
||||
│ ├── buildings/ # 建筑配置表
|
||||
│ ├── characters/ # 角色模板
|
||||
│ ├── skills/ # 功法/技能数据
|
||||
│ ├── items/ # 物品/装备数据
|
||||
│ └── events/ # 事件配置
|
||||
├── resources/ # 配置数据 (.tres / .res)
|
||||
│ ├── settings/
|
||||
│ ├── buildings/
|
||||
│ ├── characters/
|
||||
│ ├── skills/
|
||||
│ ├── items/
|
||||
│ └── events/
|
||||
│
|
||||
├── src/ # 源码 + 场景(按功能模块组织)
|
||||
│ │ # (.tscn 和 .cs 放在一起)
|
||||
├── src/ # 源码 + 场景(.gd 与 .tscn 同目录)
|
||||
│ │
|
||||
│ ├── Core/ # 核心框架
|
||||
│ │ ├── GameManager.cs # 游戏主循环
|
||||
│ │ ├── GameManager.tscn
|
||||
│ │ ├── TimeSystem.cs # 时间系统
|
||||
│ │ ├── EventBus.cs # 事件总线
|
||||
│ │ ├── SaveSystem.cs # 存档/读档
|
||||
│ │ └── ConfigLoader.cs # 配置加载
|
||||
│ │ ├── MainGame.gd # [已实现] 主游戏入口,按 GameState 参数区分新游戏/读档
|
||||
│ │ ├── MainGame.tscn
|
||||
│ │ └── GameState.gd # [已实现] Autoload 单例,场景间参数传递
|
||||
│ │
|
||||
│ ├── Data/ # 数据层
|
||||
│ │ ├── Models/ # 数据模型(DTO)
|
||||
│ │ └── SO/ # ScriptableObject 定义
|
||||
│ │ ├── BuildingSO.cs
|
||||
│ │ ├── SkillSO.cs
|
||||
│ │ ├── DiscipleSO.cs
|
||||
│ │ └── EventSO.cs
|
||||
│ │ ├── Models/
|
||||
│ │ └── SO/
|
||||
│ │
|
||||
│ ├── Sect/ # 宗门管理
|
||||
│ │ ├── SectManager.cs # 宗门主管理器
|
||||
│ │ ├── PowerSystem.cs # 权力结构
|
||||
│ │ ├── FinanceManager.cs # 财政经济
|
||||
│ │ ├── DiplomacySystem.cs # 外交
|
||||
│ │ ├── ContributionSystem.cs # 贡献系统
|
||||
│ │ ├── buildings/ # 建筑系统
|
||||
│ │ │ ├── BuildingSystem.cs
|
||||
│ │ │ ├── BuildingBase.cs
|
||||
│ │ │ ├── BuildingBase.tscn
|
||||
│ │ │ └── buildings/ # 具体建筑(按分类子目录)
|
||||
│ │ │ ├── admin/ # 行政类
|
||||
│ │ │ ├── education/ # 教育类
|
||||
│ │ │ ├── workshop/ # 工坊类
|
||||
│ │ │ ├── storage/ # 物资类
|
||||
│ │ │ ├── resource/ # 资源类
|
||||
│ │ │ ├── living/ # 生活类
|
||||
│ │ │ ├── ritual/ # 礼仪类
|
||||
│ │ │ └── utility/ # 功能类
|
||||
│ ├── Sect/ # 宗门管理(规划)
|
||||
│ │ ├── buildings/
|
||||
│ │ │ └── buildings/
|
||||
│ │ │ ├── admin/ # 行政类
|
||||
│ │ │ ├── education/ # 教育类
|
||||
│ │ │ ├── workshop/ # 工坊类
|
||||
│ │ │ ├── storage/ # 物资类
|
||||
│ │ │ ├── resource/ # 资源类
|
||||
│ │ │ ├── living/ # 生活类
|
||||
│ │ │ ├── ritual/ # 礼仪类
|
||||
│ │ │ └── utility/ # 功能类
|
||||
│ │ ├── halls/ # 各堂管理
|
||||
│ │ │ ├── MissionHall.cs # 功德堂/任务堂
|
||||
│ │ │ ├── TeachHall.cs # 传功堂
|
||||
│ │ │ ├── LawHall.cs # 执法堂
|
||||
│ │ │ └── ForeignHall.cs # 外事堂
|
||||
│ │ └── panels/ # 宗门管理面板场景
|
||||
│ │ └── panels/
|
||||
│ │
|
||||
│ ├── Character/ # 角色系统
|
||||
│ │ ├── Disciple.cs # 弟子类
|
||||
│ │ ├── Disciple.tscn # 弟子预制场景
|
||||
│ │ ├── DiscipleGenerator.cs # 弟子生成器
|
||||
│ │ ├── DisciplePool.cs # 弟子对象池
|
||||
│ │ ├── Stats.cs # 属性系统
|
||||
│ │ ├── CultivationSystem.cs # 境界/突破
|
||||
│ │ ├── SkillSystem.cs # 功法/技能
|
||||
│ │ ├── EquipmentSystem.cs # 装备系统
|
||||
│ │ ├── RelationshipSystem.cs # 社交关系
|
||||
│ │ └── AI/ # 弟子AI
|
||||
│ │ ├── DiscipleAI.cs
|
||||
│ │ └── BehaviorNodes.cs
|
||||
│ ├── Character/ # 角色系统(规划)
|
||||
│ │ └── AI/
|
||||
│ │
|
||||
│ ├── Production/ # 生产制造
|
||||
│ │ ├── AlchemySystem.cs # 炼丹
|
||||
│ │ ├── ForgeSystem.cs # 炼器
|
||||
│ │ ├── TalismanSystem.cs # 符箓
|
||||
│ │ ├── ArraySystem.cs # 阵法
|
||||
│ │ ├── PuppetSystem.cs # 傀儡
|
||||
│ │ ├── FarmingSystem.cs # 种植
|
||||
│ │ └── BeastSystem.cs # 养殖
|
||||
│ ├── Production/ # 生产制造(规划)
|
||||
│ │
|
||||
│ ├── Combat/ # 战斗系统
|
||||
│ │ ├── BattleManager.cs # 战斗管理器
|
||||
│ │ ├── BattleField.cs # 战场
|
||||
│ │ ├── BattleField.tscn
|
||||
│ │ ├── TurnController.cs # 回合控制
|
||||
│ │ ├── DamageCalculator.cs # 伤害计算
|
||||
│ │ ├── SkillEffect.cs # 技能效果
|
||||
│ │ ├── TeamFormation.cs # 阵型
|
||||
│ │ └── enemies/ # 敌方配置
|
||||
│ ├── Combat/ # 战斗系统(规划)
|
||||
│ │ └── enemies/
|
||||
│ │
|
||||
│ ├── World/ # 世界/地图
|
||||
│ │ ├── MapManager.cs # 地图管理器
|
||||
│ │ ├── WorldMap.cs # 大地图
|
||||
│ │ ├── WorldMap.tscn
|
||||
│ │ ├── SectSite.cs # 宗门驻地
|
||||
│ │ ├── SectSite.tscn
|
||||
│ │ ├── ExplorationSystem.cs # 探索系统
|
||||
│ │ ├── SecretRealm.cs # 秘境
|
||||
│ │ └── MarketSystem.cs # 市场/交易
|
||||
│ ├── World/ # 世界/地图(规划)
|
||||
│ │
|
||||
│ ├── Events/ # 事件/叙事
|
||||
│ │ ├── EventManager.cs # 事件管理器
|
||||
│ │ ├── RandomEvent.cs # 随机事件
|
||||
│ │ ├── StorySystem.cs # 主线/支线
|
||||
│ │ ├── TribulationSystem.cs # 天劫系统
|
||||
│ │ └── SeasonEvent.cs # 赛季活动
|
||||
│ ├── Events/ # 事件/叙事(规划)
|
||||
│ │
|
||||
│ ├── UI/ # 用户界面
|
||||
│ │ ├── HUD/ # 主界面 HUD
|
||||
│ │ ├── Panels/ # 功能面板
|
||||
│ │ │ ├── SectPanel.cs # 宗门总览
|
||||
│ │ │ ├── DisciplePanel.cs # 弟子列表/详情
|
||||
│ │ │ ├── BuildingPanel.cs # 建筑详情
|
||||
│ │ │ ├── FinancePanel.cs # 财政面板
|
||||
│ │ │ └── EventDialog.cs # 事件弹窗
|
||||
│ │ ├── Controls/ # 自定义控件
|
||||
│ │ └── Common/ # 通用UI组件
|
||||
│ │ ├── HUD/ # [已实现] 顶部信息栏(灵石/时间/返回主菜单)
|
||||
│ │ │ ├── TopBarHUD.tscn
|
||||
│ │ │ └── top_bar_hud.gd
|
||||
│ │ └── Panels/ # 功能面板
|
||||
│ │ ├── MainMenu/ # [已实现] 主菜单(新游戏/读取存档/设置/退出)
|
||||
│ │ ├── SavePanel.gd # [已实现] 存档选择面板(动态生成槽位)
|
||||
│ │ ├── SavePanel.tscn
|
||||
│ │ ├── SaveSlot.gd # [已实现] 存档槽位(载入/删除/新建)
|
||||
│ │ └── SaveSlot.tscn
|
||||
│ │
|
||||
│ └── Utils/ # 工具类
|
||||
│ ├── MathUtils.cs
|
||||
│ ├── RandomUtils.cs
|
||||
│ ├── StringUtils.cs
|
||||
│ └── Extensions.cs
|
||||
│
|
||||
├── icon.svg
|
||||
└── project.godot
|
||||
```
|
||||
|
||||
> `[已实现]` = 当前已有代码/场景;未标注目录为规划结构,随开发逐步填充。
|
||||
|
||||
## 当前功能进度
|
||||
|
||||
| 功能 | 状态 | 说明 |
|
||||
| ---- | ---- | ---- |
|
||||
| 主菜单 | 已完成 | 新游戏/读取存档/设置/退出,中文字体 |
|
||||
| 场景切换 | 已完成 | MainMenu ↔ MainGame,经 GameState 传参 |
|
||||
| 存档界面 | 已完成 | 动态槽位 + 空槽新建,信号驱动 |
|
||||
| 顶部 HUD | 已完成 | 灵石/时间显示,返回主菜单 |
|
||||
| 画面质量 | 已完成 | 1920x1080 视口,MSAA 2D/3D + TAA,文字抗锯齿 |
|
||||
| 宗门经营 | 规划中 | 见 Doc/修仙宗门设计文档.md |
|
||||
|
||||
## 开发计划
|
||||
|
||||
### 下一步:核心循环闭环(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. "新游戏"直接进入;"读取存档"在存档面板中选择
|
||||
|
||||
## 命名规范
|
||||
|
||||
| 类别 | 格式 | 示例 |
|
||||
| -------- | ------------------ | ----------------------- |
|
||||
| C# 类 | PascalCase | `SectManager.cs` |
|
||||
| 场景文件 | PascalCase | `BuildingBase.tscn` |
|
||||
| 资源文件 | snake_case | `iron_sword.tres` |
|
||||
| 精灵图 | snake_case | `building_office.png` |
|
||||
| 变量 | camelCase | `currentGold` |
|
||||
| 私有变量 | _camelCase | `_discipleList` |
|
||||
|
||||
> **注意**:C# 脚本的 `namespace` 使用 `项目名.模块名`,例如 `SectSim.Sect`、`SectSim.Character`。在 Godot 4 中,脚本路径决定了自动生成的默认命名空间,保持路径与命名空间一致可避免手动配置。
|
||||
| 类别 | 格式 | 示例 |
|
||||
| -------- | ---------- | ------------------- |
|
||||
| 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` |
|
||||
|
||||
Reference in New Issue
Block a user