下载 App

【攻略】游戏中接入大语言模型:从乱说话到演戏,踩过的 5 个坑

05/12173 浏览开发交流
前言
我做了一款 AI 驱动的游戏——《审讯室》。
核心玩法很简单:玩家和 AI 驱动的嫌疑人/NPC 自由对话,AI 根据人设实时生成回复,玩家的每一句话都影响剧情走向。
听起来很酷对吧?做起来全是坑。
这篇攻略总结了我在项目中接入大语言模型的实战经验,从单模型崩溃到双模型协作,从对话前言不搭后语到剧本驱动叙事,以及如何用免费模型额度支撑上万次游戏体验。
---
一、痛点篇:LLM 在游戏中的三大难题
痛点 1:LLM 不是演员,是公务员
最初的设想很美好——给 LLM 一个角色设定,它就能演活了。
现实是:你把一份长达 800 字的角色档案喂给它(性格、弱点、背景故事),它确实会照着演。但演出来的是“逐条遵守员工手册的公务员”,而不是“有血有肉的演员”。
症状:
· 每句话都像在填空:“根据我的懦弱性格,我应该说我什么都不知道。”
· 出示证物后,它不会惊讶,而是机械地跳到下一条规则。
· 对话没有连贯性,前面还在害怕,下一句突然变平静。
痛点 2:视角混淆——它到底是谁?
审讯游戏需要给玩家提供“推荐话术”选项。我让 LLM 同时做两件事:
1. 扮演嫌疑人,生成对话
2. 站在警官角度,生成 3 个推荐话术
结果 LLM 经常搞混自己是谁。推荐话术以嫌疑人的口吻输出:“我只是听命行事……”。玩家看到选项直接出戏。
痛点 3:对话像跳针唱片,不连贯
数值驱动的对话系统有个先天缺陷:对话走向完全由隐藏数值(恐惧、信任)决定。数值变了,话题就跳了。前面还在聊账本,出示了一个证物后,嫌疑人突然跳到另一条完全不相关的内容。
症状:
· 出示证物 → 嫌疑人应该先对证物做反应 → 但 LLM 可能直接跳到“你想怎样?”
· 玩家刚威胁完 → 下一轮嫌疑人可能突然变得很配合(因为 trust 数值变化了)
---
二、解决方案篇:从 V1 到 V5 的架构演进
V1(失败版):单一 LLM 全包
一个 LLM 同时承担:角色扮演 + 生成建议 + 判定数值变化。
问题:视角混淆、对话机械、数值占用 LLM 太多“注意力”。
V2(补丁版):加格式约束
在 System Prompt 里加各种格式约束,正反面示例,服务端兜底过滤。
效果:有改善,但治标不治本。同一个模型在两个角色之间反复横跳,天然会混淆。
V3(减负版):LLM 只演戏,数值服务端算
核心改动:
· LLM 不再返回数值(删除 hidden_changes 字段)
· 数值完全由服务端根据规则计算
· 把数值替换为“当前感觉”注入 Prompt(如“你感到胸有成竹,警方拿你没办法”)
效果:角色扮演质量明显提升。但推荐话术视角问题仍然存在。
V4(双模型架构):雇两个 AI,各干各的事
这是最关键的架构升级。
模型 A(嫌疑人):只负责扮演嫌疑人。System Prompt 纯角色设定,不生成任何建议。
模型 B(警官参谋):只负责生成推荐话术。System Prompt 是审讯策略顾问,完全从警官视角出建议。
通信流程:
1. 玩家输入 → 服务端先调模型 A,拿到嫌疑人回应
2. 用 A 的回应调模型 B,拿到推荐话术
3. 组合发给客户端
效果:推荐话术视角问题彻底解决。嫌疑人扮演质量进一步提升(卸掉了“出谋划策”的负担)。
V5(模型池优化):免费模型怎么用
百炼平台有大量模型提供免费额度(一次性/每个模型100 万 Token/注册起3 个月有效)。我把它们全部接入,实现自动切换:
· 所有模型共享一个 model_list
· 共用同一个 current_model_index
· 遇到 403(免费额度用完)→ 自动跳到下一个
· 遇到 400(多模态模型不支持纯文本)→ 初始化时自动过滤
· 新模型直接追加到列表末尾,无需改代码
关键经验:不要区分“嫌疑人专用”和“参谋专用”的模型列表。共用一个池子、共用一个索引,维护成本最低。
---
三、Prompt 工程篇:怎么写才能让 LLM 演好角色
1. 用“终极动机”替代“性格列表”
错误写法:列出大段性格特征(胆小、狡猾、自私、爱女儿……)
正确写法:只给一个终极动机 + 一个演绎铁律
【你的终极动机】
活下来,保护女儿,为自己谋取最大利益。你可以在懦弱、狡猾、自私之间反复横跳。
【你的演绎铁律】
1. 你无权判定自己是否在说谎,你只知道说出这句话对你是否有利。
2. 你的性格不是固定的标签,而是你达成终极动机的工具。
原理:性格列表是“紧箍咒”,LLM 会逐条遵守。终极动机是“驱动引擎”,LLM 会自己想办法达到目的。
2. 用“感觉”替代“数值”
错误写法:把 fear=85、trust=15 注入 Prompt
正确写法:服务端根据数值区间,转换成“当前感觉”:
```
fear < 40 → “你感觉胸有成竹,认为警方拿你没办法”
fear 40-70 → “你开始心虚,但还想再狡辩一下”
fear > 70 → “你惊慌失措,感觉快要瞒不住了”
```
原理:给 LLM 看数字 = 给它看体检报告。给它讲故事 = 给它讲戏。
3. 推荐话术的生成规则
模型 B(警官参谋)的 System Prompt 中加保底规则:
```
第 1 条:直接回应当前对话的话术(关联性最强)
第 2 条:可推进案情的替代问法(关联性强)
第 3 条:保底推进话术(确保总是可用)
```
同时给正反面示例——正面示例全是警官视角的纯对话文本,反面示例全是嫌疑人视角的句子(标注“绝对禁止”)。
---
四、成本控制篇:如何用免费额度支撑上万次游戏
消耗测算
单次 LLM 调用约 1000 Token。一次完整游戏约 20个回合,80 轮对话(双模型各 40 次调用),约 50000 Token。
策略
· 目前百炼平台上约 150 个纯文本模型各有 100 万免费额度
· 共享一个模型列表,自动切换
· 总免费额度约 1.5 亿 Token,可支撑约 5000 次完整游戏
· 加上新的模型刷新,token优惠政策,长期运营基本无压力
双模型成本
模型 B(参谋)的输出很短(只有 3 条建议),整体成本只增加约 30%,不是翻倍。
---
五、总结:做 LLM 游戏的核心经验
1. 不要让一个 LLM 做太多事。角色扮演和策略建议必须分开,双模型架构是最低配置。
2. LLM 是演员,不是计算器。数值判定交给服务端,LLM 只负责根据“当前感觉”演戏。
3. Prompt 要写“动机”不要写“规则”。性格是工具,动机是引擎。
4. 免费额度是宝藏。共用模型池 + 自动切换能让你几乎零成本运营。
5. 证物是叙事的路标。用证物引导剧情线,用节拍表控制叙事节奏,数值只用来判定结局。
---
附:我用的技术栈
· AI API:阿里云百炼(Qwen 系列 + DeepSeek 系列)
· 架构:双模型协作(A 嫌疑人 / B 参谋)
· 通信:RemoteEvent + 服务端 HTTP
· 叙事:剧本驱动(15 条故事线 × 9 节拍)
· 模型池:179 个免费模型,共用索引自动切换
别再烧积分了!从每次 2000 到每次 50 的血泪经验截图
别再烧积分了!从每次 2000 到每次 50 的血泪经验
适用场景:所有在用 TapTap Code 开发游戏的小白 难度:★☆☆☆☆ 背景最近群里总有人"炫耀"一次操作花了几千积分,说实话这不是值得高兴的事——这是在告诉所有人你的开发方式有根本性问题。我也走过这条弯路,所以来说说怎么改。 积分消耗的本质是什么积分 = AI 处理的 token 数量 = 你发给 AI 的内容 + AI 回给你的内容所以烧积分的本质只有两种: 你让 AI 做了大量无效/重
精华
68 赞
21 回复
【新游上线】末日100天截图
【新游上线】末日100天
大家好,我们是《末日100天》的开发者Paul~ 这是一款围绕「生存-经营-轮回」展开的废土策略小游戏:白天分配 3 点行动力经营据点,夜里迎接十天一循环的尸潮,每张地图第 100 天还有一场首领战等着你。五张地图、五大区域机制、可继承的轮回遗产,以及钻石商城里的抽奖机——我们希望每次重开都有一点点新意。 以下是游戏简单介绍: 1.游戏背景 废土历元年,未知病毒席卷全球,城市化为死地。幸存者们退守
9 赞
6 回复
03:06
为了不被斩杀,我只能做到这些了截图
为了不被斩杀,我只能做到这些了
之前一直申请不到计划3,之前说太花哨,后面说体量完成度不足,在我一番小作文下,编辑终于给了我解答,什么原生质感,玩家开局体验啥的。 本来计划2也够用,准备以后再优化了,结果计划2赠送的积分要砍半了,学生党实在消费不起,于是只能再冲一波计划3了 从周六中午到现在一天半时间,优化了一遍角色卡,战斗卡,还有抽卡界面,优化了新手教程,该说不说确实比之前要舒服些。 前半部分为新版,后半部分为旧版。 明天再次
45 赞
9 回复
永恒虚空持续开发日记1——关于游戏中的新名词:场频截图
永恒虚空持续开发日记1——关于游戏中的新名词:场频
写在前边:首先感谢TapTap制造版主大大@汪崽 对于作品潜力的肯定,给与了我积分计划二的权限[表情_不好意思]。这边也在加紧开发改进各种功能中,期望尽快给大家带来成熟的版本。[表情_猫咪举手] 大家好,我是永恒虚空的制作人黑猫不详,大家叫我黑猫就好。从今天开始我将以后置开发日记的形式给大家分享我在TapTap制造中制作的游戏永恒虚空的开发过程,新人希望大家多多关照! 今天先给大家介绍我作品中最重
投票
3 赞
如何提升你游戏中的UI美术水平截图
如何提升你游戏中的UI美术水平
一、请为你的游戏挑选一款合适的字体 很多开发者没有注意到其实UI界面中最重要的元素是字体,一款合适的字体能给整个游戏的界面感官带来蜕变。 请看案例 那么如何挑选适合自己的字体呢? 我总结出了一些小经验可供参考: 黑体:通用 宋体:古风、武侠、修仙 楷体:古风、武侠、修仙 圆体:卡通、动漫、Q版 科技:科幻、未来、电子 顺手分享一个免费可商用字体网站: 当然 如果你不知道自己的游戏适合什么风格
精华
124 赞
44 回复
请教这种题材能做嘛?截图
请教这种题材能做嘛?
在燃尽之前,基本流程已经跑通了,剧本设定也弄完了,设计了5条线8个结局 核心是调用百炼的API,自主生成对话,以玩家输入为主,也提供推荐话术 但是长草期嘛,准备回头好好磨的时候发现 黑帮/警官/贪污/高层/[表情_流口水] 好像每一个都在雷点上 第一天改改改,剧情改成科技公司技术泄密,这下应该稳了没问题了 第二天救济粮还没下来,做背景,弄UI 第三天积分计划也没升,弄什么呢[表情_流口水] 不如以
7 赞
1 回复
关于制作出质量很高的横版战斗角色的方法截图
关于制作出质量很高的横版战斗角色的方法
其实全篇就一句话,角色为啥做起来这么好看,因为我一帧一帧K的。 在做角色之前,我们需要一个角色的设计稿,这个东西很简单,你把人设写好剩下的交给AI就行了,所有图片,序列帧都可以让AI绘制和处理,学会绘图是你要制作高质量游戏的第一课。 这里拿我在做的角色举例,他的参考图是这样: 当你拥有了一个角色以后,就要想办法让她动起来了。 那么如何让她动起来,答案是序列帧。 在此之前你需要知道,最容易出现一个误
40 赞
12 回复
2D 等轴测视角:完整理论截图
2D 等轴测视角:完整理论
2D 等轴测视角:完整理论 一、视角的本质 什么是等轴测 人站在高处斜着往下看地面,地面上的方格子不再是正方形,而变成了菱形。这就是等轴测的视觉本质。 俯视(正上方看下去): 等轴测(斜上方看下去): ┌──┬──┬──┐ ◇ ├──┼──┼──┤ ◇ ◇ ├──┼──┼──┤ ◇ ◇ ◇ └──┴──┴──┘ ◇ ◇ ◇ 正方形网格经过旋转 + 压缩,变成了菱形网格。 为什么是 2:1
6 赞
【UI教程】如何将已有的效果图应用为实际的UI界面截图
【UI教程】如何将已有的效果图应用为实际的UI界面
在经过了一些折腾和比较折磨的尝试后,我总算是摸清楚了嗒啦啦怎么把UI效果图转换为实际游戏中的UI组件,今天就给大家带来这部分的经验分享。 tips:1.本篇教程需要各位掌握最基本的ps使用,具体的操作部分我会大致讲解,但仍需各位自行学习ps的基本操作,部分可以由ai代劳的环节我会注明。 2.本篇教程需要在以我前两篇教程作为前置环节,请在阅读这两篇前置教程后再进行本篇教程内容的学习 在按照前
11 赞
5 回复
闷头做了200关,求各位大佬进来把把关截图
闷头做了200关,求各位大佬进来把把关
TapTap 的各位论坛大佬、同道前辈们,大家好! 我是一名还在摸索中的新人。终于打磨了一款能勉强拿得出手的小作品——《One Line》。 真的,哪怕只靠一根线,也能享受到解谜的快感。 这游戏的灵感其实特别简单:因为我自己也很喜欢玩简单的,不带脑子点点点的游戏。 当市面上很多游戏都在做加法时,我特别想试试做一次彻底的减法。所以在《One Line》里,没有复杂的数值养成,不需要抽卡和氪金,更没有
3 赞
5 回复