🌻 设计文档小农场 · 野花笔记
← 全部文档/小农场/玩法

创新点 · 会换季的棋盘

现行 #策划#创新点#核心玩法#规则 docs/小农场/创新点-会换季的棋盘.md

零、结论#

这个游戏只有一处新东西: 田不是一排按钮,是一张 4×6 的棋盘;棋盘上种什么不打紧,怎么摆和现在是什么季节才打紧。

  • 所有收益型作物的基础产量完全相同——田里没有"最强的作物"这把尺子
  • 作物的价值来自伴生配对(玉米+大豆、胡萝卜+洋葱……全部来自真实的间作套种)
  • 四季每 8 分钟换一次,换季会改写作物能不能种、配对强多少
  • 于是每年有三个不同的最优田:春夏种玉米大豆、秋天换胡萝卜洋葱、冬天换冬小麦三叶草

一句话给玩家听:"别人的种田游戏里你在挑最贵的种子;这里你在摆一张会换季的花纹。"

判据 实测
最优排布 ÷ 全种一种(田内) 4.07×
最优排布 ÷ 随手改到不能改 2.4×
冬天不换田 ÷ 换田 1/18.16(颗粒无收)
春/夏/秋不重排 ÷ 重排 1.01 / 1.00 / 0.98(不用管)
田地从 3 格长到 24 格 排布能榨出的差距 1.81× → 3.87×
懂排布 ÷ 不懂排布(摊到总收入) 2.02×

想看能点的:下面第三节的棋盘演示可以直接换作物、换季节、看分数的变化。

夏天的最优田 · 玉米和大豆交错
夏天的最优田 · 玉米和大豆交错

一、先说上一版的问题:全抄,所以没有存在理由#

docs/核心玩法.md 那一版把 Cookie Clicker 的每一个部件都搬过来了:

部件 来源 是不是抄的
15 档设施 + ×1.15 涨价 Cookie Clicker 原样照抄
25/50/100/150/200 里程碑 ×2 Cookie Clicker 原样照抄
金色小鸡(定时刷、点中三选一) Cookie Clicker 原样照抄
动物自动点击 Cookie Clicker 的 Cursor 原样照抄
离线收益 + 广告加倍 品类通用 抄
抽卡 / 图鉴 / 声望 品类通用 抄
天气倍率 品类通用 抄
"选作物" 本作加的 只是一张皮的补丁

问题不在抄。 增量游戏是成熟品类,玩家脑子里有一套语法:设施列表要能买、要涨价、要有里程碑、要有声望重置。 不抄这些,玩家会困惑——那不是创新,是添乱。

真正的问题是:抄完之后,找不到"为什么玩这个而不是玩 Cookie Clicker"的答案。

增量游戏只能有「一处新」
  • 全抄 → 没有存在理由(就是上一版的问题)
  • 全创新 → 玩家学不会,而且会变成一堆互不相干的系统(上一轮反馈的"有点混乱"就是这个症状)
  • 一处新 → 用熟悉的部分上手,用新的部分记住你

所以正确的问题不是"再加多少新东西",而是"哪一处必须是新的"—— 然后把其他所有能砍的砍掉,给它让出位置(第六节就是砍了什么)。


二、这一处怎么找到的:两个失败的实验#

这一节是全文最该读的部分。创新点不是想出来的,是试出来又推翻出来的。

实验一:先做"相邻加成",结果只值 1.02×#

第一版的想法很普通:作物种在相邻地块上有加成,所以"田怎么排"有讲究。

tools/sim/adjacency.mjs 把它量化了,结论是这个想法在这一版里是假的:

玩法 每秒产出 相对
全种玉米(单产最高的作物) 11.04 1.00×
退火找的最优排布 11.25 1.02×
有"单产最高的作物"时,相邻加成只是噪音

24 块地里,最优排布只有 4 块(17%)不是玉米——也就是"最优解"和"全种玉米"几乎一样。 原因很直白:只要田里有一把"谁收益高"的尺子,玩家就只会去够那把尺子, 空间怎么摆就变成了第二位的事情,最后收敛成零决策。

实验二:把尺子拿走,同一套规则立刻值 3.5×#

于是反过来做:所有收益型作物的基础产量拉平,差异只留在"相邻关系"上。 同一套退火、同一个棋盘,tools/sim/board.mjs 的第一版跑出来:

玩法 田地产出 相对
全种同一种(不懂规则) 24.00 1.00×
随机乱种 30.31 1.26×
随手改到不能改(浅层玩家) 36.60 1.53×
最优排布(想清楚的玩家) 84.80 3.53×

而且最优解有图案、24 块地没有一块是"玉米",随机乱摆 1000 次一次都没撞到最优的 95%。

真正的结论不是"相邻加成好不好"

而是:「田里有一把尺子」这件事本身,会把空间决策压成零。 传统增量游戏把这条尺子放在每一个系统里,所以玩家永远只在做"选更大的那个数"。 把尺子从田里拿走,"怎么摆"才第一次变成一个真决策。 ——这条判断是整篇文档的地基。

实验三:四季单独做,只是换了个槽位#

docs/创新点-四季.md 提过把"四季轮转"当创新点。它比天气好(周期可预期、能等、田会变色), 但单独做有一个硬伤:每季的最优解还是"算得出来的单一答案"—— 玩家看一眼作物表就知道"这个季节种什么最赚",然后照着种。 它改变的是节奏和期待,不是决策的形状。本质仍是"环境倍率"那个槽位换了个名字。

所以:把两者合成一处#

季节不是"再加一个系统",而是"棋盘规则的定期改写"。

只有棋盘 只有四季 会换季的棋盘
决策是空间还是时间 空间 时间(而且是算得出来的) 两者咬在一起
换季会发生什么 无事 倍率变一下 整张田要重排(冬天不排 = 1/18)
有没有"等下一次"的期待 无 有 有
视觉 有图案 田变色 图案+颜色一起换

而且合成之后主界面的概念数量没变:天气的槽位换成了季节的槽位,棋盘本来就是"田地"那个概念。


三、规则#

3.1 田是一张 4×6 的棋盘#

  • 24 格。手机 430px 宽,6 列正好一屏宽,不用横滚。
  • 地块数 = 3 + √(设施总数 ÷ 2),封顶 24。
  • 格子从中间往外长(不是从左上角一行行填):开局 3 格,一小时约 16 格,24 小时约 23 格。 长出来的过程看得见,而且越往外扩,邻居越多,能榨出的加成越多(第四节的成长轴)。

3.2 没有尺子:所有收益型作物基础产量相同#

类型 每秒产出 说明
收益型(小麦/胡萝卜/洋葱/大豆/玉米/南瓜/冬小麦) 1.00(全部相同) 产量完全一样,差别只在配对与季节
功能型(草莓/三叶草/向日葵/水稻) 0.50 产量减半,换一个乘数,上限明牌
"所有作物一样强"听起来很反直觉,但这是整套设计的前提

一旦有强弱,玩家就只会种最强的那个,棋盘退化成"选一个格子种它"。 解锁新作物不再是"数字更大",而是"多一种搭配材料"—— 新作物来了,整张田都要重新想一遍,这本身就是一条进度感。

3.3 伴生配对:全部来自真实的间作套种#

双向加成、只认上下左右(不认对角线:玩家要能一眼数清邻居)。

配对 加成 现实依据
玉米 + 大豆 +80% 玉米大豆带状复合种植(国家推广的间作套种),豆子固氮、玉米给架
胡萝卜 + 洋葱 +70% 互相驱虫
水稻 + 三叶草 +60% 稻田绿肥
冬小麦 + 三叶草 +60% 越冬绿肥
小麦 + 三叶草 +55% 绿肥覆盖
草莓 + 三叶草 +50% 覆盖保湿
玉米 + 南瓜 / 大豆 + 南瓜 +45% / +40% 「三姐妹」:南瓜爬地遮阴保墒
向日葵 + 大豆 +40% 向日葵诱集害虫、给豆子当架
草莓 + 洋葱 +35% 洋葱驱虫保护草莓
玉米 + 三叶草 / 小麦 + 大豆 +35% 行间绿肥 / 麦豆套种
南瓜 + 洋葱 / 胡萝卜 + 三叶草 +30% 驱虫 / 覆盖保墒

每个作物有 2~5 个搭档(没有搭档的作物会变成废子,所以这条要数一遍)。

3.4 功能作物:产量减半,换一个乘数#

作物 乘在哪儿 效果 上限(明牌)
草莓 田地 田地产出 +10% 3 块
三叶草 田地 生长速度 +12% 3 块
向日葵 动物 动物自动点击 +20% 4 块
水稻 离线 离线收益 +50% 2 块
  • 乘数按上限封顶:种超过上限的格子白种(只拿那 0.5 的产量)。上限直接写在作物卡上(草莓 2/3)。
  • 实测种满功能作物之后,田地乘数 +66%、动物 +80%——"按上限种满"是个学得到的正确解,不是隐形墙。
一条硬规矩:**功能作物必须能越冬**

第一版给它们做了"冬天趴窝"。跑出来冬天同时丢掉 产出 +30% 和 动物 +80%, 总产出直接掉两成——这就是断崖,玩家会觉得"我做错了"。 收益型作物可以趴窝(田空一半叫"结构变了"),功能作物不行: 它们给的是乘数,乘数断掉了整个经济都在抖。所以现在功能作物冬天照活,只是减半。

3.5 四季:每 8 分钟一季,一年 32 分钟#

季节 作物倍率 动物倍率 配对倍率 定位
春 ×1.00 ×0.95 ×1.00 播种季
夏 ×1.10 ×0.90 ×1.10 生长季
秋 ×1.25 ×1.00 ×1.20 丰收季,全年最高
冬 ×0.70 ×1.55 ×0.80 畜牧季,作物趴窝、动物顶上

作物适宜度(0 = 当季种不了,格子上明写"趴窝"):

作物 春 夏 秋 冬
小麦 1.00 0.80 1.30 0
胡萝卜 1.00 1.10 1.40 0.35
洋葱 0.90 1.20 1.40 0
大豆 0.90 1.30 1.10 0
玉米 0.90 1.40 1.40 0
南瓜 0.90 1.20 1.50 0
冬小麦 0 0 0.70 1.50
草莓 1.00 1.00 1.00 0.60
三叶草 1.00 1.00 1.00 0.70
向日葵 1.00 1.20 1.20 0.60
水稻 1.10 1.20 1.30 0.50
冬天不是惩罚,是**结构变了**

作物 ×0.70 看着像惩罚,但动物 ×1.55 顶上来, 实测四季总产出是 0.78 / 1.00 / 1.07 / 0.82——一个平缓的波,没有断崖。 变的是收入结构:从"靠田"变成"靠动物"。 于是产生一条真正的跨季决策:冬天前要不要把向日葵种满?(每块 +20% 动物,冬天动物最值钱)

3.6 零操作怎么保证#

情况 玩家要做什么 实测差距
春 / 夏 / 秋 什么都不用做,沿用同一张田 1.01 / 1.00 / 0.98×(等于没差)
换到冬天 要换一次田(换成冬小麦+三叶草) 不换 = 1/18.16,田里颗粒无收
解锁新作物 想优化的人重排 不排只是少赚

所以真实的操作频率是"每 32 分钟动一次"(一年一次),而且那一次是"冬天来了"这种看得见的节点。 符合"只加永久生效、不需要回来管"这条铁律:它不是要你盯着,是要你一年想一次。


四、实测#

跑法(两个模拟器分工明确):

node tools/sim/board.mjs --rounds 40 --iters 12000   # 田内决策:排布、配对、四季
node tools/sim/farm.mjs --hours 24 --runs 15         # 把田地并回三轨经济

4.1 四种玩家,四种理解#

季节 全种一种(不懂) 随机乱种 随手改到不能改 最优排布 最优/全种 最优/随手
春 24.00 36.78 52.17 100.56 4.19× 1.93×
夏 36.96 50.77 54.16 175.35 4.74× 3.24×
秋 45.00 62.24 70.84 199.81 4.44× 2.82×
冬 25.20 17.36 27.15 57.91 2.30× 2.13×
全年平均 32.79 — — 133.41 4.07× —

注意"随机乱种"这一列:乱摆只值 1.3 倍左右,几乎白费—— 说明"懂了就赢"不是"随便摆摆也行",但也说明乱摆不会被狠罚。

4.2 每一季的最优田(这是全文最该看的一张图)#

  春  豆 米 豆 米 莓 莓        夏  叶 米 豆 米 豆 莓
      米 豆 米 豆 米 叶            莓 豆 米 豆 米 豆
      叶 米 豆 米 豆 米            叶 米 豆 米 豆 米
      莓 豆 米 豆 米 叶            莓 豆 米 豆 米 叶

  秋  叶 萝 葱 萝 葱 莓        冬  莓 冬 叶 冬 叶 冬
      莓 叶 萝 葱 萝 葱            莓 叶 冬 叶 冬 叶
      葱 萝 葱 萝 葱 萝            叶 冬 叶 冬 叶 冬
      莓 葱 萝 葱 萝 叶            冬 叶 冬 叶 冬 莓

(米=玉米 豆=大豆 萝=胡萝卜 葱=洋葱 冬=冬小麦 叶=三叶草 莓=草莓)

三种条纹:春夏是"玉米+大豆",秋天换成"胡萝卜+洋葱",冬天换成"冬小麦+三叶草"。

把三种候选直接比一遍,四季的答案一目了然:

季节 玉米+大豆 胡萝卜+洋葱 冬小麦+三叶草 全种一种 最优/全种
春 76.3 73.3 8.2 24.0 3.2×
夏 135.0 104.4 9.0 37.0 3.6×
秋 151.5 153.7 80.3 45.0 3.4×
冬 0.0 2.9 53.3 25.2 2.1×
  • 秋天两个答案几乎一样好(胡萝卜+洋葱只高 1.5%)——同一季有多个等价解,这是加分项,不是 bug
  • 冬天玉米+大豆 = 0.0:这就是"不换田 = 颗粒无收"的来源
  • 四季最优田的相互重合度:春 vs 夏 83%(同一套)、秋 vs 冬 8%、春 vs 秋 13%

4.3 每季重排,到底值不值#

全年产出(四季平均) 说明
全年只用一张田(退火找的最好的那张) 119.80 "种一次就不管"的玩家
每年 4 季分别重排 133.06 每季重排值 1.11×
全年全种一种 25.23 棋盘总共值 5.27×

拆开看"不重排"的代价,四季的价值其实只集中在一个点上:

季节 沿用那张通用田 当季重排 差
春 102.16 102.97 1.01×
夏 175.53 176.35 1.00×
秋 198.35 195.32 0.98×
冬 3.17 57.61 18.16×
这张表决定了这个游戏的"手感"

春夏秋完全不用管(差 1~2%,甚至排不排都一样), 冬天必须换一次田(不换就颗粒无收)。 也就是说:四季不是"每 8 分钟要你回来",而是"一年给你一个必须动手的节点"。 这个形状正好卡在"零操作"和"有决策"中间。

4.4 田长大了,还值不值得重排#

格数 3 6 9 12 16 20 24
最优/全种(四季平均) 1.81× 2.29× 2.71× 2.94× 3.28× 3.64× 3.87×

一路涨,没有饱和。 原因很直观:格子越多,一个格子能有的邻居越多,摆得好和摆得差的差距就越大。 所以"地变大"不只是数字变大,它让排布这件事本身变得更值钱。

4.5 摊到总收入上是多少(三轨经济)#

跑 node tools/sim/farm.mjs --hours 24 --runs 15(贪心策略,跨 15 次取中位数):

时刻 每秒总产出 设施 田地 动物 手点 三轨配比
2 分 59.2 9.1 13.9 5.0 31.2 15/23/9/53%
30 分 13.54 万 3.45 万 2.35 万 6.42 万 1.45 万 25/17/47/11%
1 小时 32.99 万 7.78 万 5.70 万 16.51 万 3.08 万 24/17/50/9%
4 小时 410.52 万 76.73 万 198.22 万 109.74 万 25.40 万 19/48/27/6%
24 小时 3549.45 万 990.84 万 965.82 万 1269.40 万 309.31 万 28% / 27% / 36% / 9%

24 小时的形状:设施 28% / 田地 27% / 动物 36% / 手点 9%。

这一版把田地比重从 14% 提到了 27%

上一版田地只占 14%——那是对的,因为当时的田地没有决策,纯粹是个数字。 现在田地承载着唯一的创新点,它的比重必须上来,否则"摆得好"这件事在总收入里感觉不到。 中间几个时刻(10 分钟 58%、4 小时 48%)波动很大,是因为暴走(金色小鸡 ×7)会让不同 run 在同一个时刻处在不同阶段;只能读末态的配比,中途的瞬时值不要当结论。 动物仍然是最大的一块(36%),"玩家能松手"这条没有丢。

4.6 四季没有断崖 + 松手仍然成立#

季节 基准产出 相对夏天
春 3170.89 万 0.78×
夏 4052.15 万 1.00×
秋 4349.50 万 1.07×
冬 3319.24 万 0.82×

波动 0.78 ~ 1.07。秋天是全年最高(丰收季),冬天只低 18%(动物顶上来了)。 注意冬天不是最高的——第一版把冬天调到 1.89 倍,结果玩家变成"等冬天",其他三季变陪衬,反而没有节奏。

松手判据(一直点 vs 完全不点,比每秒总产出):

时刻 一直点 完全不点 倍数
5 分 2,132 21.6 98.5×
30 分 13.54 万 5,195 26.1×
1 小时 32.99 万 3.92 万 8.4×
4 小时 410.52 万 130.39 万 3.1×
24 小时 3549.45 万 2609.89 万 1.4×

收敛到 1.4 倍——点击给一个永久约 1.4 倍的优势,不是无限优势。前期必须点,后期点不点都行。

4.7 懂排布 vs 不懂排布,落在总收入上#

时刻 懂排布 全种一种 总收入差 田地占比(懂 → 不懂)
30 分 13.54 万 5.67 万 2.39× 17% → 3%
1 小时 32.99 万 17.62 万 1.87× 17% → 3%
4 小时 410.52 万 112.49 万 3.65× 48% → 11%
24 小时 3549.45 万 1754.70 万 2.02× 27% → 4%
这两个数字要一起说才诚实

田内是 4.07 倍,总收入是 2.0 倍。 差别就是"田地只占总收入 27%"。摊到总收入上 2 倍,正好是一个 值得学、不学也能玩的量级——不是 1.05 倍那种"改了跟没改一样", 也不是 10 倍那种"不懂规则就被判死刑"。


五、这算不算"一次性静态最优"?#

docs/核心玩法.md 砍掉"配牌"的理由是:一次性静态最优化,没有技巧空间。 棋盘必须回答同一个问题。三条:

  1. 地会长大:3 格 → 24 格,每开一格就要重新想"新格子放哪、要不要挪"(4.4 节:价值一路涨到 3.87×)
  2. 作物会解锁:新作物是新的搭配材料(不是"更强的种子"),所以整张田的最优解会变
  3. 季节会换:春夏秋同一套、冬天必须换(4.3 节:冬天不换 = 1/18)
还有一条更硬的:随机摆不出来

上一版 board.mjs 实测:随机乱摆 1000 次,一次都没撞到最优的 95%。 也就是说这确实是个要想的题,不是碰运气。 而且"随手改到不能改"的浅层玩家只拿到最优的 40%~60%——想清楚是有回报的。

但它不是义务:不重排只是少赚,春夏秋甚至不用管(4.3 节)。这题是给想玩的人准备的,不是卡人的门槛。


六、为了给它腾位置,砍掉了什么#

砍掉的 为什么
天气系统(六种,加权 ×1.1375) 它和四季占的是同一个槽位("环境倍率"),而且纯随机、零决策、没节奏,留四季
作物的强弱阶梯 这就是"田里那把尺子"。留着它,棋盘上的空间决策会自动坍缩成零(实验一:1.02×)
功能作物的"全局"作用域 草莓原来是"全局产出 +10%"。全局乘数让"值不值得种"取决于设施规模,是藏在暗处的尺子;改成只乘田地,规则才自洽、界面才明牌
这不是"加了两个系统",是"换了一个系统,砍掉两个"

主界面概念数没有增加:天气的槽位→季节的槽位,作物表→棋盘的棋子。


七、和三条铁律对照#

铁律 这条设计怎么满足
零失败 配对只有正加成;季节只改结构不改总量(0.78~1.07,无断崖);冬天动物顶上
零操作 熟了自动收、收完自动补种;春夏秋不用管,一年只要在冬天调一次
每次点击必然成功 点击与棋盘无关,点哪块地都加钱(棋盘是"配置",不是"操作")
里程碑必须明牌 每格自己挂倍率(×4.52);配对连线直接写 +80%;功能作物上限写 2/3
主界面概念 ≤ 3 还是"点田 / 点动物 / 买设施",季节是背景层,棋盘是"田地"本身
"选作物"是点田的子动作 点一块地→下面出作物条,不给独立入口

八、能点的演示#

下面这个不是效果图,可以直接换作物、换季节、拉地块数:

  • 点一块地 → 下面选作物,右上角立刻显示这一格的分和它吃到多少加成
  • 按季节按钮 → 看到哪些作物趴窝、最优田整个换掉(冬天是冬小麦+三叶草)
  • 按「按当季最优排布」→ 和退火找到的答案对齐(自己摆不出来很正常)
  • 拉「已开垦」→ 格子越多,最优/全种一种的比值越大(1.81× → 3.87×)
小农场 · 棋盘(能点:换作物、换季、看分)

冬天长这样(左上角参数:作物 ×0.7 / 动物 ×1.55 / 配对 ×0.8):

冬天的最优田 · 冬小麦和三叶草交错,草莓保底
冬天的最优田 · 冬小麦和三叶草交错,草莓保底
演示里的作物是"示意图形",不是最终素材

11 种作物里现在只有胡萝卜/玉米/南瓜出了图,所以演示统一用细笔画的示意图形—— 免得界面里"三种是画、八种是字"。8 张缺的作物图记在美术待办里。


九、还没定 / 需要拍板#

下面这几条我没法自己决定
  1. 一季 8 分钟对不对。 现在是按"一年 32 分钟、一晚能过好几个季节"定的,是拍的。 太长(20 分钟)一个晚上过不完一年;太短(3 分钟)冬天来得太频繁、重排会烦。凭手感判断。
  2. 冬天要不要更低。 现在冬天是夏天的 0.82 倍(结构变了但总量接近)。 也可以压到 0.7 做成"休耕期"——但数字倒退会让人觉得做错了,我不建议。
  3. 要不要给"一键按最优排布"。 演示里有,真机给不给? 给:省事,但那个"想明白"的过程被跳过了;不给:想摆好的人要自己去试(有连线明牌,试得出来)。 我倾向不给按钮,只给明牌提示("这块地和邻居没有配对")。
  4. 水稻的"离线 +50%"在模拟器里量不到(模拟器一直在线)。它的实际价值要真机数据。
  5. 棋盘要不要再大。 现在是 4×6=24。5×8=40 实测排布价值还能涨到 3.68×以上的水平, 但手机上 8 列太挤——除非改成两屏或者可拖拽。

十、改动清单#

  • tools/sim/rules.mjs(新增):作物表 / 配对表 / 四季表 / 棋盘形状,唯一数值源头
  • tools/sim/board-model.mjs(新增):棋盘评分 + 退火求最优 + 浅层玩家模型
  • tools/sim/board.mjs(重写):判定脚本,出第四节 4.1~4.4 的表
  • tools/sim/farm.mjs(重写):田地改成棋盘模型,出 4.5~4.7 的表;加了可复现随机数
  • tools/art/scene/board.js + tools/art/board_demo.mjs(新增):棋盘演示
  • tools/art/shots.py(新增):演示页截图(上一版 seasons.png 是临时截的,复现不出来)
  • docs/核心玩法.md:田地那一节重写、天气换成四季、公式与配表更新
  • docs/创新点-四季.md:转归档(结论已被本文取代;保留它记录的失败过程)
  • 美术:8 张作物图(小麦 / 洋葱 / 大豆 / 冬小麦 / 草莓 / 三叶草 / 向日葵 / 水稻),幼苗图共用
  • 美术:冬天的覆雪田地版本
  • 代码:主界面田地从"散点作物"改成 4×6 棋盘 + 配对连线(tools/art/scene/mainui.js 已有四季配色,可以接着改)
  • 代码:作物选择面板要写清"和相邻谁配对、加多少"
  • docs/美术风格.md:补两笔——配对连线的线宽与颜色、棋盘格线的颜色

附:这份文档的阅读顺序#

只想看结论 → 第零节。想知道为什么是这一个创新点 → 第二节(两个失败实验)。 想动手做 → 第三节(规则)+ 第十节(清单)。想知道数字靠不靠得住 → 第四节,全部可复现。