游戏概念

> 一份给团队、合作方和未来玩家看的「游戏是什么」。

> 对齐代码状态:Beta 0.20.2(2026-06-21,10d5eb3)。

> 本文不是 marketing copy,也不是技术 spec——是把「为什么这样设计」讲清楚的一页纸。


0. 一句话(Logline)

> 一个笨手笨脚的女仆在暴风雨之夜签下一纸代管契约,离开主人、踏上去海鸥岛旧农场的旅途——用最朴素的工具,把「一慌就只想藏错」的习惯,一锄一锄地改成「先判断下一步」。

如果只能留 30 个字,就是:

从一扇被风吹开的窗,到一座失败过的农场——阿芙学着不再藏错。


1. 简介(Elevator Pitch)

《芙田物语》是一款 治愈系线性箱庭种田 RPG,核心体验是一段温柔的成长叙事。

玩家扮演女仆 阿芙(Alf),她的主人是侦探 Wuning。游戏从一个暴风雨的夜晚开始:阿芙闯进事务所想补救被雨淋湿的卷宗,主人却没责备她——而是把一份「海鸥岛旧农场代管契约」放在桌上,说「不是惩罚,是委托」。于是阿芙收拾行李、签下名字、雨停后从银岚城南门出发,沿旧邮路、灯湾、最终抵达那座「第一季开垦失败」的孤岛。

旅途中没有战斗系统、没有重数值刷宝、没有恋爱支线。种田、砍树、卖货、吃饭、睡觉——这些动作既是玩法,也是阿芙「独立判断」能力的一格格练习。每一格作物都对应一个她不再慌张的瞬间:她不是变厉害了,是学会了出错以后先想下一步

技术上跑在 Godot 4.5(Web + Windows 双端),480×270 像素风 4× 放大窗口,30 分钟一段流程,强引导、强反馈、不内卷。


2. 类型 / 平台 / 受众

维度定位
类型治愈系剧情 + 模拟经营 + 线性箱庭种田 + 轻度冒险
节奏短流程(一章 30~45 分钟),无开放世界、无内购、无 PVP
平台Web 浏览器 + Windows 桌面(同一份代码,GL Compatibility 渲染器覆盖)
受众喜欢《星露谷物语》叙事节奏但嫌太忙、喜欢《Coffee Talk》互动密度但希望有玩法、喜欢《极乐迪斯科》文字密度但想要操作的玩家
不做的事战斗硬核化、社交系统、永久死亡、内购、抽卡、签到、每日任务、刷宝

3. 核心幻想(Core Fantasy)

玩家玩这个游戏幻想得到的是:

「我可以在一个不出错也没关系的世界里,慢慢变好。」

对应的反幻想(玩家想得到的):

  • ❌ 资源焦虑(刷矿、刷金币、错过一天的焦虑)
  • ❌ 数值碾压(装备碾压、Boss 速通)
  • ❌ 社交负担(公会、好友、排行榜)
  • ❌ 时间惩罚(错过日期作物死亡、错峰收益)

游戏里的所有机制——体力双轨制、食物恢复、所见即所得的农田湿/干视觉、被打断即收手的契约、允许失败的旧种子——都在强化这一条核心幻想。


4. 设计支柱(Design Pillars)

5 条不可妥协的设计原则。每一条都能在代码里找到对应锚点。

Pillar 1 · 服务于叙事的玩法(Mechanics Serve Story)

种田不是为了刷金币,是为了「独立判断」的练习。每一个工具动作都有剧情意义

  • 锄头 7001 → 开垦、收获、擦 Afforest(既开地又”清理过去的痕迹”)
  • 洒水壶 7002 → 持续关注(不是一次性动作,呼应「学会负责」)
  • 斧头 7003 → 砍树/砍围栏(决定砍不砍、留下什么,是一种取舍)
  • 剑 1001 → 当前未在剧情线启用,roadmap 备用

决策:所有玩法调整前先问一句「这个动作能让阿芙变独立吗?」

Pillar 2 · 出错以后,先判断下一步(Fail Forward)

游戏不惩罚失败,而把失败变成剧情钩子:

  • 暴风雨夜打翻茶杯、撞碎盘子 → 剧情 02「侦探归来」直接触发,不让你真的捡完 5 份卷宗
  • 旧邮路被泥拦住 → 不是「绕路」,是「去找埃文问」的剧情入口
  • 退回的种子能不能发芽 → 教学关卡,不是隐藏惩罚
  • 累瘫(energy ≤ 0)→ 弹一句 Alf 独白「四肢软软的、肚子空空的」,不死亡,不锁存档

决策:任何「失败」动画前,先想能不能 hook 进一段剧情对话。

Pillar 3 · 温柔反馈优先于硬核机制(Soft Feedback First)

8 种食物对应 4~10 的体力恢复;作物播种后必须浇水才生长(moisture > 0.5),视觉所见即所得;能量条归零时变暗红色而不是消失;NPC 互动有 interact.visible 浮标引导。

决策:反馈的”温柔程度” = “玩家被误解的概率的倒数”。

Pillar 4 · 关卡是一段连续的旅程(Chapters Are Stops, Not Boxes)

银岚城 → 旧邮路 → 灯湾 → 海鸥岛,不是「4 个互不相关的开放地图」,是一段情节递进的旅程。每个关卡都为下一关留下钩子:

  • 银岚城留下「报告本 / 给罗温的信」
  • 旧邮路埃文留下「退回的种子包」+ 一句「第一块田,种你能照顾好的数量就行」
  • 灯湾小镇(待实装)应该接住「罗温」这条线
  • 海鸥岛旧农场是「失败过的地方」,回到开头「第一季开垦失败」的伏笔

决策:关卡之间必须有「带走的东西 + 留下的话」。

Pillar 5 · 短流程、强引导、不强迫(Short, Guided, Forgiving)

30 分钟一段主线,无支线干扰。剧情通过 cutscene_trigger 状态机驱动(0~8),关键对话 Dialogic 锁定,引导文本阿芙口吻写在场景里。玩家不会迷路——迷路的是赶路的人(埃文语)。

决策:遇到”增加支线任务”的诱惑时,默认拒绝。


5. 世界观与故事前提

5.1 世界

芙田世界(AlfFarmTale World) — 一片被海风、雨水和时间慢慢磨过的土地。

  • 银岚城(Silver Mist):港口 + 山城,海鸥岛的中转站,三家小店(家具 / 食材种子 / 武器杂货)
  • 旧邮路(Old Post Road):连接银岚城与灯湾的泥路,雨后难行
  • 灯湾小镇(Lamp Cove Town):罗温所在,待实装
  • 海鸥岛旧农场(Seagull Island Old Farm):第一季开垦失败、已退还种子的孤岛——阿芙的最终试炼地
  • Wuning 事务所:阿芙的家,序章 + 序幕过场发生地

世界采用四季节气(春 / 夏 / 秋 / 冬)+ 离散时段(早 / 午 / 晚)双层时间(README 4.3 设计,roadmap),当前已实装完整分钟制时钟 + 季节切换。

5.2 主角:阿芙(Alf)

  • 身份:Wuning 的女仆,笨拙、不自信、一慌就只想藏错
  • 语言习惯:第三人称自称「阿芙」,说话简短,带犹豫
  • 成长曲线:从「我会不会搞砸?」→「先判断下一步」→ 「我可以照顾好这块田」
  • 设计意图:阿芙的成长不是数值变强,而是判定顺序变了——她依然不强,但她不再慌

5.3 关键配角

角色定位关键台词
Wuning(主人)侦探、契约方「你在意的不是出错,是一慌就只想着把错误藏起来。」「你不用证明自己很厉害。先学会负责。」
埃文旧邮路驿站老人,退回种子的接收者「六粒种子,六个萝卜。种子躺在袋子里,只会发霉。你把它种出来,它才成了货。」「种下多少、收回多少、换了多少钱。心里要有数。」
罗温灯湾码头联系人,Wuning 介绍待实装(Wuning 写给罗温的信是 Prologue → Chapter 2 的桥)
银岚城三店主npc4001 家具 / npc4002 食材种子 / npc4003 武器杂货银岚城的热闹感来源,不主推个人剧情
NPC 1001 船夫birth ↔ village_01 摆渡任务 1001「船夫的请求」(收集 1 axe + 20 wood → 8 颗种子)

5.4 故事前提(按章)

关卡核心张力已实装
Prologuewuninghouse(事务所三联场景)雨夜闯祸 → 主人归来 → 签下契约 → 出门✅ Beta 0.20.0
Chapter 1 · 旧邮路old_post_rd(旧驿站)泥路拦住 → 遇见埃文 → 试种退回种子 → 收获 → 卖给埃文 → 获得种子 → 启程🔜 剧情脚本完成,关卡待实装
Chapter 2 · 灯湾小镇lamp_cove见到罗温、转交信件、新委托📋 设计中
Chapter 3 · 海鸥岛旧农场seagull_farm抵达失败过的农场,开始真正的代管📋 设计中

6. 关卡地图

当前已实装的 8 个 LevelType

WuningHouse ─┬─ WuningHouseAlf   (Prologue 阿芙卧室)
             └─ WuningHouseCorridor  (Prologue 走廊)
SilverMist        (银岚城·中转·三店主)
OldPostRd         (旧邮路·埃文驿站)
Village_01        (Village_01·NPC 1001 / 2001)
AdventurerGuildRoom_01
Birth             (海鸥岛旧农场·中转)

> 路径约定:res://levels/<level_name>/<level_name>.tscn,关卡 KEY 用小写字符串(如 "wuninghouse_alf"),不是 PascalCase。

场景叙事功能

  • WuningHouse 三联场景:序章专属,统一接入 PointLight2D 烛火闪烁系统 + BGM《Silent Rain Narrative》
  • SilverMist:热闹中转站,4 个 NPC(1001 / 2001 / 4001~4003),3 家商店,玩家出门的起点
  • OldPostRd / LampCove / SeagullFarm:roadmap,三段递进的旅程

7. 核心玩法循环

每 5~10 秒一个微循环,每章节一个宏循环。

7.1 微循环(手感到位)

[探索] WASD / Shift 跑
   ↓ 靠近可交互物体
[提示] MouseFocus + Interact.visible + 键盘提示
   ↓ F / E / 鼠标左键
[互动] HoldEffectResource 触发(range gate / one-shot / oblique angle)
   ↓ 资源校验
[执行] 动画 + 音效 + 信号(hoe_target / watering_target / axe_target / seed_target / building_target)
   ↓ 状态写入
[反馈] 体力扣减 / floor 累加 / 物品消耗 / 农田状态更新
   ↓ 视/听反馈
[循环] 玩家看到效果,继续探索

7.2 宏循环(章节节奏)

序章触发事件  → 抵达目的地
   ↓ 任务系统
   ↓      → Task.try_complete_by_signal() 自动完成 + 发奖
继续探索
   ↓ 关键对话
剧情 trigger 推进(cutscene_trigger += 1)
   ↓ 时间推进 / 季节切换
切换关卡(load_level)
   ↓ BGM / LoadingManager / Camera.set_limit()
继续下一章

7.3 章节任务示例(Prologue)

P01 去客厅看看   → 阿芙房间 → 客厅
P02 收拾残局     → 拾起湿卷宗 0/5(3/5 即触发剧情)
P03 侦探归来     → 剧情过场(中断 P02)
P04 阅读契约     → 桌面互动《海鸥岛旧农场代管契约》
P05 签下名字     → 桌面互动签名
P06 回房间收拾   → 行李 + 床铺睡觉
P07 带走主人留的 → 报告本 + 给罗温的信
P08 前往南门     → 银岚城南门
P09 离开银岚城   → 进入旧邮路

8. 核心系统

8.1 体力双轨制(CharacterResource

来源字段行为
跑步energy_current消耗可自然回复(封顶 energy_max - energy_floor),归零 2 秒喘息期
工具/劳作energy_floor永久累加,不可自然回复,自然回复上限随之下降
食物恢复restore_valuefloor -= N 模型,吃完上限自动上升,给玩家即时反馈
归零拦截consumes_energy()抽象方法,7001/7002/7003 override = true;切换工具时切到不消耗的工具不闪 range

设计意图:劳作不是「跑步消耗的副产物」,而是有独立代价的承诺。

8.2 工具 / HoldEffect 抽象

每个手持物品对应一个 HoldEffectResource

  • 1001 sword(无 range gate,OneShot)
  • 4001~4007 7 个种子 → 基类 SeedHoldEffectResourceBase
  • 7001~7003 锄头 / 洒水壶 / 斧头(override consumes_energy()=true
  • 8001~8095 92 个建筑物品 → 基类 BuildingHoldEffectResourceBase(单行 extends,所有行为继承自 8001.gd

extends新加一个物品 = 新写一个 .tres + 一个 行,零特例。

8.3 物品 / 库存

  • 千位 ID 段:Weapon 1000 / Seed 4000 / Food 5000 / Tool 7000 / Building 8000
  • 库存容量:背包 30 格 + 手持 9 格,每格堆叠上限 64
  • 操作:左键拾取/合并/交换,右键半切(<200ms),双击合并同类,Shift+左键跨区转移,Q 丢弃
  • 持久化:Web 端通过 WebSaveAdapter.swap_to_runtime_deep 把 Bag/Hold 子属性也切到镜像版

8.4 商店 / 交易

4 个店主,按主题分工:

NPC主题商品
npc2001village_01 通用工具axe / hoe / sprinkler / sword / carrot / carrot_seed
npc4001silver_mist 家具92 件摆设(bed / chair / sofa / book / bonsai / plate / candle / clock / 食物摆盘…)
npc4002silver_mist 食材种子8 Food + 7 Seed
npc4003silver_mist 武器杂货sword + wood + axe / hoe / sprinkler
  • 买入:玩家背包 / 手持栏优先
  • 卖出:统一 max(int(price * 0.8), 1),单物品最低售价锁定 1 金币

8.5 任务 / 剧情状态机

  • 任务数据结构TaskListResourcelist: Array[TaskResource] + over_list: Array[int]
  • 任务状态机Un_Get → Un_Done → Done → Finish
  • 触发完成TaskResource.done_signal: StringName + try_complete_by_signal() 自动完成+发奖
  • 剧情状态机GameResource.cutscene_trigger: int(0~8),决定 sprint / 雨声 / BGM / 剧情过场是否启用
    • 0:初始,禁用 Shift
    • 1~4:剧情引导期,雨声 + BGM《Silent Rain Narrative》
    • 5:incident 视频(硬停 BGM)
    • 6:leave 对话
    • 7:自由探索,Shift 启用

改 trigger 边界前必须先查完整剧情流程——这是 hard rule。

8.6 时间 / 季节

  • TimeRecord:分钟制时钟 + 月/日/时/分 + 季节
  • 季节切换switch_season() 重置月份(春=3 / 夏=6 / 秋=9 / 冬=12)+ 切换带 meta("seasonal")=true 的 TileMapLayer 的 TileSet + FellableTree.set_frame_from_sequence()
  • 全局光照:基于时间段(DAWN/MORNING/DAY/SUNSET/DUSK/NIGHT)调 canvas_modulate / DirectionalLight2D / shadow_polygon

8.7 通用可破坏系统(Breakable

compoents/breakable/breakable.gd 是 2026-06 重构后的统一入口:

  • 斧头 + 未来所有工具走 Breakable.hit(tool, at) 通用入口
  • 配置集中在 Level 顶部两张 const 表:BREAKABLE_SCRIPT_BY_INVENTORY_ID + BREAKABLE_HITS_NEEDED_BY_INVENTORY_ID
  • 子类:BreakableFence / BreakableChest(砍前先吐内容物)/BreakableBed / BreakableTellable(锄头专用,擦 Afforest)

新加特例改两张表,不动 Inventory 资源

8.8 双端存档

  • 桌面res://archives/<slot>/(不覆盖源文件,多 slot 不互相污染)
  • Webuser://runtime_state/<slot>/(cold-start 镜像 31 个核心 .tres)+ IndexedDB 存档快照
  • 自动保存:30s 定时 + _beforeunload + pagehide + visibilitychange
  • 路径 shim:所有存档读写走 WebSaveAdapter,游戏代码层只调 ResourceManager / WebSaveAdapter

9. 视觉与音效

9.1 视觉

  • 分辨率:480×270 像素风(canvas_items stretch),4× 放大到 1440×810
  • 调色板:低饱和度水彩 + 米黄/海蓝/苔绿主导,烘托「温柔成长」
  • 抗锯齿:MSAA 2D + 3D,锯齿大幅缓解
  • 光照:自然光带(DAWN/DAY/SUNSET/NIGHT)+ 室内 PointLight2D 烛火闪烁
  • 相机缩放:室外 1.8×、室内 2.0×(视野近、聚焦)

9.2 音效

类别资产
BGM(专属)《Silent Rain Narrative》(Prologue 全程) / village_01 / birth
BGM(混合回退)未注册专属 BGM 的场景自动从 village_01 + birth 两池随机选播
环境音雨声(10 秒渐变)/ 雷声(3 变种)/ 风窗声
动作音hoe 3 档 / watering 4 档 / axe 4 档 / walk 草地 7 档 / walk 石地 5 档 / chest open/close 3 档
互动音翻页声 / 开锁声 / 剑击声

音效分组:走路按地形分(草/石)、工具按动作分(锄/水/斧),音量按场景压低(walk_grass -16dB)。


10. 当前状态 & 路线图

10.1 已实装(Beta 0.20.0,10d5eb3

  • ✅ Prologue 章节(WuningHouse 三联场景)— 完整剧情 + 过场 + Skip
  • ✅ 体力双轨制 + 8 种食物 + 累瘫对话
  • ✅ 农田 × 浇水联动(所见即所得)
  • ✅ 通用可破坏系统(斧头 + 锄头 tellable)
  • ✅ SilverMist 三店主 NPC + 4 家商店
  • ✅ 完整背包 / 商店 / 任务系统
  • ✅ 双端存档(桌面 + Web)

10.2 路线图(按章节)

优先级章节内容关键里程碑
🔥 P0Chapter 1 · 旧邮路旧驿站场景 + 埃文 NPC + 试种教学 + 退回种子剧情关卡 old_post_rd 实装 + 任务 R01~R09 落地
🟡 P1Chapter 2 · 灯湾小镇罗温 NPC + 信箱 / 灯塔 / 集市关卡 lamp_cove 实装 + 罗温支线
🟡 P1自理度系统独立完成动作 → 自理度 +1 → 触发台词/剧情反馈CharacterResource 新字段 + 反馈触发器
🟢 P2Chapter 3 · 海鸥岛旧农场抵达失败过的农场 + 暴雨夜守护关卡 seagull_farm 实装 + 终章演出
🟢 P2战斗 / 冒险扩展剑攻击 + 简易怪物 + 野外探险剑 1001 实装 + Monster 子系统
⚪ P3多人 / Mod / 云存档PWA + 云存档后端export_presets.cfg progressive_web_app=true

10.3 设计原则(roadmap 验证清单)

每加一个新内容前过一遍:

  • [ ] 这个内容让阿芙变独立了吗?
  • [ ] 失败能不能 hook 进剧情?
  • [ ] 反馈够温柔吗?
  • [ ] 关卡之间有「带走的东西 + 留下的话」吗?
  • [ ] 30 分钟能不能玩到?会不会强迫玩家迷路?

最后一句话

我们做的不是「又一个种田游戏」。我们做的是「让一个慌张的孩子,在 30 分钟内学会,先判断下一步」的那段旅程。

种田、砍树、卖货——所有动作都是台词。代码只是把台词写实。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇