下载 App
开发者日志 ③:鸡饿了会去吃你的苗
10/1711 浏览综合 包含 AI 合成内容
#聚光灯gamejam开发者日志讲一条我自己最喜欢的规则,以及它怎么把整个农场串成一条会自己闭合的环。
起因:家畜太无聊了
最早的家畜是一个产出器。
鸡身上挂一条饥饿条,单向下降。你喂它草,条就涨回去。饿了它就变骨架。
它能跑,但它没有生命——它不会做任何你没让它做的事。
我想让家畜变成「会自己做事的存在」。不是为了真实感,是为了让农场变成一个生态,而不是一排并列的产出机器。
【配图:牧场场景,鸡、牛、羊散在牌桌上】
先纠正了一个我自己写错的假设
动手之前我翻了一遍代码,发现原方案的前提是错的。
原方案写着「心情低 → 动物停产」。我核对后发现:
动物产物根本不是自主的。 牛奶、羊毛、蜂蜜、鸡蛋这四条,全要你把饲料拖到动物身上才启动。产物是你拖出来的,就不存在「停产」这个环节。
硬切成 0,玩家的感受只会是「我拖了草怎么没奶」——看不出因果,只觉得游戏坏了。
所以改成:心情差 → 挤奶变慢,最慢拖到 2.5 倍。
慢是能察觉、又还能等的量级。你拖着同一摞饲料,会直观地感到「今天这窝牛不好挤」。
四个你看不见的状态
我给动物加了四个维度。
状态 怎么变 后果
心情 起始 70,天气影响(晴 +8 / 彩虹 +10 / 龙卷 −30) 越低,产物越慢
恐慌 有掠食者靠近半径内,所有家畜 +45 拖低心情
群居压力 同类挤在一起超过 3 只,每只 +8 拖低心情
年龄 幼崽不啄苗、吃得更少;老了产出变慢 要留种、要淘汰
这四个数字,一个都不会显示在界面上。
跟土壤那条原则一样:不进 UI。你只能从「今天挤奶特别慢」「鸡老是往地里跑」反推发生了什么。
啄苗:这条链的关键
成年动物饿到一定程度,会自己走向最近的作物,把它吃掉。
零收益。它不会给你任何东西,只是吃掉你的苗。
这一条直接摧毁你的轮作计划——你排好的「番茄→豌豆→胡萝卜」,可能走到一半就被鸡吃掉了。你要么先喂饱它们,要么建围栏把它们隔开。
而啄苗本身会让鸡的心情 +12。
这是我最喜欢的一处设计:偷吃和被偷吃是同一机制的两面。
它不是我额外写的一条「补偿规则」,它就是心情系统本身——鸡开心了就不去吃你的苗,鸡不开心就去。你喂饱它,它就不糟蹋你的地。
【配图:一只鸡站在被吃掉的作物位置上】
然后这条链自己闭合了
把这些放在一起,会发生一件我没刻意设计的事:
代码块
狐狸靠近鸡舍
↓
半径内所有家畜一起恐慌(不是只有猎物那只)
↓
恐慌拖低心情 → 所有产物配方变慢
↓
你不想等 2.5 倍,去买牧羊犬
↓
钱花光了
↓
买不起饲料 → 动物排便变少
↓
粪便少了 → 堆肥少了 → 土壤肥力上不去
↓
作物减产 → 收入更少
↓
更买不起狗 ← 回到起点
这条链里没有任何一行代码写着「惩罚玩家」。
我写的是「捕食者会吓到附近的动物」,写的是「心情影响产物速度」,写的是「粪便能做肥料」。没有任何一处是「设计了一个惩罚」。
但它会自己闭合成一个下坡螺旋。
你必须主动打破它:养狗、多建鸡舍分栏、或者冬天停养。
一处故意的让步
这条链的驱动量是**「变慢」而不是「停产」**。
我刻意把传导系数压低了。因为你只有一次狐狸路过,不应该直接崩盘。
玩家需要有反应窗口——「奶变慢了,我得处理一下」,而不是「我完了」。
这是我在这套涌现系统里唯一一处对玩家做了让步的地方。理由很简单:涌现是为了制造需要玩家思考的局面,不是为了制造无解的困局。
顺带补了两座建筑
群居压力规则写完之后,我发现它没有解法。
同类挤超过 3 只就不开心,但游戏里家畜只能塞进「棚屋」和「农舍」——一群鸡和一头牛住同一种房子,你没法分。
所以补了两座分栏建筑:
鸡舍:竹子与麦秸搭的鸡窝
畜栏:围栏圈出的牲畜区
【配图:鸡舍与畜栏的卡牌插画】
这两座房子是规则逼出来的——不是「我觉得该有」,是「没有它前面的规则就无解」。








