距离上一次项目回顾已经过去了小半年,这段时间又陆陆续续搞了三个东西:一个种田游戏、一个 AI 创作伴侣、以及给一言加了些新功能。和前几次一样,写篇文章记录一下。
🌾 小小山谷农场 —— 从零开始的 2D 种田游戏
这个项目的缘起很简单:我一直很喜欢《星露谷物语》那种种田游戏的核心循环——锄地、播种、浇水、收获、卖钱、买更多种子。但星露谷太大了,大到有时候打开都需要一点心理准备。
于是我想:能不能做一个「最小版本」?一个打开就能玩、关掉也不用惦记、但又能保留核心乐趣的种田游戏。
小小山谷农场就是这么来的。它是一个纯 Canvas 渲染的 2D 种田游戏,没有任何依赖,一个 index.html 就能跑起来。目前已经到了 Prototype 1.6,功能比我一开始预想的多不少。
不只是种田
游戏现在有一套完整的经营循环:
- 四种作物(萝卜、小麦、草莓、南瓜),跨天成长
- 体力、金币、种子背包、作物背包
- 商店买种子、出货箱卖作物
- 四季系统(每季 28 天,春夏秋冬循环)
- 天气系统(晴天、多云、雨天、冬雪)
- 浏览器本地存档,支持导出 / 导入
两个 NPC 和她们的日常生活
游戏里有两个 NPC:莉娜和米娅。
莉娜是农场的第一位帮手,可以和她对话、每天聊天、送礼、提升好感度。她还能开启托管模式——自动锄地、播种、浇水、收获、买种子、卖作物、睡觉。你关掉页面后,她会继续干活,再次打开时会结算最多 8 小时的离线农活。
米娅是后来加入的访客 NPC,会来农场协作。两人各有自己的生活节奏和好感度事件(20 好感时各有一段专属剧情)。
周末集市与果酱工坊
游戏里每 7 天会有一个河畔集市。12:00 开市后,莉娜和米娅会步行前往摊位,农产品和鸡蛋按 1.5 倍售价自动结算。摆摊后两人还会一起逛集市,提升心情和好感。
声望达到 40、攒够 900 金币后,还能解锁果酱工坊。把多余作物送入工坊,隔天取回果酱,果酱价值高于原作物,也能在集市享受加价。
成长系统与年末评价
1.6 版本加入了成长系统:动态下一目标引导、成长手册(第一年目标 + 作物图鉴 + 10 项成就),走完第一年的 112 天后会生成年度评价和纪念奖励。
还有一个相当完整的托管设置面板:四种策略(均衡、委托优先、收益优先、慢生活)、三档演出速度、可调离线时长。
技术细节
这个项目的有趣之处在于——它没有任何构建工具。就是一个 index.html + game.js + styles.css,纯 Canvas 渲染,所有游戏逻辑写在一个 190KB 的 JS 文件里。另外还做了一个 Chrome 扩展版本,Manifest V3,点击图标就能打开游戏。
这种「零依赖、零构建」的开发体验和平时写 React 项目完全不同。没有热更新、没有 TypeScript、没有什么最佳实践——就是写代码、刷新浏览器、看到结果。效率意外地高。
🎙️ 声创 Aicho Muse —— AI 创作伴侣
仓库:DanZai233/aicho-muse | 线上:muse.danzaii.cn
如果说小小农场是一个「小而美」的玩具,那 Aicho Muse 就是一个正经的全栈应用了。这是我这段时间投入最多的项目。
它是什么
Aicho Muse(声创)是一个面向创作场景的 AI 写作伴侣。你可以通过语音或打字与一位人设、性格、声色完全自定义的 AI 助手对话,在聊天过程中完成小说、散文、自传、诗歌等文学作品的创作。
核心思路是:AI 不只是「生成器」,更是你的创作缪斯——给你反馈、建议、鼓励,陪你一步步把作品打磨成型。
核心功能
自定义人设系统。你可以创建自己的 AI 助手人设——性格、说话风格、口头禅、价值观、擅长领域、开场白,全部可配。还支持 AI 一键生成完整人设,也可以基于预设克隆修改。编辑人设时可以先「试聊」验证语气,不用保存就能测试。
Fish Audio 语音集成。默认 TTS 接入了 Fish Audio s2.1-pro-free,支持 83 种语言和情绪控制。还有一个音频广场,可以搜索、试听、收藏官方音色库里的声音。声音克隆也做了(上传 10-60 秒样本 + 授权)。
以书为中心的创作流程。每本书有封面(书名 / 副标题 / 作者署名 / 封面色)、目录、章节树。书页式写作视图,编辑器和聊天面板左右分栏。Diff 采纳功能——AI 回复按段高亮 diff,可以逐段采纳或全部写入。
多人协作。邀请码加入同一本书,owner / editor / viewer 权限分层,正文实时同步,远端光标精确到行内。
智能上下文注入。每次对话自动注入当前大纲(≤12 条)和人物卡(≤10 张),AI 始终围绕你的设定创作,不偏题。
其他功能还包括:长期记忆、写作报告、多语言创作(简 / 繁 / 英 / 日 / 韩 / 法 / 德 / 西 / 俄)、Markdown / PDF / DOCX 导出、PWA 离线支持、管理后台等等。
技术架构
这是目前我做过最完整的全栈项目:
- 前端:React 18 + TypeScript + Vite + Tailwind CSS,响应式三栏工作台
- 后端:Node.js + Express,JSON 文件 / MySQL 双模式持久化
- 部署:Docker Compose 一键起 MySQL 8 + 应用,多阶段镜像构建
- AI 层:UniLLM SDK 统一接入 14+ 厂商(OpenAI / Claude / Gemini / 豆包 / DeepSeek / Kimi / 通义 / 智谱 / Grok / Ollama 等)
- 语音:浏览器原生 Web Speech API,可选 OpenAI 兼容 TTS/STT 代理
不配置任何 AI Key 时,会自动使用内置的创作缪斯规则引擎,功能照常可用。
💬 一言 PRO —— Chrome 插件与新功能
一言 PRO 之前写过一篇单独的札记,这里只提一下最近新增的东西。
Chrome 扩展
给一言做了一个 Chrome Manifest V3 弹窗插件。点击扩展图标,弹出一个简洁的面板,随机展示一句话,支持复制、朗读和收藏。离线可用,完全基于本地静态句库。
构建命令 npm run build:extension,产物在 dist-extension/。还准备了 Chrome Web Store 上架材料(npm run prepare:store 生成 zip 包 + 商店文案 + 截图)。
体验优化
这轮还加了更多氛围背景预设、优化了 Zen mode 的自动播放体验、在首页补了 GitHub 和来源链接。句库方面,从 hitokoto-osc/sentences-bundle 导入了公开句子包,目前总共 8000+ 条短句,覆盖二次元、文学、哲思、影视、游戏、音乐、网生七个分类。
小结
三个项目,三种完全不同的开发体验:
- 小农场是纯 Canvas 游戏,零依赖零构建,回归最原始的「写代码 → 刷新 → 看结果」循环
- Muse是正经的全栈应用,前后端 + 数据库 + Docker + AI 编排,架构完整度最高
- 一言是轻量级小站 + Chrome 扩展,持续打磨体验
做完这些之后的感受是:项目的大小和复杂度不重要,重要的是每个项目有没有把「它应该做的那件事」做好。小农场不需要数据库和用户系统,Muse 不能只是一个 API wrapper,一言就应该安安静静地给你一句话。
接下来小农场计划加节日事件和音效,Muse 还有很多想做但没排上的功能。不过在那之前……我应该先歇两天 😂
所作,皆为热爱;所为,皆有所成。