Files
SectSimulator/README.md
T

7.6 KiB
Raw Blame History

模拟宗门

基于 Godot 4.7GDScript)的宗门经营模拟游戏。

项目结构

模拟宗门/
│
├── 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

任务 说明
财政经济 收支明细、俸禄发放、市场价格
任务系统 宗门任务发布、贡献值、兑换
生产制造 炼丹/炼器/符箓工坊
战斗系统 弟子组队、外敌入侵事件

里程碑

  • M1P1 完成):新游戏 → 招弟子 → 挂机产出 → 存档读档,完整闭环
  • M2P2 完成):可体验宗门经营的丰富玩法
  • M3:战斗/秘境/外交,正式版本

运行方式

  1. 用 Godot 4.7 打开 project.godot
  2. F5 运行,主场景为 MainMenu.tscn
  3. "新游戏"直接进入;"读取存档"在存档面板中选择
  4. 游戏内顶部 HUD 可暂停/调速(1x/5x/20x),返回按钮回主菜单

导出

  1. 编辑器安装 4.7.1 导出模板(编辑器 → 管理导出模板)
  2. 项目 → 导出 → Windows Desktopexport_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