下载 App

开发者日志 ② ·《涌现之野》

7 小时前
horizontal linehorizontal line
【聚光灯 21 天】Day 2–5:石矛学会了刷自己,兔子学会了生兔子,而我学会了说"不行,重做"
四天没写日志,是因为这四天一直在跟自己做出来的东西打架。挑几个还值得说的讲。
horizontal linehorizontal line
先说合成,这是 Day 2。
我没用传统的配方表("2 木 + 1 石 = 石斧"),做成标签槽:木头同时是"坚硬""长杆""易燃",配方只声明"我要坚硬 + 锋利 + 长杆 + 绑缚",谁来填都行。
分配上有个坑:一个材料能顶好几个槽,按顺序贪心分的话,木头先占了易燃槽,长杆就没料了,火把永远做不出来。所以用了二分图最大匹配——说人话就是允许反悔、允许重新分配,只要背包里存在一组合法解就一定找得到。
然后翻车了。交付前我用 Python 推演了 12 个背包场景,全过。自己上手一玩:石矛可以"吃自己",无限刷。火把配方里"长杆"那一槽填的居然是石矛。
原因是我自己加的一个"看起来很合理"的扩展——我让合成产物也能当材料(当时的想法是绷带=binding,可以再拿去填槽)。问题是产物自带标签,一旦被当输入,什么槽都能填。
修法不是把石矛单独排除,而是把输入收紧到原始材料白名单。
两个教训:规则引擎里"输入"和"输出"的边界必须用类型划死,不能靠字段名自觉;我那 12 个推演场景全都从"干净的背包"出发,没有一个包含"上一轮的产物还在包里"——恰好漏掉了唯一的真 bug。
TapTap
horizontal linehorizontal line
Day 3 做生物,这是四天里我最想讲的一段。
跳兔和苔羊,决策优先级是恐惧 > 饥饿 > 繁殖,每 5 秒决策一次。跳兔跑得快、警觉 8 米、吃纤维;苔羊慢、爱往水边凑、10 米内聚群。地图上有两个巢,3 只加 2 只。
跑起来 30 秒后,两个巢各自自动补了 1 只。我没写任何脚本、没触发任何事件——它们自己吃饱了、够安全、达到繁殖阈值,然后就生了。
盯着屏幕那一下,我有点起鸡皮疙瘩。这大概就是我理解的"涌现":你只写了每个个体该干什么,群体自己长出了一件你没安排的事。
TapTap
昼夜和存档也是这天做的。一天 32 分钟,温度走 12→22→12→-8→12℃ 的曲线。沙箱里跑不了 lua,这些数只能手算:夜里离火,体温 0.054℃/s 往下掉,37 到 32 大约 93 秒。
存档走四步链:写临时文件并落盘 → 旧档复制成 .bak → 删旧档 → 改名。任何一步崩,正式档要么是完整的旧值要么是完整的新值,.bak 兜住中间那道缝。
TapTap
horizontal linehorizontal line
Day 4 画海滩,顺手给自己做了个 4 倍速按钮。
地形没用横带(上水下沙),做成以营地为心的同心环带:站营地是干沙,往任何方向走出去都是海滩。这样 13 个采集点和两个巢天然落在沙面上。
分界线是噪声曲线,有个坑:角频率必须取整数。取非整数的话,曲线在 -x 轴首尾对不上,会留一条笔直的接缝,一眼假。
荧光我画了两遍,不是一遍。画一遍的话夜里会被暗罩压没;直接画在暗罩之后,白天又会凭空发亮。所以拆成白天一遍(低透明小点)+ 夜晚一遍(加色混合,强度随夜色加深)。原本每颗荧光点建一次径向渐变,安卓上每帧几百次太贵,改成三个同心圆叠出来,视觉差不多,零对象创建。
一昼夜 32 分钟,要验收"入夜之后会怎样",真等太浪费时间,所以做了 ×1/×1.5/×2/×4 四档。
这里有个不做就会翻车的细节:光把 dt 乘上倍速是不够的。×4 之后单帧要消化的模拟时间变成 4 倍,但补偿预算还是原来 5 步,必然被截断——截断就是跳帧,正是验收明令禁止的。预算也得跟着放大。
最后记一个我没擅自改的地方。任务卡上写"×4 约 3 分钟跑完一昼夜",我一算是 8 分钟。3 分钟对应的其实是夜段。我没有改代码去凑那个数字,而是按 8 分钟写验收——想要 3 分钟一昼夜,该调的是昼夜周期,不是倍速上限。
TapTap
horizontal linehorizontal line
Day 5 一整天,基本都在跟一只兔子较劲。
上午出三个角色的定版设计稿:跳兔一次就过了;苔羊被打回("不像羊");DR-7 也被打回("太像机器人,要人形剪影加机器特征")。
跳兔进游戏,我用 6 个基元拼出来:横椭圆身体、小圆头、两只长耳、水滴后腿、黑眼睛、浅色腹。然后第一次打回:90° 正俯视不行。
这视角数学上最"正确"——贴地投影,没有透视歧义。但读感全错:兔耳竖着,投影下来糊在身上;两只眼睛对称摆在天灵盖上,像外星人;侧身轮廓完全没了。我盯着截图看了半天,得出结论:像一只蛞蝓,或者蝌蚪。
改成 60–65° 高俯角 3/4,全项目统一。朝向也不再是整图旋转(那样会把立起的耳朵转到地上、腿横向滑行),拆成水平翻面、横向压缩、头部升降三件事。兔子往上跑会"收窄",但它还是只兔子。
第二次打回:几何剪贴画不行。我这才想明白——设计稿上的"基元拆解"是给人看的沟通语言,不是渲染指令。同色的几个椭圆拼一起,在这种扁平画风里必然露缝。
最终版:拿设计稿里"完整形态"那张软质小兔当唯一基准,用一条闭合贝塞尔把外轮廓一次画出来,内部体积靠渐变和径向软块叠。碎斑按每只兔子的 id 做种子生成一次并缓存,跨帧不闪。
中间还出了个让我后背发凉的事故。为了截图能确定性摆拍,我加了个"导演通道"——结果定义了,忘记调用,两张不同状态的截图哈希完全相同。文件存在、退出码 0,但导演根本没生效。所以流程改成:定义和调用一次插入,grep 双命中确认,看到 [director] 日志才算数。
这天还立了两条规矩:设计定版权在我,Maker 不许自己定稿;游戏内截图过我这关才算定版,设计稿不算。这大概就是一个人参加 GameJam 的真实状态——你得同时当导演、美术总监和那个说"不行,重做"的人。
TapTap
TapTap
horizontal linehorizontal line

本期进展(10/4 – 10/7)

  • 合成系统:标签槽 + 二分图最大匹配,产物不进候选
  • 元素矩阵:火蔓延、水灭火+蒸汽、电击水面麻痹、营火取暖与恐惧源;火把燃料池(熄灭暂停、燃尽销毁)
  • 生物:跳兔 / 苔羊,三驱动(恐惧 > 饥饿 > 繁殖),两巢运行时自动补员已实证
  • 昼夜:32 分钟一天,温度曲线 12→22→12→-8→12℃,光照 1.0↔0.35
  • 存档:原子写 + .bak 回退 + 3 手动槽 + 自动存 + 切后台即存
  • 海滩地形:同心三带 + 噪声曲线分界 + 浪线 + 夜光荧光,全程序化、零外部贴图;8 色色板支持 F5 热更
  • 全局倍速工具 ×1/×1.5/×2/×4,补偿预算同步放大不跳帧,×N 钮避让悬浮胶囊
  • 角色:跳兔定版并落地(三轮造型返工);苔羊 v3 定版;全项目确立 60–65° 高俯角视角约定;配色 / 形变 / 造型细节三层配置分离
  • 版本 1.0.7 → 1.0.21,十五次交付构建全绿

问题与风险

  • 推演验证的盲区:12 个场景全从"干净背包"出发,漏掉唯一的真 bug(产物污染配方)
  • Lua 运算符优先级 bug 一次,整块重写不硬补
  • 导演通道定义了忘调用,两张截图哈希相同;已固化为"定义+调用一次插入 + grep 双命中 + 日志实证"
  • 后几卡交付时预览 runtime 未拉起,运行期行为靠构建 + 静态检查兜底,需真机核验
  • 沙箱无安卓真机,胶囊避让只能靠日志 capsule-safe top= 自证
  • 角色造型是最大时间黑洞,一天基本只推了一只兔子;苔羊、DR-7 仍冻结,火 / 烟粒子顺延
  • 待策划拍板:地形环带 vs 横带、"3 分钟一昼夜"口径、夜间 -8℃ 的绝对值解释及其副作用(白天靠火积热)、提交前关闭两个 debug 开关
  • 已登记两处 UI 清污:toast 与键位提示行重叠、安卓键位提示行与右侧按钮簇重叠

下期计划

  • 跳兔定版确认后,按 3/4 规则复刻苔羊、DR-7
  • 火 / 烟粒子
  • 双端实机闸门测试继续推进
  • 10/18 前完成上传,体量可能还要再砍
#聚光灯gamejam开发者日志 #TapTap制造
开发者日志 ⑤ · 世界定稿、游戏提审,以及用参考图让 AI 做 UI截图
开发者日志 ⑤ · 世界定稿、游戏提审,以及用参考图让 AI 做 UI
游戏:《涌现之野》| 单人 · TapTap 制造 · 双端(PC /H5 分享即玩) 覆盖区间:10.16 – 10.20(开发第 15–19 天)| 版本 1.0.94 → 1.0.185 【聚光灯 21 天】Day 15–19 —— 世界定稿、游戏提审,以及用参考图让 AI 做整套 UI 上一期把第三张地图(菌林 + 霜脊)的代码线收了尾。这一期开头,我把整个世界重做了一遍,接着把游戏第一次
开发者日志 ③ · 兔子会跑了,然后我重写了整个美术管线截图
开发者日志 ③ · 兔子会跑了,然后我重写了整个美术管线
戏:《涌现之野》| 单人 · TapTap 制造 · 目标双端(PC + Android) 覆盖区间:10.08 – 10.12(开发第 7–11 天)| 版本 1.0.22 → 1.0.53 【聚光灯 21 天】Day 7–11 —— 一只兔子,让我把美术路线推倒重来 上一期写到兔子第一次在真机上"活"过来,但那是用程序化绘图硬画出来的。这一期开头,我就把这整条路线推翻了。 原因不复杂:造型、朝
开发者日志 ④ · 把世界扩成八环,再把菌林和霜脊的生态接进去截图
开发者日志 ④ · 把世界扩成八环,再把菌林和霜脊的生态接进去
游戏:《涌现之野》| 单人 · TapTap 制造 · 目标双端(PC + HTML) 覆盖区间:10.13 – 10.15(开发第 12–14 天)| 版本 1.0.63 → 1.0.91 【聚光灯 21 天】Day 12–14 —— 把世界扩成八环,再把菌林和霜脊的生态接进去 上一期收尾时,第二张地图(湿地 + 烬野)的系统刚跑通。这一期开头,我先把"世界"本身做大,再一口气把第三张地图(菌林
00:34
《荒原复苏指南》开发日志④:关卡演示堂堂袭来!!截图
《荒原复苏指南》开发日志④:关卡演示堂堂袭来!!
- 人类曾因掌握元素合成技术而一度辉煌,又因滥用元素能量而逐渐从内里衰败。 - 30世纪80年代。社会文化充斥着激进乐观主义与庞大机械美学,在这里,污染和能源共生,幸福与痛苦并存。官方广播和宣传画里依旧在宣扬“科学将战胜一切”、“元素能量将再造新农田”的口号,而世界主城却已经因为污染过度而濒临崩溃、空间挤压严重。为了寻找新的生存空间与无污染能源,官方启动了“重构拓荒计划”。 - 玩家将作为前线拓展
17 赞
5 回复
《卡牌工业》开发日志 01|从“涌现”到产线对打截图
《卡牌工业》开发日志 01|从“涌现”到产线对打
大家好,我们正在用 Godot 做一个暂名《卡牌工业》的游戏。目前已经跑通了最小的生产与战斗循环,也做了两轮迭代。这篇先记录一下:面对“涌现”这个题目,我们讨论过什么,又为什么最后收敛到卡牌和工厂。 第一步:头脑风暴,涌现可以是什么? 刚看到“涌现”这个题目时,我们的想法几乎朝每个方向散开了。塔防、物理搭建、探索、解谜、经济系统、叙事,甚至增量游戏,都能让简单规则在玩家的操作中长出新的结果。再想下
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合截图
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合
大家好,我是一个人报名了 2026 聚光灯 21 天游戏创作挑战 的独立开发者。今年主题公布那一刻我就笑出了声——涌现。因为我已经想做这个游戏很久了: 《气味之城》:你不是猫神,你只是一只猫。 先说一个所有养猫人都懂的事实:你永远无法"教会"一只猫任何它自己不想学会的事。但你家猫可能自己学会了——听见冰箱开门就瞬移到厨房;你心情不好时过来踩奶;凌晨三点准时在你身上练马拉松。没人教过它,这些行为是它
3 赞
4 回复
******工作室:我们的开发日志#5 《转人工》完整版现已上线~截图
******工作室:我们的开发日志#5 《转人工》完整版现已上线~
拿到“涌现”这个主题时,我们首先想的是:怎样才能把它做成一种玩家可以亲手体验的玩法? 我是计算机专业出身,第一个想到的,自然是大语言模型中智能的 涌现。围绕这个方向,我们讨论了很多想法,也花了十天时间做出初版。但很可惜,受限于剩余的开发时间,那套方案最终还是被放弃了。带着一点不甘心,我们重新回到主题本身,寻找一个更具体、也更容易被感受到的切入点。 这一次,我们想到了文字。 单独写下一个“a”,再写
4 赞
游戏正式上线 在漫天风沙中,种出一片绿洲截图
游戏正式上线 在漫天风沙中,种出一片绿洲
经过 21 天极限开发的“爆肝”冲刺,我们的聚光灯参赛作品《林间接力》终于顺利打包,正式提交啦!🎉 这是一款什么样的游戏? 一句话概括:在荒漠中种树,看着简单的规则如何“涌现”出一整片生态。 你是一名防护林建造员,面对漫天黄沙,你要做的不仅是种下树苗,还要在风沙、水源和生存的压力下,守护它们长大。当树木连成一片,风沙减弱,草地、溪流甚至小动物都会自然而然地回到这片土地。 💡 核心特色: · 真实的
2 赞
今日食客 开发者日志#5截图
今日食客 开发者日志#5
游戏已经大体完成。完成了满意的标题演出,加了音效,音乐。修复了一些问题。 整体流程已经完成,如果还有时间打算加入新手教程关,没有时间就显示文字教程。 接下来计划: 1.继续测试 2.数值调整 3.ui调整 4.加入游戏提示 #聚光灯gamejam开发者日志
1 赞
00:10
群迹·上取其下,下取其上截图
群迹·上取其下,下取其上
#聚光灯gamejam开发者日志 向大家汇报一下今日进度,目前在和蚁群的默认移动算法进行斗智斗勇。或许是我的AI对蚂蚁有别样的理解,其实最初写出的方案更接近于围绕着恒星公转的行星。 哦我还以为文章里可以插入多支视频视频,想要展示一些其它的运动方式,可惜了。那么就简单在上方传一个比较典型的,有点类似于蟑螂的运行方式。 目前仍在解决蚁群的随机运动,和玩家可操纵性之间的平衡问题。以及如各位所见,目前的
3 赞
1 回复