大家好,我是2023寻找游戏大模王AI原生应用大赛的Top1荆轲刺秦王团队的小罗,很高兴能在这里与大家分享我们这次比赛的经验,同时也希望以后有机会可以和大家一起交流学习~
左二是我
首先,怀着对创作游戏和学习大模型的那么一份憧憬,作为Datawhale鲸英助教的我大胆的报名了Datawhale智能云大模型游戏应用开发活动的助教招募,准备和学习者一起探索大模型在游戏领域的应用,内心还是很希望能玩上自己亲手做的游戏~如下图所示我是二群的专业助教。
在学习群里,大家根据以往组队的经验,主动进行自我介绍,包含了所具备的技能点,想做的方向、组队的意向等。我也主动表达了愿意组队,随后,就被后来的队员拉进了一个小群,集齐队伍就开始了属于我们的游戏开发故事。
我们最开始讨论的是我们想要开发什么样的游戏以及如何分工。尽管我们六个人都没有游戏开发相关的经验,但我们都怀着学习和实践的态度,并且愿意投入时间和精力来学习和运用自己所学的知识来创建我们自己的游戏。
于是,我们开始了一次次头脑风暴和协作来不断优化我们的想法和项目计划。我们相信,通过团队的努力和持续的学习,我们一定能够开发出一款与众不同的、属于自己的游戏~
从赛事说明中可以看出,这个比赛给参赛者提供了很高的自由度,可以任意发挥脑洞进行创作。所以最初,我们团队有很多想法,包括做三体游戏、破壁人和面壁者、无限流CYOA游戏等。但由于时间和技能点的限制,我们决定先开发一款基于文字+图片的2D游戏,再逐步扩展剧情、增加玩法以及优化美术。以下是我们11.20头脑风暴的一点记录。
随后,我们在讨论游戏的玩法时想到了将我们的小游戏与历史故事结合起来。正好,我们团队中有一位擅长写剧本的成员,可以为我们的游戏提供精彩的故事和角色!《荆轲刺秦王》是一部广为人知的历史经典故事,我们认为,如果能通过AI与这些经典历史人物进行交流,将会非常有意思(我真的很想知道项羽为何乌江不渡?)。在技术方面,由于团队成员之前没有游戏开发经验,所以最初我们考虑的是先去学Unity的基本操作,再使用Unity进行开发,并逐步进行优化。
与此同时,作为助教,我在前期整理了RPG游戏的相关案例开发流程教程。这无形中为我们几个没有接触过游戏开发的成员提供了一条新的思路。我们可以直接使用RPG maker来创建场景变换、人物移动等,而不必重新学习Unity,从而减轻了一定的代码工作负担。这种方法可以说是另辟蹊径,为我们游戏开发过程提供了新的可能性。感兴趣的小伙伴可以看看,RPG maker小白入门教程:https://saeikvpfb9v.feishu.cn/docx/XPFxdicdpoVUQ8xp6PEcLnqcntd?from=from_copylink
在游戏开发过程中,鉴于RPG maker在实现剧本部分内容方面存在困难,团队决定结合RPG游戏的特点,设想了一个更为宏大的背景,那就是加入两个势力的博弈,增加更丰富的剧情,让玩家和AI的交互具有更多的主观能动性。此外,我们决定使用AI生成人物立绘、让AI生成游戏情节等方式,使游戏变得更加丰富。下图所示是我们利用文心大模型生成的游戏人物宁姬的形象立绘(真的好美,我好爱这版宁姬):
接下来,我们考虑如何将游戏与AI结合起来,为玩家提供更具沉浸感的体验,同时也是这次比赛的要求之一。我们将此过程分为四个模块,包括游戏与大模型的结合、接入大模型接口、使用RPG Maker插件以及开发自己的游戏npc。在这些模块中,生成个性化的AI NPC和利用大模型进行事件流控制是关键步骤。通过这样的方法,我们能够赋予游戏中的NPC独特的情感、行为方式和对话能力,从而提升游戏的沉浸感!
prompt设计
为了生成拥有独特性格和背景故事的NPC,我们使用自定义Prompt进行设计。以下是我们在设计Prompt时的一些讨论和想法:
插件开发
我们利用了RPG Maker和百度智能云千帆大模型来开发一个NPC对话插件。然而,我们遇到了一个问题,即无法在流程上进行控制,导致剧情无法推进,只能进行一次对话而无法连续对话。为了解决这个问题,我们开发了一个根据历史聊天记录进行流程控制的插件,使角色可以与AI NPC连续对话。同时,我们还通过对话和事件驱动的方式来增强沉浸感和游戏体验。这样的优化大大的提升了游戏的体验效果。下图展示了玩家与AInpc对话输出的情况,让你能够体验仿佛就在与荆轲本人对话一般的真实感受!
在前两个插件完成之后,在我们的《荆轲刺秦王》游戏的初版和升级版都已经开发完成的情况下,我和元贞萌生了一个大胆的想法——那就是制作一款大侦探游戏,这也是我前段时间一直心心念念的游戏。受到《荆轲刺秦王》的开发经验启发,我们希望让多个NPC之间发生的事件和对话内容能够共享。然而,要让游戏中的NPC通过积累事实记忆并更真实地生活在游戏世界中,成为了当时我们面临的最大难题。
例如上图,这个人物设定为艾米莉亚,但当与她对话时却自称为汤姆,这就是出现了记忆混乱的情况,真的开始怀疑自己是不是来搞笑的了。
再比如,跟它对话它说自己是人工智能语言模型,直接就跳出了游戏人物设定,这会让玩家直接出戏,从而影响游戏的整体体验!
为了解决这些问题,我和元贞在学习群里询问,看有没有什么好的解决方法让在这个圆桌上的所有AI npc都能知道当时侦探与每一位AInpc角色的所有对话,实现共享记忆。经过讨论最终获得了斯坦福小镇的思路,我们恍然大悟!在开始和npc对话的代码之前先调用了一次千帆API。通过分析之前的对话和现有的事实性文本(从文本文件中读取),使千帆生成了事实性文本描述,并将生成的文本保存到本地的文本文件中。然后,我们将这些事实性文本加载到system中,作为额外的一段Prompt,再与对话一起传递给模型,这样做的目的是让模型能够更好地理解上下文,并实现共享记忆的效果。部分代码截图,是我改的!
以下是我们文件中的事实性文本和对应的文本描述:
也就是说我们又开发了一个事实构造与记忆共享的插件,利用了事实构建、场景发掘和知识广播的技术,这使得所有AI角色都能了解我们跟其他角色之间的对话内容,类似于剧本杀或者狼人杀的机制。这样一来,NPC们可以根据积累的事实记忆进行推理和互动,从而增加了游戏的复杂性和真实感。
这一插件为我们的大侦探游戏带来了全新的可能性,使得NPC之间的交互更加有趣和出人意料。玩家可以通过与NPC对话和推理事实来解开谜题找出真凶,体验到更加沉浸式的游戏体验。也就是说i人玩家可以一个人沉浸式的体验剧本杀的快乐啦~
最终我们是提交了三个视频如下(算两个游戏,第二个视频是在第一个视频的基础上升级剧情)
1.【打破次元壁,用百度千帆大模型开发一款《穿越秦朝·荆轲刺秦王》AI NPC的剧情触发游戏!】 https://www.bilibili.com/video/BV1iC4y1c7S5/?share_source=copy_web&vd_source=2a95d712e9b5a83a8e0609e11255fb80
2.【【寻找游戏大模王】《穿越秦朝:荆轲刺秦王》全新更新!揭秘新剧情与开放源代码!-哔哩哔哩】 https://b23.tv/9dJbHiH
3.【【寻找游戏大魔王】🔍 新游戏速递:48小时极限开发的款大侦探解密游戏v1.0《庄园密案——谁是真凶?》-哔哩哔哩】 https://b23.tv/1BS2DHS
包括我们的插件代码也有开源,地址:https://github.com/npcAiGame/npcAiGame
结果
现在回想,还是超级开心这个结果真的很出乎我的意料,看到我们两款游戏demo能够进入优质作品前十五名,并且《荆轲刺秦王》最终赢得了2023百度智能云游戏大赛的一等奖,这真是太棒了!!!!(虽然在我学校加不了量化
1.热爱可以战胜一切!我从未想过可以和元贞在48小时内合作完成一个大侦探游戏demo的制作。前段时间我对侦探解密和桌游卡牌策略类游戏非常着迷,而恰好我有机会去开发属于自己的大侦探解密游戏。这真的让我感到非常激动,我真的全力以赴地想要实现它,熬夜也要将它肝出来!
12月8日已经是比赛截止日期当天了,但我们的大侦探游戏仍在开发中,并且遇到的关键问题还没有完全解决。现在回想起来,真的是太刺激了!
2.完成比完美更重要!相信自己,相信队友!夸奖和鼓励真的很重要!一开始,我也曾感到迷茫和担心自己会三分钟热度,但是在群里,像Amy姐和煜神他们一直在鼓励我们,鼓励我们敢于开始。通过不断尝试、试错和摸索来提升自己,即使结果并不完美,也是一种宝贵的历练和成长。当你做出一点小小的成绩时,团队中的每个人都会夸奖和称赞你,这种感觉非常棒,也会激励你继续努力往后做下去!
3.当你真正着手做的时候思路才变得逐渐清晰起来,行动,可以克服一切犹疑和思想障碍,带你走向真实的成功!
4.意外发现自己还蛮有策划天赋?被水哥称赞比一些游戏主策还厉害开心耶哈哈(斯突然意识到自己以前曾是学校英语爱好者协会策划部一员,没白费老部长的一番苦心教导~
5.有一个好的平台事半功倍!是Datawhale把我们这些志同道合的人聚集在一起,一起学习、讨论和创造。回想起来,真的感触良多!
非常感谢Datawhale提供这样一个平台,正是因为有了Datawhale,我们才得以相遇,有机会走到一起成为一个Team,因为Datawhale&&在问&&chatTests的支持,我们才能获得这个Top1,并且遥遥领先!!!
同时感谢本次比赛的主办方-百度,提供了百度智能云千帆大模型平台,让我们将大模型技术融入游戏设计、创造出独一无二的游戏世界引爆创意的火花并重新定义游戏体验。以及感谢百度智能云游戏大赛的评审团队,他们对我们的作品给予了高度评价和认可。这为我们的项目带来更多的关注和机会,让更多的人了解和使用我们的创意和技术。
最后,感谢我们团队中的每一位成员,从完成这个比赛,到入选前15,最后荣获Top1,每一次成就都凝聚着我们每一位成员的付出与默契协作。Datawhale 不仅仅是一个开源平台,它更像是一座灯塔,引领着我们这群对知识有着无尽渴望的探索者,驶向更加广阔的技术海洋。正是 Datawhale 的理念和使命,鼓励并推动了开源文化的发展,让我们这样的团队能够在开放、共享的环境中成长,不断学习和进步。在这个平台上,我们不仅提升了知识和技能,而且更重要的是,我们还培养了团队协作和共同创造的价值观念,恰如那句“Datawhale在学习路上伴你同行,我们本可以不那么孤单”。Datawhale 的每一次活动、每一次挑战,都激励着我们去超越自我,去追求卓越~
个平台上,我们不仅提升了知识和技能,而且更重要的是,我们还培养了团队协作和共同创造的价值观念,恰如那句“Datawhale在学习路上伴你同行,我们本可以不那么孤单”。Datawhale 的每一次活动、每一次挑战,都激励着我们去超越自我,去追求卓越~