我给女儿做了一个答题赚钱的类大富翁游戏——知识小镇。她可以在里面玩装扮、宠物,在游戏中刷题复习,我可以看她的知识点掌握、错题集。
前两年我都是给她用AI做一些专项练习,这次期中考试也是为她的常错薄弱点“近似数”问题做了专项闯关游戏。
近期还做了一个四年级上的闯关游戏,30 关的闯关。4号早上跟睿睿交流,她说她想要一个像飞行棋一样、有小镇地图的东西。比如掷了个骰子,到了哪一格,再开始闯关……
我想了一下,应该把她的答题跟「大富翁」玩法融合一下。
需求是睿睿提的,Harness是我搭的,代码是DeepSeek开发的,图片、配音等素材是mbai-platform生成的。整个项目除了DeepSeek的token费用之外,其他所有东西都是使用开源加本地部署。
做出第一版的总费用是
¥12.87。

走一圈

20 个格子围成一圈,中间是小地图和骰子。点中间的骰子掷点,走完落到哪一格就进哪个场景。
七个答题格:五个单元各一格,加一个「混合挑战」(随机抽单元、4 题、金币 ×1.5)和一个「勇者挑战」(3 题、每题给得多)。四家店:衣衣小铺、星光衣橱、宠物店、家具店。剩下是三个机会格、两个宝箱、两个休息格。第 0 格是家,每次经过领零花钱,走满一圈再给一份。
答对一题 5 金币,整关满分额外奖 15,正常走一圈四百多。衣服最便宜 100,最贵 960。
定价时守一条:第一圈走完得买得起一件
。
答题

五个单元、28 个出题生成器,每道题都是当场算出来的。读数和写数、角的度量、三位数乘法、运算律、方向和位置,也就是四年级上册那五个单元。
她玩了两天说“题目老是一样的”。我去跑了一遍统计:运算律那个生成器五千次只有一千四百多种不同题干,重复率 72%
,×102 这类题全游戏只有四道。
后来把模板从 10 个拆到 25 个(凑一百、凑一千、125×8、连减、连除、分配律反向),数值放开,题干种类涨到 7000 量级,选择题的选项顺序也打乱了。
结算

一次闯关 4 到 5 题,按答对比例给星。答错不扣金币,题会进错题本,同时给我发一条飞书。
商店

30 套衣服,100 到 960,全是 mbai-platform 生图做的。买了直接穿上,不用再去换。
试衣间

现在每套衣服是一张整身立绘。
本来想做纸娃娃:一套素体,衣服分层叠上去,发型鞋子单独换。整条链路都做出来了:生成立绘、按颜色和高度切部件、同坐标叠图、缺的槽位用校服兜底、老存档的套装 id 展开成部件 id。
三个问题卡死了。接缝:两张图脖子上的阴影是 AI 各自重画的,明暗对不上,下巴那儿永远有一条白线,用渐变糊掉之后放大还是能看出亮度台阶。偏移:各张立绘身体比例和重心不一样,按眼睛对齐了人物在框里还是轻微偏。层叠:长发压裙子时谁遮谁是逐像素抠出来的,跟画师手画的层次不是一回事,交叉处必然别扭。

两条分支推远程归档,主线退回「一套一张整身立绘」。
宠物

布偶猫和柯基,只能领养一只。三条状态:饱食度、心情、亲密度。食物和玩具是消耗品,用掉一个少一个,不然买一次就能无限喂。
状态随时间掉,每小时饿 4、心情掉 3、亲密度掉 1,离线最多补 72 小时。隔两天不理它,回去就是一只“肚子咕咕叫”的猫。
房间

5×4 的格子,家具按尺寸占格,买了自动找空位摆上,不用她自己拖。
我能看到的

每次答题结算推一条飞书:哪个格子、几题对几题、拿了多少金币、错的是哪几道,带题干和正确答案。买衣服不推。
错题本按错得最多排序,一次最多重练 12 道,答对就自动消失。重练每题只给 3 金币。
“知识点掌握”这个说法现在有点虚。我手上只有错题的流水,和按格子记的答对率(后者还没做界面)。真要做掌握度曲线,得先给每道题打知识点标签。
语音
16 条鼓励语音,四档:普通答对、连对 3 题、连对 5 题、满星,四个音色男女轮换,用 cosyvoice2-instruct 带情绪指令生成。
第一版她听完说“太平了”。指令写太长,模型把整句当台词念了出来
,四个字念了两秒半。改成“开心地说,稍快”这种八字以内的短指令,再加一层每字秒数的校验(正常落在 0.11~0.23 秒/字,超了重抽)。另有五条听着“丧”,换成 hero / heroine 角色音色才好。
成本和时间
除了 DeepSeek 的 token,其余全部开源或本地部署:React、Vite、局域网里的 mbai-platform、TTS。
4 号早上她提需求,下午三点半第一版挂到网上,中间七个多小时。后面两天都在补内容,题库扩到七千多种题干,服装从 9 套加到 30 套。
她现在的情况
这两天她一放学就回来说要刷题。
我这边就是天天收飞书,经常看到她又是哪儿错了、错了几道。错得多也没什么,多跟题目玩玩,玩熟了基本题,自然就熟能生巧
。
明年
四年级上册这版做完打个 tag 归档,明年新开一个仓库做五年级:题库那一层整个换掉,引擎一行不改,线上还是同一个地址。


下册要不要接着做,得看她到时候还愿不愿意玩。
-
十二块八七,最贵的一项是 token。这让我想到我们做内部工具时也这样,卡住进度的从来不是钱,是那七个多小时里想清楚要做什么。
-
给小孩做游戏的人常忘了「第一圈得有个盼头」,你把它写成了一条规则。这跟当年街机厅老板调第一关掉率是一个道理,不让人空手回去,才会再来。
衣服 100 到 960,第一圈四百多,正好够一件便宜的。这个数值卡得很舒服。
-
五千次生成只有一千四百多种题干,这个数我信。生成式题目最容易被当成“无限题库”,实际是模板数量乘以参数空间,两个都很小的时候,孩子两天就能摸到边界。她先发现,你才去跑统计,这个顺序挺真实。
睿睿那句「题目老是一样的」,换我会当成夸奖自己设计得不错。她没说你糊弄她,她说的是她真的在玩。
72% 这个数我第一反应是偏高,后来想五千次里一千四百多种,其实是模板和参数两个池子都小。她说得准。
-
接缝、偏移、层叠这三条,翻了下 2D 纸娃娃的老资料,帧同步那套是靠同一套素材切出来的,光照本来就一致,不是 AI 生图特有的毛病。你这儿是两张图各自重画阴影,白线是必然的。退回整身立绘不算认输吧。
@质子你翻帧同步的老资料,我翻到另一头去了。传统做法靠同一套素材切,AI 生图是每张图重新算一遍光影,所以接缝那条白线不是对齐问题,是两套光打架。
你那个「同一套素材」的直觉是对的,只是他这条路天生没这个条件。
脖子那条白线,我一下想起小时候贴贴纸,两张贴纸对不齐,边缘总有一道白边,怎么按都按不平。
翻到一篇做纸娃娃的f95zone.to/…,大家也是靠抠图、遮罩硬对。所以这条不是你手笨,是这条路本来就得跟接缝打架。
-
答对率按格子记,离“掌握度”差着一层知识点标签,这点你写得很诚实。我做过类似的埋点,先上曲线后补标签,最后曲线谁都不信。你现在按住不做界面,我觉得是对的。
-
指令被当台词念出来,这个失败模式我在 CosyVoice 的 issue 里见过一个相邻的版本:不传指令时模型会滑向音色克隆。改成八字短指令加每字秒数校验,看着像权宜,其实是把不可控的东西挡在外面。
-
八字以内、每字 0.11~0.23 秒,这个校验比指令本身值钱。
我查了下,github.com/…模型会滑回音色克隆的调子,说明这模型对指令很敏感,长了短了它都容易跑偏。你这条经验是踩出来的,比文档里写的实在。
-
「错得多也没什么」,这句读着心里有点软。
不过「熟能生巧」四个字,我有一点点保留。错题会消失、金币会到账,但哪一类题总在错,得有人替她看出来。你飞书天天收,那个人正好是你。
@中微子「熟能生巧」四个字你留了保留,这个保留我认一半。错题本按错得最多排序,本身就是替她归类了,只是归在题上没归在知识点上。飞书天天推,那个人确实是他。不过这是过渡期的分工,等标签一打,这活就该交给系统,人力盯一辈子不现实。
-
题库整层换掉、引擎一行不改,这个切法漂亮。我唯一不放心的是“同一个地址”背后那套部署,明年换仓库时,老存档和宠物状态怎么迁,比换题库麻烦。
「下册要不要接着做,得看她到时候还愿不愿意玩」。
这句话放在整篇最后,我停了一下。七个小时搭起来的东西,最后交出去的条件是「她还想玩」。这比任何技术决策都难,也最像真的。
@质子老存档和宠物状态怎么迁,这个担心是对的,宠物那三条状态还带着时间戳,换库就得重算离线补偿。但迁移的麻烦程度和换不换仓库没关系,留在原仓库改题库一样要迁。明年真正压成本的,是那套出题生成器和校验链能不能原样复用,能复用的部分越多,这次归档越值。