聚乙烯冷缠带厂家
免费服务热线

Free service

hotline

010-00000000
聚乙烯冷缠带厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

分享为游戏创造出色NPC的可用软件和方法

发布时间:2021-01-21 19:36:11 阅读: 来源:聚乙烯冷缠带厂家

是否还有玩家记得《塞尔达传说2: 林克的冒险》?这是面向第一代NES的一款出色的奇幻游戏,并且在当时(1989年)我几乎天天晚上都沉浸于这款游戏中。游戏中的非玩家角色非常简单,例如一个村民将提示玩家前往下一个地牢的方向。而在最新的《塞尔达传说:天空之剑》(2011年)中,我们发现任天堂的NPC也并未做出较大的改进,即便在过去这20几年时间里计算机和游戏开发都得到了较大的发展。

Zelda(from gamasutra)

上图是从1987年到2011年的任天堂《塞尔达传说》系列,我们可以从图像上看到巨大的飞跃,但是对话中却并非如此。

如今有许多计算机和在线游戏的NPC都比《塞尔达传说》来得优秀,后者的NPC是遵循着更加复杂的分支对话树。而玩家经常需要基于多种选择(就像《天空之剑》那样)或关键词识别去穿越这棵对话树。这里还存在许多改善空间,特别是让玩家能够打出任何自己想要的内容,并在对话中与NPC进行交流,而不是无止尽地接收有限的预制陈述内容。根据几个月前Gamasutra上所刊登的一篇文章,与NPC交流是未来游戏开发需要重视的一大领域之一。

可用软件

我们可以使用各种不同的方法去创造NPC并将其整合到游戏中。我们可以使用各种视觉对话引擎,如Chat Mapper能让玩家描绘出自己的NPC并规划分支对话。同时也有一种更加特别的方法,即使用定做的XML文件去计划对话,从而确保它能有效地整合到其余的游戏内容中。交互式小说是另外一个相关领域。即存在特别专注于引擎对话的chatbot。他们将推动自由文本输入并创造出各种输出内容。而本篇文章将着重讨论NPC的对话部分,所以将只陈述chatbots的相关内容。

creating-npcs-chatmapper(from gamasutra)

技能组合

使用这些方法所需要的技能取决于开发者和作者。这是一个有趣且具有创造性的过程。但是也有可能需要花些时间。开发者可能会觉得写作元素过于沉闷,而作者可能会受不了其中的逻辑性。所以如果是一整个团队的人共同使用的话,这也许就是一种很棒的方法。

该搜索什么

创造NPC的第一个难点便是明确需要在谷歌中寻找什么。你可以尝试着搜索“NPC创造者”或一些类似的内容。但有可能因此搜出一些用于生成角色扮演游戏的随机NPC(如生命值和武器类型之类的)的网站。

相反地,尝试着去搜索“chatbot创造者”。“chatbot”这一术语的的范围有别于“NPC”。一方面,它包含着网页和智能手机的虚拟助手——不管是宜家的Anna还是苹果的Siri;另一方面是关于图灵测试的更加学术性的挑战,以此检测人工智能是否能够模仿人类。但是因为现在的游戏似乎缺少了NPC聊天功能,所以chatbot便是我们完善NPC的好方法。搜索“bot”的话我们也许还能找到“chatbots”,但是如果搜索的是“bot创造者”,我们得到的结果便有可能是3D打印机或网络爬虫。

chatbot软件

在本篇文章的最后我们需要选择我所遇到过的chatbot制造商,其中将包括我曾帮助开发的对象。他们都是基于某种类型的文件创造(如文本,XML或电子数据表),然后使用软件进行加工并将其转变成能够用于聊天的bot。这种方法总是直接整合玩家的输入(如“哪条路是通向地牢”?)与chatbot的输出(“左边的第二个洞穴”)。问题就在于,关于“哪条路是通向地牢”存在着上百万种独特的询问方式,而“左边的第二个洞穴”也有上百种回答方式。开发者/作者的目标是在合理的时间内尽可能覆盖所有的这些内容。而最简单的方法便是在用户输入中寻找关键词“地牢”,然后始终给出相同的回应。但这与现在游戏的NPC做法非常相似,并且可以不使用任何第三方软件而进行编写。

挑战

因此一大挑战便是创造出可以无需输入内容便能识别上千,甚至是数百万输入内容的chatbot,并呈现出各种输出变量。

另外一个挑战便是如何处理分支脚本,即一个问题引出其它问题。以下没有一个chatbot拥有像上述对话引擎那样的视觉数据输入格式,一是因为这会限制它们的灵活性,其次是因为他们需要花较长时间进行编程。所以他们选择能够设置并获得变量的系统,并基于这些变量而提供各种不同的输出内容。

Cleverscript

Cleverscript是由大受欢迎的Cleverbot的创造公司所创造的。它使用的是电子数据表格式,并且拥有非常强大的工具能够阻止按并维护变量。我们可以在Cleverscript网站上加载电子数据表,并将其转变成能够进行测试的bot。电子数据表中的格式如下:

input hello hello / hi / hi there

output hello Hello!

creating-npcs-skyfall(from gamasutra)

为了能在自己的网站或应用上使用bot,你必须花钱访问网络服务,或请求程序库包含智能手机项目。Cleverscript的一大优势便是包含了一个迷你Cleverbot引擎,也就意味着你无需编写所有对话。

AIML

AIML代表人工智能标记语言。这是用于创造chatbot的XML格式。该格式如下:

WHAT IS YOUR NAME

My name is John.

最有名的AIML chatbot是ALICE,即人工语言网络计算机实体。当你创造了自己的AIML bot后,你便能够将ALICE的AIML以及其它AIML用户所贡献的程序库(包含各种欧洲语言)整合进去。在创造了XML文件后你需要采用某些方法去运行它。最简单的方法便是Pandora Bots所提供的免费网络服务。也存在各种解释器能够用于不同程序语言中,包括C++和Java,让你能够独自运行。

ChatScript

ChatScript是一款免费的开源C++程序库。你可以面向任何平台进行编译。游戏开发商Outfit 7便是使用ChatScript去完善他们大受欢迎的《Tom Loves Angela app》(注:面向谷歌的Android和iOS平台)。开发者是使用包含了预期用户输入和相关bot输出内容列表的文本文件去创造bot。就像是:

u: (what are you) ^keep() ^repeat() I am a bot.

其格式包含了再次使用文本并记住用户喜好的方法。你可以将文件编译到自己的游戏中,并在智能手机或网络服务器上直接运行。

建议

因为我参与了Cleverscript的开发,所以我会更倾向于于这一软件。我认为它比其它软件更灵活且更加强大,包含了高级的变量系统和直观的组织语言。它并不需要使用什么数据输入,并能够有效地处理分支脚本,尽管视觉数据输入格式将对此进行处理。而在所有免费软件中我则支持更紧凑的ChatScript格式,尽管它也更具有技巧性。我个人更希望解释器是由想出输入格式的那个人进行编写。这就意味着格式的改变与添加是与软件本身紧密联系在一起的。

坦克咆哮

异度之门无限钻石版

靠谱助手部落冲突辅助