狂想曲委员会——Beta冲刺Day 0
狂想曲委员会——Beta冲刺Day 0
| 这个作业属于哪个课程 | 软件工程实践 |
|---|---|
| 这个作业要求在哪里 | 团队作业——Beta冲刺+事后诸葛亮 |
| 这个作业的目标 | 调整日完成 Beta 工程骨架、核心 v5/最终选择/结局、资产与测试底座 |
| 其他参考文献 | Beta冲刺计划、11-14今日任务分工(4人+博主)、alpha_day7 工程、Ren'Py 8.5.3 文档、Beta 测试计划 |
日期:2026年11月14日(周六)
团队:狂想曲委员会
项目:《福大秋日狂想曲》
整理:狂想曲委员会博客组(正文与产物由 AI 协助整理)
一、今天的背景:风雨把外拍按下暂停键
11月14日原本是校园背景预拍摄日。由于天气影响,团队决定取消当天所有校园外拍、转场和集合,不安排任何成员外出。拍摄可以顺延,Beta 的软件底座不能一直空着。
于是今天的任务从“拍回来再写”改成“先把不依赖拍摄的部分做出来”:A 包做 Beta 工程与叙事演出骨架,B 包做共享核心 schema v5、最终选择和结局,C 包做资产管线、自动检查、测试计划与 Issue 基线;D 包负责 Alpha 问题总结、换组交接、意向表和发布收口。
| 原计划 | 调整后 | 说明 |
|---|---|---|
| 11/14 校园背景外拍 | 取消 | 风雨天不安排外出,安全优先 |
| 11/14 Alpha 问题总结、换组交接 | 保留硬截止 | 不因天气因素延期,由 D 包发布负责人处理 |
| 11/15 人物参考照 | 视天气在室内进行,否则并入 Day3 | 不在风雨天强行集合 |
| Day2 11/17 校园背景第一批 | 保留 | 作为今天取消场次的补位窗口 |
| Day5 11/20 补拍 | 保留 | 补缺景、补光 |
| 今日软件任务 | 新增 A/B/C 三个包 | 本文重点记录 |
今日未安排线下集合。Day0 是 Beta 正式七日冲刺前的准备日,不计入七日站会与燃尽图;协作以调整版任务文档、代码和测试报告为主。本文不补写未发生的站会,也不使用其他日期的照片。若团队另有线上同步,请在发布时补真实记录;没有就不放。
二、今日目标与完成情况
一句话概括:Beta 从“弹窗文字验证”推进到了“可继续接剧本的视觉小说骨架 + 可验证的 v5 核心 + 可检查的资产/测试底座”。但原生引擎、Windows 包和远程仓库今天没有条件验证。
| 模块 | Alpha/Day7 的状态 | Beta Day0 交付 | 当前结果 |
|---|---|---|---|
| 工程形态 | alpha_day7 以功能验证为主,剧情用弹窗 | 新建 beta/ Ren'Py 工程,分出 story/、images/、audio/ | 文件与静态检查齐全;原生未启动 |
| 叙事演出 | call screen day2_story 弹窗,没有 say/menu 场景 | say 名字框/对话框、choice、quick menu、history、顶部 HUD | 界面文件已写入;实机未验证 |
| 状态模型 | schema v4,只有 B 好感 | schema v5,新增 A flags 与 final_choice | 173 例单元/HTTP 测试通过 |
| 最终选择 | 第七天直接结束,按 B 好感给结局 | 第七天日终挂起 final-choice,选择后才结束 | 四个结局分支均有测试(3 个 Must + A 线可选) |
| 旧档兼容 | v4 存档 | v1—v4 迁移到 v5,旧完成档补最终选择记录 | 加载→保存→再加载回环通过 |
| 资产底座 | 没有资产目录与检查脚本 | 25 图片 + 12 音频清单、命名/尺寸检查 | 清单一致;对应文件尚未落盘 |
| 自动检查 | 141 项 | 173 项单元/HTTP(含 32 项 Beta 故事测试)+ preflight | preflight 退出码 0 |
| 仓库与 Issue | 没有远程仓库、没有 Issue | 4 个 Beta 特性分支(另有 master)、28 条 Issue 草稿、Issue 模板 | 分支已建未提交;远程仓库仍未配置 |
| 原生与发行 | Windows 包构建过但未实机 | lint/原生测试、Windows 包均未运行 | 如实记为 not_run / 未构建 |
三、任务包与产出
| 包 | 目标 | 今日产出 | 状态 |
|---|---|---|---|
| A 工程/演出 | 把 Beta 推进到可接剧本的 VN 骨架 | beta/ 工程、角色/图片声明、序章、四个结局 label、say/choice/quick menu/history、HUD 与音频设置 | 软件产物完成;原生未运行 |
| B 核心/结局 | schema v5、最终选择、旧档迁移 | flags/final_choice、final-choice 事件、E01/E03 普通/E03 最佳/E02、v1—v4 迁移、32 例故事测试(含在 173 内) | 已完成并通过自动检查 |
| C 资产/底座 | 资产、测试、Issue、分支底座 | ASSET_SPEC、25+12 清单、check_assets.py、preflight.py、测试计划、代码规范、28 Issue、4 个 Beta 分支 | 本地完成;远程未配置 |
| D 博客/发布 | Alpha 问题总结、换组交接、意向表、最终分工、日志 | 本文为今日日志;D 包其余材料的状态需由发布负责人确认 | 不把未发布写成已发布 |
今天完成的是 A/B/C 的软件产物,不是整个 Beta。D 包的 Alpha 问题总结和换组交接仍由发布负责人处理;本文不提供未发布链接,也不把“待发布”写成“已发布”。如果截至发稿这两篇硬截止材料仍未发布,应直接写“未完成”,不能用这篇日志代替。
今天按任务包记录,不按个人写“已完成”:11/14 分工文档是匿名认领版,具体到人的分工以 18:00 最终分工和真实提交为准;不把 AI 协助产物写成成员独立签入。Day0 是准备日,本文不写成员心得。
四、包 A:把 Beta 推进到视觉小说骨架
1. 新建 beta/ 工程,Alpha 保持不动
今天的 Beta 改动集中在 beta/,没有继续在 alpha_day7 上叠功能。工程从 alpha_day7 复制,排除了 artifacts/build/、runtime/、__pycache__/ 等运行产物,新增:
beta/
├─ game/
│ ├─ characters.rpy
│ ├─ images.rpy
│ ├─ script.rpy
│ ├─ options.rpy
│ ├─ screens.rpy
│ ├─ gameplay_screens.rpy
│ ├─ vn_screens.rpy
│ ├─ startup_test.rpy
│ └─ story/
│ ├─ prologue.rpy
│ └─ endings.rpy
├─ game/images/{bg,sp,cg}/
├─ game/audio/{bgm,sfx,voice}/
├─ docs/
├─ tests/
└─ tools/
characters.rpy 定义了旁白、主角、A、B、黄毛,以及 A 的线上身份“晚风”的手机消息角色(a_phone)。A 的现实口癖“你先别急”、网上的省略号慢半拍,B 的短句感叹号,黄毛的“本大爷”,都写进注释,方便后面写正式剧本时保持一致。
2. 25 个图片声明,正式文件尚未落盘
images.rpy 用 Solid/Composite 写了 25 个占位声明:8 个背景、12 个立绘、5 个 CG。它们不是正式美术,只是让 scene/show 能先跑通,并让资产清单、命名规范和后面的拍摄有同一个目标。
正式素材还没拍、没画,所以资产检查报告里“实际文件 0/25、占位未产出 25”是预期状态。声明存在,不代表对应图片文件已经存在。 今天完成的是“名字、目录、清单、检查规则”,不是“25 张图已经做好”。
3. 序章和四个结局 label
story/prologue.rpy 建立了 S00 占位场景:
scene bg_03_dorm_dayshow sp_a_normal- A 与“晚风”的几句对话
- 一个三选项
menu hide后return主循环
story/endings.rpy 建立了四个 label:ending_alone、ending_b_normal、ending_b_best、ending_a。四个 label 都统一调用 ending_view(game_state) 和 day5_ending,避免每个结局各写一套结算。
script.rpy 的 start 现在是:
姓名 → 配点 → prologue(scene/say/menu)→ day1_loop
native_ready 自动测试入口保留;startup_test.rpy 补了序章的点击步骤,但没有实机运行。
4. 界面拆分与 VN 演出层
Alpha 的界面、HUD、弹窗集中在一个 screens.rpy 里。Beta 按代码规范拆成三个文件:
| 文件 | 行数 | 内容 |
|---|---|---|
screens.rpy | 379 | 基础样式、主菜单、配点、HUD、日常主界面、剧情弹窗、结局、存读档、设置 |
gameplay_screens.rpy | 95 | 日常与功能界面 |
vn_screens.rpy | 66 | say、choice、quick_menu、history(beta_hud 在 screens.rpy) |
拆分后单文件都控制在 400 行以内。screens.rpy 里的对话框固定在底部 1120×170,顶部是名字框,下面是对话;选项按钮、快捷菜单、历史记录和文字/音乐/音效设置也都接上了。设置里的进度条用 Solid 绘制,不依赖默认 GUI 图片。
options.rpy 改为 0.8.0-beta,音效和音乐开关打开,语音关闭(还没有语音素材);存档目录继续沿用 fzu-autumn-alpha-day2,这是为了兼容旧存档,不是忘记改。

开局页|Beta 0.8.0 网页验证入口。网页入口和 Ren'Py 共用核心,但这不是原生截图。
上图是网页验证入口的真实页面,不是 Ren'Py 原生截图。网页入口和 Ren'Py 共用 fqcore,所以状态、日期、资金和好感是同一套逻辑;原生界面文件已经写好,但本机没有 SDK,今天没有实机启动。

日常主界面|截图来自另一次验证运行,玩家名与开局页不同。
日常主界面显示第 1 天上午、生活费 ¥800、精力 3/3、B 好感 0;学习、运动、兼职、休息和课后家教的开放条件都由共享核心返回,不是前端自己判断。
五、包 B:schema v5、最终选择与四个结局
1. 为什么必须升到 v5
Alpha 的状态里只有一个 B 好感,第七天直接结束,ending_view 按 B 好感分档给结局。Beta 要加两样东西:
- A 线的三个 flag:
suspect_a、knows_a、a_trust; - 玩家在第七天做出的最终选择:
None / "b" / "a" / "alone"。
这两样都会进入存档,所以 SCHEMA_VERSION 从 4 升到 5。规则是“只加不改”:B 好感的语义不动,旧字段不改名,旧档通过 upgrade_state 迁移。
2. 状态一致性不是靠界面保证
validate_state 增加了三组检查:
flags必须是恰好三个布尔字段;final_choice只能是None、b、a、alone;events_completed里有final-choice,就必须有非空final_choice且finished=True;反过来,没有最终选择记录就不能有final_choice。
另外两条门禁写在核心:
- 选
b时,B 好感必须 ≥30; - 选
a时,必须同时满足knows_a和a_trust。
这样即使有人绕过界面直接调用接口,也不会写出“选了 B 但好感不够”或“选了 A 但根本不知道 A 是晚风”的非法状态。
3. 第七天的流程
next_day 在第七天不再直接 finished=True,而是把 pending_event 设为 final-choice。玩家选择后,choose_event 写入 final_choice,把 final-choice 加入完成记录,再置 finished=True。
在最终选择完成之前,日常行动、用餐、结束当天都会被锁住。测试覆盖了“未选择前不能结束”“选择 B 好感不足被拒”“选择 A 缺 flag 被拒”“独自始终可用”等路径。

最终选择|第七天日终。B 好感 60,B 可选;A 因缺少 knows_a + a_trust 禁用;独自始终可选。
上图是第七天日终的真实页面:B 好感 60,所以“走向 B”可选;A 选项因为本局没有完成 knows_a + a_trust,显示为禁用并给出原因;“独自看完最后一场演出”始终可选。
4. 四个结局
| 结局 ID | 条件 | 标题 |
|---|---|---|
E01_alone | final_choice = "alone" | 一个人的秋天 |
E03_b_normal | final_choice = "b" 且 30 ≤ B 好感 < 60 | 一起走过的秋天 |
E03_b_best | final_choice = "b" 且 B 好感 ≥60 | 秋日约定 |
E02_a | final_choice = "a" 且 knows_a、a_trust 都为真 | 晚风的回信 |
E01、E03 普通、E03 最佳是 Must 结局;E02 是 A 线的可选结局,只有完成 A 的身份揭示并选择信任时才开放。A 线仍然只用三个 flag,不新增 A 好感数值,避免在 Beta 第一天把范围扩大到正式攻略线。四个结局都有测试覆盖;界面截图只截了 E03 最佳,E01/E02 没有单独截图。

B 最佳结局|E03_b_best。状态持久化的是 final_choice;ending_id 由 ending_view() 计算返回。
上图是 B 好感 60、选择 B 后的最佳结局。页面同时显示跨周目档案:本局已经记为完成。状态里持久化的是 final_choice,ending_id 由 ending_view() 每次计算返回;跨周目档案只记录评级、天数、失窃、取餐和完成标记,不单独存结局 ID。
5. 今天最关键的一个修正:B 线可获得好感从 20 提高到 60
Alpha 的三条 B 线事件即使全选最优,合计也只有 10 + 4 + 6 = 20。但 Beta 的结局门槛是 30 和 60,这意味着:
- 按 Alpha 的数值,E03 普通结局不可达;
- E03 最佳结局也不可达;
- 只有“独自”结局是真实可达的。
这不是文案问题,是数值和分支设计对不上。今天把 B 线效果重新配平:
| 事件 | 选项 | B 好感 |
|---|---|---|
| 图书馆相遇 | 一起梳理课程笔记 | +25 |
| 外卖关心 | 谢谢提醒,我会注意 | +10 |
| 室友与晚风 | 转而聊起秋日合唱 | +5 |
| 秋日合唱邀约 | 好,一起去 | +20 |
| 合计 | 60 |
图书馆 +25 需要学识 ≥30;合计 60 是满足前置条件路线下的单周可达上限,不是无条件加成。
这样 30 和 60 两档都能在单周内真实到达,并且新增了可达性测试,不是只改数字。测试里会真的把 B 好感推到 60,再验证“普通”和“最佳”两个结局都能出现。
6. 旧 v4 存档怎么迁移
upgrade_state 支持 v1—v4 逐级迁移到 v5:
- 未完成的旧档:补默认
flags和final_choice=None; - 已完成的旧档:按 B 好感派生最终选择——≥30 记为
"b",否则记为"alone",并补一条final-choice完成记录; - 旧档没有 A 线信息,不会凭空获得
knows_a或a_trust。
测试不只调用 upgrade_state,而是走完整的存档信封:load_save → v5 → build_save → load_save,确认加载、保存、再加载都不会丢字段或报 KeyError。
7. 网页入口不需要第二套实现
server.py 的 reply_state 增加了 flags 和 final_choice 透传;网页端事件面板本来就按 event.options 通用渲染,所以最终选择不需要再写一套前端分支。
HTTP 集成测试 BetaHttpTests.test_http_final_choice_flow_and_ending 覆盖了 /api/next 返回 final-choice、/api/choice 返回结局和 ending_id 的完整路径。
六、包 C:资产管线与测试底座
1. 先定规范,再等素材
beta/docs/ASSET_SPEC.md 先写清楚命名、目录、尺寸、格式和音频响度:
- 背景
bg_01_library_day.webp,1920×1080,游戏内缩到 1280×720; - 立绘
sp_a_normal.webp,透明底; - CG
cg_01_library.webp,1920×1080; - BGM/SFX 使用
.ogg,44.1kHz,目标约 −16 LUFS。
同时建立 beta/game/images/{bg,sp,cg}/、beta/game/audio/{bgm,sfx,voice}/,放入 .gitkeep 和 manifest.json。清单目前是 25 个图片清单项 + 12 个音频清单项(对应占位文件尚未落盘):8 背景 + 12 立绘 + 5 CG,4 BGM + 8 SFX。
这里要特别说明:清单有 25+12 项,不等于正式文件已经存在。资产报告写的是“0/25、0/12 实际文件;占位尚未产出;0 个未登记文件”。检查通过的原因是清单、目录、images.rpy 声明彼此一致,而不是素材已经完成。
2. check_assets.py 能抓三类问题
beta/tools/check_assets.py 检查:
- 命名前缀、编号、扩展名、目录是否符合规范;
- 清单与
images.rpy声明是否一致,是否有缺失、多余、重名; - 有 Pillow 时检查尺寸和透明通道,没有 Pillow 时如实写“未检查尺寸”。
--self-test 会故意构造三类坏数据:缺文件、命名错、尺寸错。今天的结果是 3/3 类问题全部检出,说明检查脚本不是“永远返回通过”。
3. preflight.py 一键跑底座检查
beta/tools/preflight.py 把今天的检查串起来:
unittest discovercheck_assets.pycheck_docs.py- 静态检查:必需文件、
story/目录、四个结局 label、版本号、say/choice/quick_menu/history; - 原生 lint:有 SDK 才跑,没有就记
not_run; - release:有包才跑,没有就记
not_run。
报告写到 beta/artifacts/preflight_report.json。今天的结果是 退出码 0、overall pass、static 27/27;native:lint 和 release 明确是 not_run,不是通过。
4. 测试计划、代码规范和 Issue 基线
BETA_TEST_PLAN.md写了 6 层测试矩阵:剧本/分支、核心单元、原生、网页/HTTP、包内、人工;CODE_STYLE.md规定单.rpy≤400 行、剧本不写函数、状态变更统一入口;RUN_BETA.md写了 SDK 启动、lint、原生测试命令,以及没有 SDK 时怎么只跑 Python/网页入口;BETA_ISSUES.md建了 28 条 Issue 草稿,编号BETA-D1-01到BETA-D7-04,每条有目标、验收、预估人时和负责人空位;- 本地建了 4 个 Beta 特性分支(另有
master):feat/beta-engine、feat/beta-story、feat/beta-test、feat/beta-art;分支目前都指向当前 master 提交,Beta 代码尚未提交; beta/.gitattributes把 png/webp/ogg/jpg/jpeg 交给 Git LFS(本机 git-lfs 3.7.1)。

工程结构与资产汇总图|图里的“Ren'Py 8.5.3 语义”指目标脚本语义,不代表本机跑过 8.5.3 引擎。

Issue 与分支汇总图|28 条草稿、4 个 Beta 特性分支。远程仓库未配置,分支已建但 Beta 代码未提交。
这两张是数据汇总图,不是运行截图;数据来自仓库里的脚本行数、资产清单、Issue 文档和 git branch 输出。图下方的 Issue 页明确写了“远程仓库尚未配置:git remote -v 为空;本页只证明本地 Issue 草稿与分支就绪”。28 条是草稿,不是 28 个已经创建的远程 Issue。
从分工到证据,今天按任务包记录,不按个人写“已完成”:A/B/C 是软件包,D 是发布包;具体到人的认领、工时和签入,等 18:00 最终分工与真实提交后补。Day0 是准备日,不写成员心得,也不画没有数据的燃尽图。
七、今天实际跑了什么
| 验证层 | 实际执行结果 | 证据 |
|---|---|---|
| Python 单元/HTTP | 173 例通过,0 失败、0 错误,本次记录约 4 秒 | beta/artifacts/preflight_report.json |
| 其中:Beta 故事测试 | 32 例通过,0 失败、0 错误,本次记录约 0.7 秒(已含在 173 内) | beta/tests/test_beta_story.py 输出 |
| preflight | 退出码 0,overall pass | preflight_report.json |
| 静态检查 | 27/27 通过 | 同上 |
| 文档检查 | 5 个 Markdown、14 个本地链接通过 | preflight_report.json 的 docs |
| 资产检查 | 25 图片 + 12 音频清单项,0 errors / 0 warnings | beta/artifacts/assets_report.json |
| 资产自测 | 3/3 类问题检出 | check_assets.py --self-test |
| 最终选择 HTTP 流 | /api/next → /api/choice → ending 通过 | BetaHttpTests.test_http_final_choice_flow_and_ending |
| Ren'Py lint / 原生测试 | NOT RUN | 本机无 Ren'Py SDK |
| Windows 包 | 未构建、未实机 | release = not_run |
| 远程仓库 | 未配置 | git remote -v 为空 |

测试与预检汇总图|图中的 173 已包含 32 例故事测试,并排展示是为了看新增覆盖,不是 173 + 32 = 205 例。
上图是根据真实 JSON 报告生成的汇总图,不是终端窗口截图。图里专门把 native:lint 和 release 标成 NOT_RUN,避免读者把“preflight pass”误解成“原生和发行都通过了”。
复现命令:
cd beta
python -m unittest discover -s tests -v # 173 OK(含 32 例 Beta 故事测试)
python tests/test_beta_story.py # 32 OK(已含在上面的 173 内)
python tools/check_assets.py --self-test # PASS 3/3
python tools/preflight.py # exit 0;native/release not_run
python server.py --open-browser # 网页验证入口
这些数字证明的是指定脚本路径、状态约束和接口行为,不等同于:
- Ren'Py 原生实机点击;
- Windows 包内运行;
- 正式剧本、正式美术和完整八周的经济平衡;
- 五名成员的人工体验。
八、今天踩到的坑与修复
B 好感上限和结局门槛对不上。 Alpha 的三条 B 线事件即使全选最优,合计也只有 20,但 Beta 要 30/60 两档,普通和最佳结局实际不可达。今天重新配平到 60,并加真实可达性测试。这是今天最有价值的一次“测试发现设计问题”。
最终选择、完成记录和
finished必须三者一致。 如果只改final_choice不写final-choice记录,或者写了记录却没有结束状态,旧档和读档路径就会出现非法状态。现在由validate_state统一拒绝,界面和核心使用同一套门禁。旧档迁移不能靠“猜”。 v4 完成档没有最终选择字段,只能按 B 好感派生
b/alone;旧档没有 A 线信息,就不能凭空补knows_a/a_trust。迁移后还要走完整信封的加载→保存→再加载,确认不是只在内存里能看。界面文件按 400 行规范拆分。 拆成
screens.rpy(379 行)、gameplay_screens.rpy(95 行)、vn_screens.rpy(66 行);preflight的静态检查也从只搜一个文件改成搜game/*.rpy,否则拆完以后 say/choice/quick_menu/history 会漏检。角色设定和代码注释不一致。 检查时发现
characters.rpy的注释把“晚风”写成 B 的线上身份,序章也用了b_phone;共享核心的 A 线却明确是 A=晚风。今天统一为 A=晚风,改名为a_phone,并更新ASSET_SPEC、CODE_STYLE的示例。这个不一致不会让测试报错,但会让写剧本的人按错角色写台词,必须在接正式剧本前修掉。“占位”不能写成“素材完成”。 资产清单有 25 个图片条目和 12 个音频条目,但实际文件是 0。报告里明确写“占位尚未产出”,博客里也不能把清单数量当成正式素材数量。
九、没有完成的部分
今天交付的是 Beta 的软件底座,不是完整 Beta。以下项目没有完成,不能写成完成:
- Ren'Py lint / 原生测试:本机没有 Ren'Py SDK,
preflight记为not_run;startup_test.rpy的序章点击步骤“已写未跑”;没有原生界面截图,本文的网页界面图(01—04)来自网页验证入口,05—07 是数据汇总图,都不能冒充原生截图。 - Windows 包:没有构建,也没有实机启动;
release = not_run。 - 远程仓库与 Issue:
git remote -v为空,只有 4 个 Beta 特性分支(另有 master)和 28 条 Issue 草稿;分支已建但都指向当前 master 提交,Beta 代码尚未提交,本次整理时没有 commit、没有 push。如果博客需要 commit/Issue 链接,必须等团队真实提交推送后回填真实 hash/链接。 - 正式剧本与正式素材:序章是占位场景,25+12 是清单项,对应文件尚未落盘,风雨天没有外拍;正式故事圣经、事件表、立绘、CG、BGM 还没有接入。
- D 包其余材料:Alpha 问题总结、换组交接、意向表、18:00 最终分工仍由发布负责人处理。截至本文整理,未见两篇硬截止材料的已发布链接;如果确认未发布,应如实写成未完成。本文不把未发布材料写成已发布。
- 个人分工与心得:Day0 是准备日,本文按任务包记录,不写成员心得;个人分工以 18:00 最终分工和真实提交为准。
- 燃尽图:Beta Day0 不是正式七日冲刺日,今天没有新增燃尽图。等 Day1 按 Sprint Backlog 记录真实剩余人时后再画,不用一条没有数据支撑的曲线占位。
十、Day1 首件事
- 补原生验证:在有 Ren'Py 8.5.3 SDK 的机器上跑
renpy beta lint,然后跑native_startup、native_day6、native_day7;结果按实际写pass或not_run。 - 接正式故事圣经/事件表:把 S00 占位换成第一版正式台词,但不要改 v5 的字段名、事件 ID 和结局 ID。
- 补远程仓库:团队提供 URL 后推送本地分支,创建 28 个远程 Issue,补 Projects 看板和真实 commit 链接。
- 构建 Windows 包并实机测试:构建通过不等于运行通过,必须在解压后的包内复跑测试,并记录真实平台。
- 继续资产管线:等正式背景/立绘/CG 到位后,用
check_assets.py检查命名、尺寸和透明通道,再替换images.rpy的占位声明。 - D 包收口:发布 Alpha 问题总结和换组交接,回填 Beta 置顶合集;意向表和最终分工按团队实际记录归档。
十一、AI技术员工作情况
本轮给 AI 的输入是 alpha_day7 工程、Beta冲刺计划.md、11-14今日任务分工(4人+博主)、Beta 测试计划和前几篇 Alpha 日志。AI 协助完成:
- 读取 Alpha 的剧情、状态、存档和界面代码,设计并实现
beta/工程骨架、序章/结局 label 和 VN 界面拆分; - 实现 schema v5、A flags、
final_choice、四个结局和 v1—v4 迁移; - 新增 32 例 Beta 故事测试,把全量单元/HTTP 测试更新到 173 例;
- 写资产规范、清单、
check_assets.py、preflight.py、测试计划、代码规范和 28 条 Issue 草稿; - 生成 4 张网页验证入口截图(01—04)和 3 张数据汇总图(05—07),整理测试证据和交付包;
- 起草这篇日志。
AI 没有代替真实外拍、团队沟通、Ren'Py SDK lint、Windows 实机、远程仓库创建或成员独立开发。本文中的分工按任务包记录,不把 AI 协助产物写成成员个人独立签入;真实线上同步记录(如果有)、commit/Issue 链接、人工体验仍需团队补充。
这次比较有价值的协作方式,是让 AI 不只写“完成”,还要给出可复查的验证路径。例如“B 好感能到 60”不是改一个数字就结束,而是把三条 B 线事件的上限和四个结局、30/60 两档门槛、最终选择门禁和旧档迁移都写进测试。对没有条件验证的 lint、原生、Windows 和远程仓库,材料里明确保留 not_run 或“未配置”,不用测试数量替代边界。
十二、结语
风雨把外拍按下暂停键,但没有把工程按下暂停键。
Beta Day0 的交付不是一篇“全部完成”的宣言,而是一套能继续往前走的底座:能进入的 VN 骨架、能迁移的 v5 核心、能真实到达的四个结局、能检查的资产管线、能一键跑的 preflight,以及一份把 not_run 写清楚的证据。
下一步不是继续堆功能,而是先把原生 lint、Windows 实机、远程仓库和真实素材补上,再进入正式剧本与拍摄。先把能验证的验证掉,不能验证的写明白——这比在博客里写一个漂亮的“全部通过”更接近真实开发。
相关推荐
甘肃省武威市民勤县2017届中考英语冲刺练习试题一无答案
"儿童节"的英文是"Children's Day",专有名词首字母大写。
洛阳小升初英语冲刺词汇专项.doc
一般过去时:"They went to a farm on Christmas Day."描述过去发生的事情。12.
体育单招英语冲刺复习辅导与练习讲义一.doc
【体育单招英语冲刺复习辅导与练习讲义一】涵盖了英语语法中的重要概念——冠词的使用,这对于体育单招的英语复习至关重要。冠词在英语中起到区分特指和泛指的作用,对于准确表达意义有着不可忽视的影响。1.
K12 中考英语冲刺秘笈
在“K12 中考英语冲刺秘笈”中,我们主要关注的是初中英语语法的核心部分——一般现在时。这个时态用于表示习惯性、经常性的动作、状态,以及客观真理和普遍规律。以下是对这部分知识的详细说明:1.
2013高考英语 四月模块仿真冲刺精练1 词组短语
In no country ______ Britain can one experience four seasons in the course of a single day."


