开发日记:把专业选择做成一场可递归的 Galgame
2026-05-21
这个项目最开始其实很单纯。5.20 那天,神秘的选专业,突然看到群友说想看看这方面的galgame,心里一热,就想着干脆做个恶搞向的小 Demo 吧,本意只是图一乐。结果做着做着,剧情、图鉴、小游戏、联合事件一路往上叠,原本只是起哄的东西,最后竟然真的被我一点点磨成了一个能玩的系统。说实话,后面已经不太像“整活”了,更像我自己也跟着投入了些心血,,,
真正开始做的时候,我很快发现,单靠一条线性剧情并不够,用户会问的不是“哪个专业更好”,而是“我到底更适合怎样的工作方式”。所以这版的重点不是把内容堆满,而是把系统搭出来。
1. 先把数据结构站稳
第一步不是写剧情,而是把角色拆成独立模块。每个专业角色都放进 characters/*/profile.js,主脚本只负责通用逻辑。这样做的好处很直接:
- 角色文案可以单独改,不会互相污染。
- 新增路线时,只要补数据,不需要改一整坨流程代码。
- 后续无论加联合剧情、知识卡还是后日谈,都是往同一套数据模型里塞内容。
这一层的核心字段其实很朴素:profile、routes、game。但正是因为它够朴素,后面才能继续往上叠。
2. 把剧情引擎做成通用的
我没有给每条线单独写页面,而是做了一个统一的 render(routeId)。它负责:
- 更新主角聚焦
- 刷新对话文本
- 渲染小游戏
- 处理结局页画像
- 记录访问和解锁状态
这让整个项目看起来像很多内容,底层却只有一套流程。对 Galgame 来说,这种“内容很多,框架很少”的结构很重要,不然后期只会越改越乱。
3. 小游戏不是装饰,是理解方式的模拟
五个专业小游戏的思路都不同:
- 计科:二进制输入,强调编码和机器表达
- 电气:供能平衡,强调系统约束
- 自动化:路径控制,强调闭环
- 集成电路:版图布线,强调约束和连通
- 通信:链路配置,强调可靠性权衡
后来又补了跨专业联合小游戏,用轻量卡牌式权衡把“专业交叉”做成真的操作,而不是一句剧情台词。这个决定很关键,因为它把“联合”从文本层变成了系统层。
4. 状态不是分数,而是叙事材料
项目里不只存理性、热情、协作三项值,还额外维护了:
- 思维方式标签
- 犹豫值 / 后悔值
- 角色信赖
- 理解值
- 疲劳值
- 决策压力
这些值不是为了凑 RPG 数字,而是为了让最终推荐报告更像“你在怎样理解世界”,而不是“你总分多少”。
5. 我最在意的两个入口
图鉴
图鉴不是纯收藏页,而是把专业知识、测试、收藏、错题本和隐藏剧情串成一个反馈回路。知识卡答错后会进错题本,再答对会修复理解值,这样学习不是惩罚,而是新的剧情触发器。
进度
进度页最后变成了推荐报告中心:专业画像、工作方式契合、交叉探索 Top 3、知识漏洞地图、后日谈和多周目继承,都集中到这里。它像一个“系统解释器”,负责把玩家这一轮的行为翻译成可读结论。
6. 课程周模拟和多周目
后面我又把“探索”做成了课程周:
- 上午 / 下午 / 晚上三个时段
- 上课、实验、社团、自习、休息、请教
- 每种行动会影响疲劳、理解、压力、信赖和后悔
这一步的目标是让选择变成长期反馈,而不是点一下就结束。多周目继承也是同一个思路:保留知识、错题、图鉴和结局记录,重置周目状态,让第二轮、第三轮真的比第一轮更懂自己。
7. 这次最重要的收口
几个地方我后来都做了修正:
- 最终剧情不再要求“全收藏”,而是“全解锁 + 全测验”
- 顶栏按钮拆成玩法入口和系统入口,避免视觉上乱成一排
- 知识漏洞地图可以直接跳进角色辅导
- 辩论赛把“专业选择”变成了具体工程问题
这些改动看起来都不大,但它们共同在做一件事:让这个 Demo 从“看起来像游戏”变成“真的能玩出系统感”。
8. 下一步
还不知道有没有下一步(毕竟现在这个版本已经很完整了),看下学期的安排吧哎哎,这个项目虽然是个 Demo,但我自己也挺喜欢的,如果有机会的话,或许会继续完善它,甚至考虑做成一个正式的小游戏。总之,先把这个版本做好,再看看后续的发展吧!
想要玩的话在galgame,欢迎大家试试!
评论
欢迎友好交流,理性讨论