经济系统
一个简单的、基本封闭的内部经济。不是游戏的重点——但它让模拟更加真实。
一句话介绍
NPC 有钱包。他们领工资。他们买东西。就这样。
玩家与这个世界没有经济互动。经济系统的存在是为了让 NPC 行为有根基感,而不是给玩家找事做。
货币
单位: Ash(₳)
游戏内虚构货币。不与任何真实货币挂钩。仅限模拟内部使用。
钱包
每个 NPC 在 D1 中有一条钱包记录:
ts
interface Wallet {
npcId: string;
balance: number; // in Ash
lastPayday: number; // tick timestamp
dailySpendAvg: number; // rolling 7-day average
}默认初始余额:₳500(足够在没有收入的情况下维持约 2 周)。
收入
工资(每日)
| 职业 | 日薪 |
|---|---|
| 医生 | ₳120 |
| 药剂师 | ₳90 |
| 护士 | ₳80 |
| 教师 | ₳70 |
| 警官 | ₳70 |
| 面包师/店主 | ₳60 |
| 镇长/校长 | ₳100 |
| 酒馆老板 | ₳75(小费约 ₳20) |
| 市场商贩 | ₳50–₳80(浮动) |
| 儿童/退休人员 | ₳0 |
工资在每个游戏日 17:00 发放一次。
奖金(涌现式)
偶尔,NPC 会收到一笔奖金——小额的 ₳20–₳50,用于:
- 加班
- 代替生病的同事值班
- 来自其他 NPC 的"感谢"礼物(少见)
支出
日常必需品
每个 NPC 有需求配置,驱动购买行为:
- 🍞 食物 — 每天,₳5–₳15/天
- 🍺 饮品 — 每周 2-3 次,₳3–₳8/次
- 🏥 医疗 — 仅在生病/受伤时
- 🛒 杂货 — 每周,₳10–₳30
接受付款的地点
- 面包店
- 杂货店
- 市场摊位
- 药房
- 酒馆
- 咖啡馆
不接受付款的地点
- 医院(免费,公共财政支持)
- 警察局
- 学校
- 镇公所
- 教堂
购买流程
如果余额 < 价格,NPC 不会购买,可能会决定回家。
库存
每个商业地点追踪库存:
ts
interface Stock {
locationId: string;
items: Record<ItemId, number>;
restockSchedule: RestockRule[];
}库存随购买而消耗,每天补货(通常在 06:00 由店主 NPC 完成)。偶尔会涌现出缺货事件,成为小型故事。
破产
如果 NPC 的余额跌破 ₳50,他们会进入**"经济压力"**状态。这会:
- 提高"金钱"需求的优先级
- 可能导致他们向朋友求助
- 可能出现在日记中
如果余额跌到 ₳0:
- NPC 会优先寻找任何工作
- 他们可能会变卖物品(v2 功能)
没有"游戏结束"。模拟会自行适应。
玩家看到什么
玩家看不到钱包余额。他们只能从日记中推测经济压力:
"又在担心房租了。今晚没去酒馆。"
这是有意为之。金钱是世界内部生活的一部分,不是面向玩家的数据。
为什么这么简单
复杂的经济系统会:
- 分散 AI / 叙事的注意力
- 需要大量平衡工作
- 开放被利用的漏洞
简单的经济系统:
- 提供一个产生涌现故事的约束
- 没有平衡负担
- 不能被玩家利用(因为玩家根本不与它互动)
v2+ 计划
- 城镇间的贸易路线
- NPC 发起的借贷
- 玩家建议的投资(非常有限)