下载 App

《深渊寻金》【开发者日志】第五篇

10/1610 浏览

【开发者日志】第五篇:地牢开始记住你了

大家好,我们是新人团队 EmbersStudio,第五篇开发者日志来了[表情_可爱]
这一期我们没加新怪,也没堆一堆新特效,而是给地牢装了个“小账本”——每局结束之后,它会留下一条记录
当然,我们还在其他地方做了优化[表情_星星眼]

本期进展

近几天我们在做 Plan_5。上一期把游戏往「好看、好懂、好爽」的方向推,这一期给它加的是记忆:每局结束之后,地牢会留下一条记录,其作为存档记录的内容[表情_送花]后续会将存档记录内容的UI做完

涌现日志

打完一局,不管是通关还是死掉,游戏都会自动生成一份涌现日志:最长连锁、平均连锁、规则总触发次数、触发最多的三张牌、本局发现的未预设组合、系统给这套牌自动起的 Build 名,再配一句叙事碎片[表情_佛了]
实跑的一局长这样:
json
{ "result": "victory", "floor_reached": 3, "duration_seconds": 303.9, "max_chain": 20, "average_chain": 9.14, "total_rule_triggers": 600, "top_rules": [ { "id": "bullet_echo", "name": "子弹回响", "count": 290 }, { "id": "gold_barrage", "name": "金币弹幕", "count": 113 }, { "id": "crit_bounty", "name": "暴击赏金", "count": 102 } ], "discovered_combos": 0, "build_name": "战斗流", "narrative_snippet": "本局涌现模式:战斗流,峰值 20 段。它已经在等下一次了。" }
这一局最长连锁到了 20 段,平均每段能连 9.1 次,规则一共真的执行了 600 次动作。三个数字放在一起,才看得出来这局有多疯——我们自己平时玩的时候,还以为连锁十几段就到顶了[表情_流口水]

未预设组合:终于有了能验的判据

Day 3 到 Day 6 那一期,我们纠结过「涌现到底发生了没有」,当时只能靠自举闭环和批量仿真旁敲侧击。这一期总算给了直接判据,四条必须同时满足:
#判据为什么必须有
1两张牌在 2 秒窗口内交替触发 ≥3 次只触发一次不算「转起来」
2这一对牌不完全落在任何一条预设组合里否则我们只是在检测自己的白名单
3本局真实执行深度 ≥8(上限 12)排除「碰巧交替」的浅连锁
4这一对牌不完全落在事前登记的预期清单里这条最容易被忽略,下面单独说
就拿第 4 条来说。只有前三条的时候,检测器测的其实是「不等于那 4 条预设白名单」——而 Plan_6 内部测试要用的经济流、弹幕流、治疗流都在这 4 条之外,可它们明明是我们自己设计的。所以我们补了一份预期清单:把「我知道但我没写进预设列表」的组合也登记进去,命中了就不算发现
数据源也换了个口径:只认真实执行(每次动作真的执行才算一次),不认屏幕上那个连锁数字。因为那个数字包含被闸门拦下的触发,拿它当证据会给出假信号——这一点 Day 3 到 Day 6 已经在仿真里栽过一次

Build 自动命名

一局结束,系统按触发最多的两张牌给这套牌起个名字。规划里给了一条公式(「A 的标签 + B 的标签 + 流派后缀」)和一张示例表(「暴击金币弹幕流」)。我们照着做的时候发现两者对不上——暴击赏金 的标签是「经济」,金币弹幕 是「战斗」,按公式只会得到「经济战斗流」
最后取了个折中:示例表优先,公式兜底,两个都产不出名字就老实写「未命名 Build」

存档与叙事

存档落在本地 save.json:图鉴解锁、最高记录(最高连锁 / 最高层数 / 总局数 / 总击杀)和最近 20 份涌现日志
写入用的是「先写临时文件、再删旧的、改名过去」——直接往正式文件里写,写一半断电会留下一份截断的 JSON,整份存档就废了;万一程序死在替换那一步,下次启动还能从临时文件把内容捞回来
叙事碎片分五档:房间墙上的文字、结算片段、死亡旁白、通关旁白、层间加载提示。文案全部集中在一个 JSON 里,同一局内不重复,不看也不影响玩法
墙上文字是 12 像素低对比的小字,放在普通房里的随机位置——Boss 房不放,那里已经有 Boss 血条在抢注意力了[表情_酷]

问题与风险

同一把尺子,几局量出三个数

原本规划里写得很清楚:「单局 0–3 个未预设组合。0 个说明触发深度不够,≥5 个说明判定过松」
照这套判据反复跑了六局(同一颗种子、同一套脚手架),拿到的是 0 个、3 个、9 个
六局里差别只在驱动脚本的时序——时序一动,中途抽到的牌就不一样,这个数就跟着跳。换句话说,它现在测的其实是「这一局恰好抽到了什么牌」,而不是一个稳定的性质
抛开随机性,结构上的问题是清楚的:
  1. 门槛在一局的执行密度面前太低了。 2 秒窗口 + 交替 3 次,在一局 600 次左右的真实执行里几乎随手就能撞到
  2. 判据只判「两张牌」。 一副六张牌的构筑有 15 个两两组合,一局下来命中几对几乎是必然。我们检测的是「两张牌有没有一起转过」,不是「一套牌有没有变成新东西」
所以这一段要在 Plan_6 收紧,能动的旋钮有三个:把交替次数抬到 4–5、把窗口缩到 1–1.5 秒、或者要求同一对组合在本局内重复命中多次
我们暂时没改,因为阈值一改,「涌现到底发生了没有」这个结论就跟着变。而且现在这个 0 / 3 / 9 的散布本身就是一条证据:在把尺子校准之前,我们调的其实不是机制,是噪音

组合 ID 里的链长档位是空转的

规划里给组合 ID 设计了一个链长档位后缀(@chain{深度向下取整到 5 的倍数}),本意是区分「同一个组合在不同强度下的表现」
实测攒下来的组合 ID,全部是 @chain10——因为真实执行深度的上限就是 12,档位只可能是 10。这一维完全没有区分度,要么改档位步长,要么换成「发现时的实际深度」

两个「一局时长」口径不一样

涌现日志里记的是游戏内计时(暂停、选牌、层间过渡都不走表),自测报告按帧数算
同一局在两个口径下能差出上百秒——早前带新手引导的一局里,两种口径差了 188 秒,因为引导那段阻塞窗口走的是挂钟时间
做平衡分析的时候必须确定是用哪个,不然「一局到底几分钟」这个就存疑了

图鉴这一期只留了接口

图鉴(规则牌 / 敌人 / 组合三层的解锁与展示)这一期没有实现,只留下了一份接口
这是我们主动砍的:先把日志和存档做实,图鉴是纯展示层,砍掉它对玩法零影响,接回来也不用改调用方
代价是「死亡不丢图鉴」这条验收目前只能算部分通过——组合那一层确实在往存档里写(几局累计落了 3 条),规则牌和敌人两层还没有生产者,结算界面上也就没有「图鉴解锁」的提示

自测会写真实存档

这一期新引入的小麻烦:三套整局自测都会真的打完一局,于是它们会把 save.json 里的记录和日志刷新一遍——跑一次自测就多一条通关记录
存档路径是可配的,但主场景目前固定用默认路径。下一步要给主场景加一个测试用的路径开关

下期计划

  • 技能牌继续扩:牌池往上加,重点让多张牌抢同一个触发事件,调序才会真的改变结局
  • 敌人继续扩增:增加更多敌人,丰富关卡内容,同时不同机制让游戏更丰富[表情_酷]
  • 层间补给:清完普通房目前只有三选一技能,下一段会让层间也能换别的,并且花得上金币
  • 结算计分:把整局表现折算成一个分数,让「这局打得怎么样」一眼能看懂,明确游戏的目标
  • 一局时长与视听:把一局往 10–15 分钟推,同时继续补美术素材与音效
  • 当然,还有各种 Bug 的修复[表情_吐舌头]

开发过程截图

TapTap
图 1:通关结算界面。 一次通关结束后的完整结算:到达层数、最长连锁、触发最多的规则牌、本局用时、Build 名称、涌现日志摘要、叙事碎片,最后是按钮
TapTap
图 2:层间过渡结算。 只有标题、层数、最长连锁、触发最多的牌和用时,Build 与日志两块都隐藏。用来和上面那张对比,说明不是每层都铺满信息。这个后续还会调整[表情_微笑]
TapTap
图 3:房间墙上的文字。 上半张是放大后的原文,下半张是它在房间里的实际样子。12 像素低对比的小字,摆在普通房的随机位置,扫一眼很容易略过去[表情_嫌弃]
文本 4:save.json 的内容(文本)。 展示 records 与一份 run_log,可以看到日志确实落盘了,而不是只在结算界面飘一下:
json
{ "records": { "max_chain": 25, "max_floor": 3, "total_runs": 6, "total_kills": 474 }, "run_logs": [ { "run_id": "2026-10-14_05-12-49", "result": "victory", "duration_seconds": 303.9, "max_chain": 20, "total_rule_triggers": 600, "build_name": "战斗流", "discovered_combos": 0 } ] }
文本 5:某一次跑出来的未预设组合 ID(文本):
text
chain_overload+crit_bounty@chain10 bullet_echo+chain_overload@chain10 chain_overload+gold_barrage@chain10
图 1 还录了一小段(日志5_通关录像.mp4,约 66 秒):第 3 层最后一个房间开始,一路打到通关,最后是结算面板。想直接看结论的话,视频最后 10 秒就是那张结算界面。

杂谈

游戏名在上期定了:《深渊寻金》,英文 Abyss Rush。这两个月它的代号一直是 RogueDungeon,这也一直是项目文件名称[表情_吃瓜]
另外说件我觉得挺有意思的事。涌现日志里那个 Build 名字是系统自己拼的,我们一个字没写。同一套机制,它给出过「经济爆发流」这种听着挺唬人的名字,也给出过「战斗流」这种朴素的。我个人更待见朴素的那种,至少我一眼能看懂它想说什么[表情_流口水]
最后一个小插曲。墙上那行字我们定的是 12 像素、低对比,扫一眼基本会略过。结果自己做回归的时候,我盯着屏幕找了半天才想起来它在哪[表情_豹哭]这大概说明它确实够低调了
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合截图
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合
大家好,我是一个人报名了 2026 聚光灯 21 天游戏创作挑战 的独立开发者。今年主题公布那一刻我就笑出了声——涌现。因为我已经想做这个游戏很久了: 《气味之城》:你不是猫神,你只是一只猫。 先说一个所有养猫人都懂的事实:你永远无法"教会"一只猫任何它自己不想学会的事。但你家猫可能自己学会了——听见冰箱开门就瞬移到厨房;你心情不好时过来踩奶;凌晨三点准时在你身上练马拉松。没人教过它,这些行为是它
3 赞
4 回复
00:34
《荒原复苏指南》开发日志④:关卡演示堂堂袭来!!截图
《荒原复苏指南》开发日志④:关卡演示堂堂袭来!!
- 人类曾因掌握元素合成技术而一度辉煌,又因滥用元素能量而逐渐从内里衰败。 - 30世纪80年代。社会文化充斥着激进乐观主义与庞大机械美学,在这里,污染和能源共生,幸福与痛苦并存。官方广播和宣传画里依旧在宣扬“科学将战胜一切”、“元素能量将再造新农田”的口号,而世界主城却已经因为污染过度而濒临崩溃、空间挤压严重。为了寻找新的生存空间与无污染能源,官方启动了“重构拓荒计划”。 - 玩家将作为前线拓展
17 赞
5 回复
《卡牌工业》开发日志 01|从“涌现”到产线对打截图
《卡牌工业》开发日志 01|从“涌现”到产线对打
大家好,我们正在用 Godot 做一个暂名《卡牌工业》的游戏。目前已经跑通了最小的生产与战斗循环,也做了两轮迭代。这篇先记录一下:面对“涌现”这个题目,我们讨论过什么,又为什么最后收敛到卡牌和工厂。 第一步:头脑风暴,涌现可以是什么? 刚看到“涌现”这个题目时,我们的想法几乎朝每个方向散开了。塔防、物理搭建、探索、解谜、经济系统、叙事,甚至增量游戏,都能让简单规则在玩家的操作中长出新的结果。再想下
00:11
【开发者日志】第三篇截图
【开发者日志】第三篇
【开发者日志】第三篇:把无限地图拆回三层房间 #聚光灯gamejam开发者日志 大家好,我们是新人团队 EmbersStudio,第三篇开发者日志来了[表情_酷] 本期进展 Day 6 到 Day 9,我们在做 Plan_3。简单说,就是把一张无限延伸的网格地图,拆成了有边界、有层数的房间。听起来像装修,其实就是装修 现在的结构是:每层 3 个普通房 + 1 个 Boss 房,一共 3 层,也就是
2 赞
【2026聚光灯日志01】什么叫你把手牌,骰子和战棋融合了?截图
【2026聚光灯日志01】什么叫你把手牌,骰子和战棋融合了?
大家好啊,我是官方小编,一位还在学校的独自开发的苦逼带学生 这次算是第二次正式参加GameJam,而这回的比赛主题是【涌现】 嗯…老实说,一开始我还真只是从中文语义上来看,理解成“大量的出现”,直到询问ai哦哦哦我这就才想起来还有英文的“整体大于部分之和”意思来着 说起这个主题的意思,立马想起的类 吸血鬼幸存者 ,或者是 文明 系列的各种爆怪,爆兵的设计,即大量的出现敌人或者单位 而从第二个
4 赞
4 回复
开发者日志 ③ · 兔子会跑了,然后我重写了整个美术管线截图
开发者日志 ③ · 兔子会跑了,然后我重写了整个美术管线
戏:《涌现之野》| 单人 · TapTap 制造 · 目标双端(PC + Android) 覆盖区间:10.08 – 10.12(开发第 7–11 天)| 版本 1.0.22 → 1.0.53 【聚光灯 21 天】Day 7–11 —— 一只兔子,让我把美术路线推倒重来 上一期写到兔子第一次在真机上"活"过来,但那是用程序化绘图硬画出来的。这一期开头,我就把这整条路线推翻了。 原因不复杂:造型、朝
00:10
群迹·上取其下,下取其上截图
群迹·上取其下,下取其上
#聚光灯gamejam开发者日志 向大家汇报一下今日进度,目前在和蚁群的默认移动算法进行斗智斗勇。或许是我的AI对蚂蚁有别样的理解,其实最初写出的方案更接近于围绕着恒星公转的行星。 哦我还以为文章里可以插入多支视频视频,想要展示一些其它的运动方式,可惜了。那么就简单在上方传一个比较典型的,有点类似于蟑螂的运行方式。 目前仍在解决蚁群的随机运动,和玩家可操纵性之间的平衡问题。以及如各位所见,目前的
3 赞
1 回复
00:07
雨天決行 开发者日志02-人工智能的自我修养截图
雨天決行 开发者日志02-人工智能的自我修养
又和大家见面啦!第二篇日志,说实话一开始不知道该怎么编排,但团队里惊喜的成果越来越多,我们已经迫不及待把更新的内容端上来给大家啦!那么事不宜迟,快来看看都有什么新情报吧ദ്ദി˶ー̀֊ー́ )✧ 一.美术(重磅升级) 以主美小为的生命力作为燃料(bushi)本次美术组取得了大进程!首先是各个ui界面的优化和细化,上次大家看到时还只是初具雏形的草稿,现在大多都完整起来了哦! 同时,随着配色的补全,手
43 赞
36 回复
00:30
《失心》游戏开发者日志01|游戏UI迭代及实机演示截图
《失心》游戏开发者日志01|游戏UI迭代及实机演示
进入《失心》之前,玩家首先看到的是我们工作室 UNLOOK 的标识。我们将原来的标识转成 SVG,并让其中的红色瞳点转动、观察,再逐步显露完整字形,希望这个短暂的开场能带出一点好奇和不安。 这次《失心》的开局 UI,我们围绕小灵通(因为游戏的主要交互道具就是小灵通)做了几轮调整,希望玩家从打开游戏开始,就能感受到故事里的年代和气氛(故事年代背景为2000s)。 早期版本先确定了一个方向:把菜单放进
14 赞
10 回复
03:14
开发日志#1:展示玩法特色的开场截图
开发日志#1:展示玩法特色的开场
#聚光灯gamejam开发者日志 绩点卷了科研做了SCI发了顶九Offer拿了但是保研被学院做局后,晚上一直睡不着觉想到的【玩法雏形】。 开题看到『涌现』主题时发现很契合,决定围绕主题把它正式做出来。 目前大家会反应本作特色来得有点晚,所以做了一个像黑猴一样的展示游戏特色的开头。 TO DO:优化新手引导流程,优化过剧情UI等体验,完成Boss战设计
3 赞
8 回复