戴森球计划工厂蓝图仓库 FactoryBluePrints 完全指南:安装、Git 自动更新机制与目录组织
戴森球计划工厂蓝图仓库 FactoryBluePrints 完全指南:安装、Git 自动更新机制与目录组织
本篇技术指南以《戴森球计划》社区工厂蓝图仓库 README.md 为主体,系统讲解 FactoryBluePrints 的项目定位、蓝图分类目录结构、从 Releases 安装蓝图包的完整流程,并结合 update.bat、update.sh、Makefile 源码,深入剖析其内置的 Git 自动更新与发布打包机制。读完本文,你将能独立完成该蓝图仓库的安装、首启更新、日常更新与常见故障排查,并理解其"发布包 + Git 拉取"的独特分发原理。
1. 仓库是什么:面向社区分享的戴森球工厂蓝图库
FactoryBluePrints 是游戏《戴森球计划》的工厂蓝图仓库,用于储存与分享来自社区的工厂蓝图。根据 README.md 的简介,最早一批蓝图主要由小马蓝图群成员与 CIDT 设科院成员贡献;为了对社区大量蓝图进行分类、管理、储存与分享,项目以 GitHub 仓库作为交流群文件的备份,并计划将来建设为独立的蓝图网站。
仓库中的蓝图文件绝大多数以 .txt 文本形式存放(单个文件即一份蓝图),部分以 BPBOOK: 开头的"蓝图手册"格式组织。仓库根目录的 intro 即是一个典型的蓝图手册文件,其内容以 URL 编码形式内嵌了使用说明、更新指引与协议声明,例如其中的说明文本指向"完整说明书请查阅 README.md"、提示"进入蓝图文件夹双击更新蓝图仓库.bat"完成更新,并声明默认协议为"知识共享 署名-非商业性使用-相同方式共享 4.0 国际"——可以看出,_intro_ 文件本身也是对 README 核心信息的一种蓝图内嵌分发。
1.1 贡献与联系渠道
普通玩家既可以加入交流群上传蓝图,也可以通过 Pull Request 直接投稿(投稿时应根据蓝图功能放入最合适的文件夹)。README 列出了以下联系渠道(QQ 群):
| 群号 | 群名 / 用途 |
|---|---|
| 936739864 | 戴森球计划蓝图仓库(优先选择) |
| 150369431 | CIDT 学院群 |
| 914523440 / 611954295 / 342139527 / 949098605 | 小马蓝图 2~5 群(已满) |
| 752416362 | 重装小兔粉丝群 |
| 746596008 | 戴森球计划知识库 |
2. 蓝图目录组织:按功能分类的仓库骨架
仓库顶层按"功能域"组织为多个中文目录,每个功能目录下既有散落的单片蓝图(单个 .txt),也有按主题聚合的子文件夹,并普遍配有 _intro_ 说明文件与 Team_DSPBluePrints.md 协作文档。从仓库根目录可以观察到以下顶层分类:
- 分布式_Distributed:分布式产线与全物品一塔一物等方案;
- 分馏_Fractionator:重氢分馏、转转乐等分馏类蓝图;
- 发电其它_Other-Power 与 发电小太阳_Sun-Power:火电、太阳能、风电、小太阳与蓄电模块;
- 基础材料_Basic-Materials / 增产剂_Proliferator / 燃料棒_Fuel-Rod / 翘曲器_Warper / 透镜_Lens:基础产物与中间品生产线;
- 白糖_White-Jello / 彩糖_Colorful-Jello:各色矩阵与白糖黑盒;
- 建筑超市_Supermarket / 建筑黑盒-Mall / 模块_Module:建筑产线与可复用组件模块;
- 采矿_Mining / 物流塔_ILS-PLS / 戴森球建造_Dyson-Sphere-Builder / 锅盖_RR / 太阳帆生产_Sail-Factory:资源采集、物流、弹射与射线接收等专项设施;
- 蓝图包_BP-Book:面向不同阶段玩家的整合蓝图包(含新手村、全流程蓝图包 v10.2/v11.7 等);
- 黑雾_DarkFog / 过期_Expired:黑雾版本蓝图与因游戏版本更新而失效的旧蓝图归档(
过期_Expired下按"公式更新""无带流被修复""白爪更新"等事件分类,便于追溯版本演变)。
提示:以上目录名与分类均可在仓库根目录直接查看验证;若需投稿,README 明确要求"根据蓝图功能投稿到最合适的文件夹"。
3. 第一次安装:从 Releases 下载蓝图包
README 对首次安装给出了明确的四步流程,这里完整继承并补充说明:
- 打开仓库主页,进入 Releases 页面下载最新蓝图包,文件名形如
FactoryBluePrints_X.Y.Z.rar。 - 不要从绿色 Code 按钮处下载 Source code——README 明确警告这样得到的文件不完整。
- 解压后,连同整个文件夹一起放入游戏默认蓝图文件夹,最终路径应形如:
C:\Users\%USERNAME%\Documents\Dyson Sphere Program\Blueprint\FactoryBluePrints\README.md - 第一次使用必须先更新,否则此时没有任何蓝图。
3.1 为什么发布包是"半成品":源码给出的解释
从 Makefile 的打包目标可以看出,发布包本质上是一个**引导包(bootstrap)**而非蓝图成品:
PACKAGE_DEPS := .git update.bat README.md README_EN.md MinGit # Windows
PACKAGE_DEPS := update.sh README.md README_EN.md # Linux
Windows 平台的发布包依赖项只包含 .git(完整 Git 仓库历史)、update.bat、两份 README 与随附的 MinGit(内置 Git 运行时),并不直接打包蓝图文件。蓝图本体是在首次运行时通过 Git 从远程拉取下来的——这正是"第一次使用必须先更新,否则此时没有任何蓝图"的直接原因,也解释了为何从 Code 下载 Source code 会不完整(缺少经过 git repack 处理后的完整对象与配套工具链)。
3.2 放置路径与权限:为什么必须"连同文件夹一起放"
README 常见问题中特别强调了一种高频错误:用户解压后全选文件放入 Blueprint 根目录,而不是连同 FactoryBluePrints 文件夹一起放入。仓库本身不依赖绝对路径,但这不意味着在任意路径下 Git 都有读写权限;在部分电脑上,Git 无权访问 Blueprint 根目录,从而引发文件权限异常。
这一约束在更新脚本中有对应的检测逻辑:update.sh 会在运行前检查 ../../Blueprint 是否存在,若不存在则写入日志并提示"警告:您似乎安装到了错误的路径,这可能导致文件权限异常";update.bat 同样通过 cd .. 两级回退后检查 Blueprint 目录是否存在,并以此决定后续报错时的提示分支。因此,正确的做法是保持目录结构完整:Blueprint\FactoryBluePrints\README.md。
4. 一键更新机制:update.bat / update.sh 源码解析
更新蓝图非常简单——Windows 下只需双击 update.bat。但脚本内部其实完成了一整套"环境自检 → Git 配置 → 拉取 → 失败兜底"的流程,理解它有助于排查更新类问题。
4.1 Windows:update.bat 的执行流程
以脚本实际逻辑为准,其关键步骤依次为:
- 输出调试日志:在
update.log中记录目录列表与时间戳,供后续排障。 - 安装路径自检:向上两级查找
Blueprint目录,不存在则设置警告标记WARNING_TEST_DIR=1。 - Git 运行时定位:优先使用随包携带的
.\MinGit\cmd\git.exe(保证用户机器未装 Git 也能更新),找不到则回退到系统git。 - Git 可用性测试:执行
git -v,失败则报"错误:无法找到git.exe"并跳转到错误处理分支。 - .git 仓库完整性测试:用
git rev-parse --path-format=absolute --git-dir校验仓库目录;若失败,结合第 2 步的警告标记给出两类不同提示——路径放错时提示"文件权限异常…请连同外面的文件夹一起放入",否则提示".git/ 已损坏"。 - 本地 Git 配置:执行
git config --local core.quotepath false(避免中文路径转义)与git config --local http.sslVerify false(部分环境下关闭 SSL 校验以便拉取)。 - 执行更新:
git pull origin main;失败则提示"更新获取失败。这通常是网络波动,重试就行,无效请使用加速器/挂梯子后再更新",成功则提示"蓝图文件更新完成,现在可以直接关闭此窗口"。
所有成功/失败路径都会把结果写入 update.log,README 建议排障时附上 update.log 截图反馈。
4.2 Linux/macOS:update.sh 的执行流程
update.sh 是与 .bat 对应的类 Unix 版本(#!/bin/bash),逻辑略有差异:
- 定义
LOG_PATH="update.log"与REMOTE_URI(指向仓库的 Git 远程地址); - 检测
../../Blueprint是否存在,输出同样的"安装到错误路径"警告; - 检测
git是否安装,缺失则直接报错退出; - 若本地缺少
.git目录,脚本会自动执行git init并添加远程,实现"零基础可用"; - 更新策略不同:先
git remote set-url origin强制修正远程地址,再git fetch --all,最后git reset --hard origin/main——以强制重置到远程 main 分支的方式保证本地与仓库严格一致,避免本地修改导致 pull 冲突。
两种脚本都把日志写入 update.log,是排查安装路径、Git 缺失、网络失败等问题时的第一手依据。
4.3 其他辅助脚本
仓库根目录还随附了 一键更新仓库.bat、切换镜像.bat 等辅助脚本(可于根目录直接查看),前者提供"一键式"更新入口,后者面向需要切换拉取源(镜像)的网络环境。
5. 发布与打包:Makefile 中的 Git 深度压缩原理
README 以玩家视角说明了"从 Releases 下载、用 update 更新",而支撑这一机制的发布流水线在 Makefile 中清晰可见:
ifeq ($(OS),Windows_NT)
RAR := "C:/Program Files/WinRAR/Rar.exe"
PACKAGE_EXT := rar
PACKAGE_CMD = $(RAR) a -ma5 -md1024 -m5 -mt32 -htb -s -rr1p -QO+ $@ $^
else
PACKAGE_EXT := tar.gz
PACKAGE_CMD = tar -czf $@ $^
endif
- Windows 下用 WinRAR 以最高压缩比(
-m5、字典 1024MB、多线程-mt32、固实压缩-s、恢复记录-rr1p)产出.rar发布包; - Linux 下产出
tar.gz包; - 打包前先执行
git repack -a -d --window-memory=0 --depth=4095,把松散对象重打包为增量链深度达 4095 的包文件,大幅压缩仓库体积。
此外还有专门的 repack 目标:先设置 core.compression 9、core.looseCompression 9、pack.compression 9 三档最高压缩配置,再 git repack -a -d -f -F 强制重打包。这解释了发布包"小但完整"的特性,也是 Release 与 Source code 下载差异的根源。
6. 常见问题与故障排查
结合 README 的 FAQ 与脚本实现,可归纳以下高频问题:
Q:打不开仓库主页 / 下载特别慢 / 更新特别慢? A:通常是网络问题。仓库托管于 GitHub,README 建议在 Watt Toolkit(原名 Steam++)中开启 GitHub 加速服务解决。
Q:警告"您似乎安装到了错误的路径,这可能导致文件权限异常"?
A:通常是解压后全选文件放入了 Blueprint 根目录,而非连同文件夹一起放入。请保持 Blueprint\FactoryBluePrints\README.md 的目录层级(脚本通过检测 ../../Blueprint 来识别该问题)。
Q:更新失败、提示"更新获取失败"? A:多为网络波动,重试即可;仍失败请使用加速器/代理后再更新(update.bat 在失败时也会给出该提示)。
Q:提示".git/ 已损坏"?
A:说明本地 Git 仓库元数据异常,可结合 update.log 反馈给维护者(README 建议附上页面截图与 update.log 截图,加群 936739864 反馈)。
7. 协议与投稿规则
README 对蓝图的使用协议作出了明确约定:
- 若蓝图作者对自己的蓝图发布了使用协议,则自该协议发布之时起,相关蓝图遵循作者发布的使用协议;
- 若无特殊声明,仓库内一切蓝图及其他文件默认采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际(CC BY-NC-SA 4.0)。
因此,在使用或二次分享仓库蓝图时,应先确认对应蓝图是否带有作者自定的协议;无特殊声明的蓝图遵循 CC BY-NC-SA 4.0 的署名、非商业与相同方式共享约束。投稿方面,既可在交流群上传群文件(维护者会不定期分类收录),也可直接通过 Pull Request 投稿,并按蓝图功能放入最合适的顶层分类目录(见本文第 2 节)。
附:关键文件速查
| 文件 | 作用 |
|---|---|
| README.md | 项目主文档:安装、更新、FAQ 与协议 |
| README_EN.md | 英文版说明 |
| update.bat | Windows 一键更新脚本(内置 MinGit 检测与路径自检) |
| update.sh | Linux/macOS 更新脚本(fetch + reset --hard) |
| Makefile | 发布包打包流水线(RAR/tar.gz + git repack 深度压缩) |
| intro | 蓝图手册格式的仓库内嵌说明 |