下载 App

开发日志 01|怎样设计“一念”引发的连锁变化

10/177 浏览
《一念万物》的核心循环是“观察 → 一念 → 涌现”。玩家挪动一件东西,世界随后自己发生变化。把这个想法落成可玩的关卡,首先需要回答一个问题:玩家怎样看出,眼前的变化确实来自刚才那一下操作?
第一关“水中石”是一个具体例子。开场时,石头挡在溪里,下游池塘水浅。玩家把石头拖到岸边,溪流恢复,水逐渐进入池塘,鱼有了足够的水,周围植物也受到湿度变化的影响。这里没有一个“移走石头后播放通关动画”的专属脚本。石头是否阻水、溪是否流动、池塘怎样涨水、鱼是否安全,分别由世界规则计算。
TapTap
图 1|2026-10-12 当前版本实机截图。开场石头位于上游,浅水池与下游溪形成需要恢复的水路。

让过程能被看见

一条因果链如果变化太快,玩家就只会看到操作前后的两幅图,很难读出中间发生了什么。第一关后续调整了水的节奏:溪流数据设置 front_speed 为 45 设计像素每秒,flow_rate 为 0.18,池塘的 fill_rate 为 0.06。水头推进、流量变化和池塘涨水分别控制,水从上游向下游走,不会一解除阻挡就瞬间铺满整条溪。
这几个参数的分工很有用。水头决定“水走到哪里了”,流量和水位速率决定“水来了之后积累得多快”。如果只把池塘涨水放慢,上游水路仍会突然出现;如果只放慢水头,池塘也可能在接通后过快变化。拆开以后,关卡可以通过数据安排观察节奏。
判定也要尊重这个过程。水头还没推进完成时,世界不能被视为稳定。否则,画面里的水还在向前走,系统却已经给出结果,玩家会错过最需要观察的一段。
TapTap
图 2|按已知路线进入第二段后的实机画面。石头仍在岸上,池塘水位已经上升,新来的雀开始寻找水中落脚处。

同一块石头,在下一段有了不同用途

第一段满足溪流恢复、池塘水位达到要求、鱼安全等条件后,世界进入第二段。原来的对象与状态保留下来,池边加入一只等待落脚的雀。玩家这次要把石头从岸上放进池中,为它提供落脚处。
这只鸟配置了 wade,只接受水中的落脚点;石头配置了 perch,能够承载鸟。于是,岸上的石头虽然也能落鸟,却不符合这只鸟的需求。这个区别由通用属性组合表达,不需要在代码里写“第一关第二段例外”。
等待的鸟还配置了围绕池塘的环飞路径。它绕着池飞,既表现“正在寻找落脚点”,也把玩家的注意力带向池塘。环飞没有直接告诉玩家把石头放在哪个坐标,但给出了与需求有关的视觉线索。
TapTap
图 3|同一次路线的收束状态。石头放入池塘后承载雀,上下游仍保持通水;与图 1 对照可以看到,同一件物品的作用随位置改变。

和谐不是把每个东西摆回原位

这一关的两段让石头经历了“移出水路”和“放回水中”。第一段关心通水,第二段关心栖息,同时仍要求上下游保持流动。玩家不能简单记住“石头在水里就是错的”,而要观察它处在什么关系里。
世界的和谐检测同时检查稳定状态与关卡条件。稳定只表示变化暂时平息,不能单独代表成功;关卡条件则说明当前关系是否成立。决定成败的规则不使用随机数,粒子和摆动等表现可以有变化,同样的有效操作仍应得到可复现的结果。
这一轮调整已经把渐进水头、雀绕池飞、岸上不落和入池石头可落纳入自检。它们保证设计关系成立,但不直接证明等待时间对所有玩家都合适。节奏仍需要实际试玩来判断:水走得是否足够清楚,等待是否过长,玩家是否注意到了新来的鸟。
第一关最终承担了两层教学:先让玩家看到一个条件如何沿水路传播,再让玩家发现,物件的作用取决于它与周围世界的关系。
开发日志 03|不用贴图,怎样画出一个会变化的水墨世界截图
开发日志 03|不用贴图,怎样画出一个会变化的水墨世界
《一念万物》的水墨画面由程序绘制。树、石头、池塘、鸟和鱼的画法集中在 Paint.gd,四季使用不同配色,再叠加水墨与宣纸着色器。这样做让物件外观能够随着世界状态变化,同时也带来了一个很实际的问题:每帧重新画大量笔触,浏览器能否承受? 从形状到笔触 画面主要使用笔触 stroke、brush 和墨块 wash。它们让边缘、宽度与浓淡有变化,避免所有物件都由等宽线和正圆构成。四季调色板分别控制天空、
官方
4 赞
开发日志 04|一次轻点为什么用掉了唯一机会:试玩带来的修正截图
开发日志 04|一次轻点为什么用掉了唯一机会:试玩带来的修正
2026 年 10 月 7 日的玩家视角检查里,第 12 关出现了一个很直接的问题:轻点溪中石头,没有移动,接着再拖同一块石头,石头却不走了。点击“回到清晨”以后,重新拖动又可以正常恢复水流。 当时画面没有清楚说明机会已经用完,玩家容易把它理解成触摸失效。检查代码后确认,可拖物在按下时就消耗干预,尚未判断有没有发生位移。 图 1|2026-10-07 修复前的浏览器记录。复现步骤为轻点石头后尝试拖
官方
4 赞
【设计】目前游戏内容截图
【设计】目前游戏内容
4 赞
4 回复
开发日志 02|48 关共用一个世界:把关卡写成数据截图
开发日志 02|48 关共用一个世界:把关卡写成数据
《一念万物》有 48 关,分为春夏秋冬,每关还有后续段。如果给每关单独写一套逻辑,类似的水、风、鸟和植物规则很快就会分叉:某一关改好了,另一关仍然沿用旧行为。项目因此把世界演化集中在 World.gd,关卡只描述初始条件和目标。 图 1|依据代码绘制的结构示意。关卡、终章与自在园使用同一个引擎,各自通过数据定义条件与目标。 先确定规则与数据的边界 Data/levels.json 保存关卡对象、位
官方
4 赞
开发日志 05|怎样确认世界真的能走通:自动自检与浏览器试玩截图
开发日志 05|怎样确认世界真的能走通:自动自检与浏览器试玩
《一念万物》的关卡依靠世界规则演化。水要往下游走,花要等环境合适,鸟要找到落脚处,天气还可能在时间线上变化。一次手动通关可以确认某条路线有效,却很难保证公共规则改动后,其他关卡与后续段都没有受到影响。 项目因此把验证与关卡数据一起维护,用自动自检检查规则,再用浏览器实操检查玩家面对的流程。 图 1|验证方法示意。自动自检、构建与实操分别提供不同证据,不能相互替代。 用已知操作路线重现结果 关卡数据
官方
4 赞
1001更新日志截图
1001更新日志
1、修复月面自动补建会莫名多建大量卡车的问题:高品位矿层事件的临时增产不再算进运力需求,在建的采矿单元和卡车也会一并计算。 2、优化部分条目显示问题 3、所有月面设施的批量拆除都新增"过剩 N"一键拆除,建设页卡片上会提示可拆除的数量。修复月面自动补建多建机械厂的问题(备件需求被重复计算)。
官方
1 赞
2 回复
0930更新日志03截图
0930更新日志03
1、地月经济圈目标放宽:贸易占比 50% → 40%,近地轨道液氧 20,000 t → 10,000 t,利润连续为正 180 天 → 90 天。 2、进入“地月贸易”阶段时一次性获得 ¥10 亿启动资金。 3、月面电磁弹射研发费用 ¥6 亿 → ¥3 亿;电磁弹射器从地球进口的物资 300 t → 150 t,工期 90 天 → 60 天。 4、聚变示范堆造价 ¥50 亿 → ¥30 亿,工期
官方
1 赞
0930更新日志02截图
0930更新日志02
1、新增背景音乐 2、新增火箭发射自动化 3、修复已知问题
4 赞
1 回复
1005更新日志截图
1005更新日志
1、修复破产危机里“变卖资产”在设施数量极大时卡死的问题,现在按整批出售,一次完成。 2、修复拥有大量闲置拖船时游戏每天卡顿的问题。 3、月面自动补建改为按整批开工,缺口很大时不再卡顿,施工队列也不会被成千上万条记录塞满。 4、月面自动补建的座数现在与建议数量完全一致,并先用本地材料建完再动用地球货物。
官方
1 赞
0930更新日志截图
0930更新日志
1、新增深空内容:小行星与 L5、火星发射窗口、戴森群、星际方舟。 2、新增地月贸易:电磁弹射器、再入舱、地月拖船、L1 推进剂站、氦-3 与聚变电站。 3、新增月球高价值出口商品:钛晶、超纯硅、轨道单晶。 4、新增传承与新周目:通关后获得传承点,用来购买永久加成。 5、随机事件减少打扰:事件之间有 20 天冷却,只有重大事件弹出卡片,其余事件汇总到事件中心。 6、修复铝不能生产问题,以及其他已知
2 赞
7 回复