先用一个虚构例子说明问题的形状。某款游戏里有一个叫“守灯人的请求”的任务,它在游戏的不同时期出现过三次。玩家在搜索框里只输入了这六个字,系统面前是三个候选实体,而它们之间的差异,一个词云或一个向量相似度是分不出来的,因为名字本身完全一致。
三个同名任务
| 候选 | 所属版本 | 发生地图 | 开启阶段 | 要做的事 |
|---|---|---|---|---|
| A | 初版(已被重制取代) | 潮汐港 | 序章之后 | 把一封信送到灯塔 |
| B | 重制版主线 | 灰烬回廊 | 主线第四章 | 收集三块灯芯碎片并修复灯塔 |
| C | 限时活动 | 雾松林 | 活动期间、等级达到20 | 护送守灯人穿过夜间区域 |
三行里,“任务名”这一列是相同的,能起到区分作用的是版本、地图、阶段三列。所以搜索的第一个设计取舍就是:不要让任务名成为最先被匹配的信号,而要把它放在筛选链的最后一环。这是自然语言游戏搜索不能只做关键词匹配的又一个具体原因。
消解的顺序:从最便宜、最确定的信号开始
实体消解(Entity Resolution,即判断一个名字到底指向图谱里的哪个实体)在游戏场景里有一个好处:候选往往是有限的、可枚举的。爱游戏AI的做法是按下面的顺序一层层缩小范围。
- 游戏版本。玩家的客户端版本或所选的游戏版本,是最硬的过滤条件。如果玩家在重制版里,候选A可以直接排除,即使它的攻略页面点击量最高。
- 地图与位置。玩家上一次提到的地点,或存档摘要里的当前区域。搜索词里出现“雾松林”,候选C基本就确定了。
- 任务阶段。玩家是否已经完成第三章,是否已经拿到第一块灯芯碎片。阶段既能排除还没开启的任务,也能把“怎么做”改写成“下一步做什么”。
- 任务名与别名。最后才做名称比对,并且顺带处理简称、旧译名和错别字。
这个顺序的原因很简单:前三项是结构化字段,出错的代价低、可验证;名称匹配则是最模糊的一环,放在前面反而会把噪声传给后面。
什么时候默认,什么时候追问
消解之后剩下的候选数量,决定系统的行为。
- 只剩一个:直接回答,并在答案顶部写明“按重制版、灰烬回廊、主线第四章”回答,让玩家一眼看到系统的假设,错了可以马上纠正。
- 剩下多个,但步骤基本一致:直接合并回答,不打扰玩家。
- 剩下多个,且步骤会互相冲突:追问一次,问题写得尽量具体,比如“你现在是在灰烬回廊,还是在雾松林活动里?”,提供选项而不是让玩家自己打字。
- 信息完全缺失:先给按最新版本回答的默认结果,同时给出切换版本的入口。
追问要克制。如果每个搜索都先反问三个问题,玩家会觉得搜索框变成了审讯室。我们倾向于“先猜、后标注、再纠正”,只有猜错的代价足够大(比如照着做会消耗一次性道具)才停下来问。
旧攻略:降权,而不是删除
很多玩家的真实需求恰恰是看旧版本,比如还在玩老版本的人,或者想对比改动的人。所以旧内容不应被直接删掉,而应当带着版本信息存在。爱游戏AI对旧内容的处理有三条:
- 每条攻略、每个任务实体都带着适用版本范围,没有版本标记的内容默认视为“未验证”。
- 检索排序时,版本与玩家版本一致的内容加权,不一致的降权,降权幅度由该内容涉及的变化大小决定,而不是一刀切。
- 展示时把版本写在最显眼的位置,如果内容比玩家版本旧,用一句话说明“这份步骤适用于旧版,当前版本可能已经改动”。
关于版本的更新和失效如何在图谱里表示,可以进一步看游戏知识图谱如何随版本更新管理旧装备和新任务。
几个容易出错的边界
第一,“补丁版本”不等于“任务版本”。一个小补丁可能只改了奖励数值,任务的步骤没变;把它当作全新版本,会让大量仍然有效的攻略被错误降权。所以版本字段要区分“步骤有变化”和“仅数值有变化”。
第二,同一个任务在不同阶段的含义可能不同。玩家已经做了一半时搜索“怎么做”,答案应该是剩下的步骤;如果系统仍然从头讲,玩家会怀疑答案不适用于自己。
第三,玩家自己也可能不知道自己在哪个版本。爱游戏App里可以读取所选游戏的版本设置,读不到时不应猜测,而应提示玩家确认。
第四,活动任务有有效期。活动结束后它仍然存在于图谱里,但不应再作为“默认答案”出现,只在玩家明确搜索历史活动时展示。
版本字段该怎么存
版本字段本身也有设计取舍。只存一个“版本号”不够用,我们倾向于同时存三项:任务首次出现的版本、最近一次步骤发生变化的版本、以及任务被移除或替换的版本(尚在线则为空)。有了这三项,系统才能回答“这个任务在我的版本里是否存在”以及“我手里的旧攻略是否仍然有效”两个不同的问题。缺少任何一项,都会把“不知道”悄悄变成“没变化”。
一次完整的走查
假设示例:玩家在重制版里已完成第三章,搜索“守灯人的请求”。系统先按版本排除A,再看到玩家存档里的区域是灰烬回廊,排除C,阶段字段显示玩家已经拿到一块灯芯碎片。于是答案的第一行写着“重制版主线第四章:还需要收集两块灯芯碎片”,后面才是具体位置与步骤,末尾有一个折叠项写着“想看初版或活动任务?”。整个过程中没有追问,但每一个假设都摆在玩家能看到的地方。这比一个准确率不确定的黑箱排序更容易被信任,也更容易被纠正。