AI 后端原理——为什么"火山 + 独角兽"也能合出东西
传统合成游戏 vs Infinite Craft
传统合成游戏(Little Alchemy、Alchemy 等)的"菜谱"是开发者提前写死的——水 + 火 = 蒸汽,这条规则写在代码里。你最多能发现开发者预置好的那几百个组合。
Infinite Craft 没有写死任何菜谱。每次你把两个元素拖到一起:
- 前端把这两个元素的名称发给后端
- 后端调用大语言模型,让它根据这两个词的语义生成一个合理的新元素
- 返回新元素的名称和 emoji
- 前端把新元素渲染在画布上
那不会生成垃圾结果吗
Neal 设计了几层过滤:
- LLM 提示词:不是随便让模型瞎编,而是精心设计的提示词要求模型输出一个"合理的、有趣的"组合
- 元素库去重:如果合成结果已经在你的元素库里了,就不生成重复项
- 历史库校验:和全站所有玩家发现过的元素对比,避免生成过于无聊的结果
但 AI 终究是 AI——有时候合出来的东西完全没有常识逻辑(比如"火山 + 独角兽"可能合出"彩虹岩浆"或者更离谱的东西),而这正是乐趣所在。
"First Discovery"——你可能是全球第一个合出这个的
因为 AI 的开放性,某些组合可能是你第一个试的。Infinite Craft 会标记哪些元素是"首次发现"(First Discovery),并显示一个小徽章。
有些用户专门去搜冷门组合,想成为第一个合出某个奇怪东西的人。2024 年下半年,社区里甚至出现了"首发排行榜"——大家比谁合出的首发元素多。
元素命名和 emoji
每个元素有两样东西:一个英文名字和一个 emoji。AI 会同时生成这两样,格式大致是:
Name: Rainbow Volcano
Emoji: 🌈🌋
Emoji 是辅助表示,名字是元素的唯一标识(搜索靠它)。
为什么中文合不成
Infinite Craft 的 AI 后端只接英文输入。所以:
- 用中文合成组合不会触发 AI 逻辑
- 搜索也只能用英文名
nealfun APK 合集里打开的是网页版 Infinite Craft,界面仍然是英文。这是合集的一个已知限制——合集做了 neal.fun 源站项目的卡片中文翻译,但项目本身的网页界面没有本地化。
AI 服务器的压力
Infinite Craft 爆火的时候,数百万玩家同时在线合成,Neal 自己搭的 AI 后端一度扛不住。他后来做了几次优化,包括缓存高频组合结果、增加后端实例、给热门组合加了"菜谱"兜底(不再每次都调 LLM)。
但核心逻辑没变——绝大多数合成请求还是要走 LLM 生成。