Articles of 对话框树

在HaxeFlixel中,我如何避免硬编码对话?

我打算在Haxe Flixel开发一个视觉小说,想知道是否有一个更简单的方法来添加对话,而不是在每个方块中对它们进行硬编码。 我不知道如果我可以导入一个txt文件的对话或类似的东西,所以我可以简单地更改txt文件,而不是必须检查每个拼写错误的代码。

用于select对话框的XML格式

我试图找出一个很好的方法来实现对话框(即谈判,而不是用户界面)。 我的想法到目前为止: 我将对话视为句子树(或更好的是一个森林),所以我认为XML是一个不错的select。 每个NPC都会有一个XML文件。 和更多的文件通用的NPC。 例如:Peter.xml,Linda.xml,Citizen.xml,Soldier.xml等 这些文件看起来像这样: <?xml version="1.0" encoding="UTF-8"?> <dialog npcName="skeleton"> <ops> <q>Hi, how are you?</q> <a>Oh, thank you! It's been so long since I was last asked about that…</a> <a>Well, so and so. And you?</a> <ops> <q>Oh, I'm fine. But you look starving. I'll fetch some food for you.</q> <a questActivate="eggToSkeleton">Don't worry. In […]

C#冒险游戏 – 简单对话系统

对于学校来说,我们必须在C#(Visual Studio 2015)上用我们的老师制作的一个自定义的游戏引擎做一个小型的冒险游戏。 现在我想实现一个Liz(主角)和她的泰迪熊之间的小对话系统。 我希望它的工作方式是使用button。 熊开始与“我不能让你通过利兹”。 然后玩家可以select三个选项(它们是button)1. [问题] 2. [需求] 3. [观察]。 我只是不知道如何实现这一点,什么是做这种代码最有效的方式。 为了更清楚一点,我添加了需要实现的整个对话框的图像。 任何帮助/提示将受到欢迎! 提前致谢

devise合作对话系统的陷阱

我喜欢视觉小说和“质量效应”等RPG游戏的复杂分支结构。 但我也喜欢多人合作游戏。 所以我想,“如果有多人对话系统呢? 我的想法有几种方法可行: 在决定点,所有参与者都投票决定要做什么。 在胜出的一面,随机select一个真正“说话”的队员。 在决定点,随机select一个玩家作出决定。 在一个决定点上,一个选手在一个周期中被选中来作出对该组的决定。 将决定权授予具有最相关技能的玩家(即stream氓获得小偷对话选项) 显然这可能变得复杂。 但是我仍然想要探索一下这个想法。 我担心在几个基本方面的平衡: 一个玩家主宰select池(对其他玩家无聊) 对话感觉强迫不相关的玩家(打破沉浸) 即使大多数党会select更好的select(less数的暴政) 一个球员往往会被取消(大多数的暴政) 我的哪些力学建议最能避免我提到的陷阱? 还是有没有更好的主意,我没有考虑? 还请重点介绍可能会惹恼玩家的机制。

RPG:存储对话框

我正在创建一个单人RPG游戏。 我最初是在一个JS对象中存储NPC对话框。 我可以循环冗长的对话框中的数组,如我所愿。 我也可以用K:V对来存储对象。 这就是说,以下三种方法管理,存储和检索对话更容易/更快 : 另外,你能告诉我为什么一个人比其他人更擅长运行一个单独的网页RPG: 一个JS对象: var dialog = { quests : { quest1 : { NPCName: { "Task 1 – Introductions" : { "dialog" : [ "I'm Pedro", "Welcome to my neighborhood", etc…, ], "wordBank" : { "Hola" : "Hello", "Como" : "What", } 在纯JSON中: { "quests" : { "quest1" : { […]

对话树和问题locking/解锁

我一直在管理对话树问题。 我使用PAWN作为脚本语言(不幸的是,我没有其他select),我使用MySQL数据库来存储用户和游戏数据。 我目前的问题是使用SQL存储游戏对话树。 目前,我有下面的表格: TABLE NAME: dialogue ID: global ID of conversation option Prompt: question or sentence shown on player's screen Answer: NPC's answer [some other stuff related to conditions and mood checks, etc.] 现在,我的问题是以下。 假设我问候NPC,这将是这样的: ID: 1 Prompt: Hello there. Answer: Hi, how's it going? 玩家迎接NPC后,我希望我的对话树能够进步。 这不是问题,我只是使用一个额外的SQL表: TABLE NAME: dialoge_unlock_lock ID: global ID of […]

如何实现脚本事件?

我正在使用C ++(使用SDL)构建一个大学项目的游戏,我想弄清楚如何在玩家做某事或发生一些事情时发生事件。 我对如何做到这一点有了一些想法,但是我不想去反对这种做法。 现在我有一个叫做Obj的类,敌人,物品和玩家都是子类,我的想法是给它添加3个公共variables: class Obj{ int eventDeath,eventTouch,eventTalk,eventMeet; } 然后我可以用eventDeath = 1创建一个Obj,当它死的时候会触发事件(1)。 事件()会是这样的: void event(int n){ switch(n){ case 1: dialog("I'm dying"); break; } } 当玩家走过某个特定的地方时,我也可以在特定的地方添加隐形的“Obj”。 我不知道这是否是一个好主意,但我想不出有其他办法。 通常如何做? 另外我如何跟踪已经发生的事件呢?

使每个游戏的对话不同

我正在做一个小小的演示游戏,大约一半的NPC在一个小镇上有一个职业,还有一个个性。 我试图让游戏在程序上创造对话,所以当一个NPC谈论他们所做的事情时,他们用一些个性来描述它。 例如,我可能有一个农民是一个过分的成功者。 他可能会有这样的对话:“我从太阳到太阳的农场,而且我有最多的牛!” 在另一个化身中,一个聪明的农民可能会说,“嗨,我的农场有五头母牛,运行得非常有效率。” 在演示中,小镇将由程序生成,只有less数的市民(约十或十二)。 有的是农民,有的是农民。 一两个将是商人/店主。 当玩家与其中一些人谈话时,NPC可能会问候玩家并说出他们的所作所为。 或者他们可以描述自己,也可以描述自己的城市。 有时候,全国人大也会谈一谈他们的家庭。 我曾经想过使用一个模板系统来填充一些对话框。 但是我希望每个句子的句子都有所不同。 我也想过用词性来创造句子。 使用词类(至less使用NLTK )的问题是我需要某种forms的语法将它们串在一起,这主要是为了一个小的演示。 另一种select是使用自然语言生成器(NLG),但是这正在进入高级AI领域。 我想远离这一点。 所以我应该使用模板系统进行对话(我尝试过使用Rant ,但是我遇到了一些非常复杂的语法)? 或者,我是否应该使用一个使用词性的对话系统,并用某种语法把它们串起来? 为了什么是值得的,我把NPC限制在一群人的身上。 此外,他们所说的一些是基于他们的统计。 所以如果他们的智力低下,但是他们的魅力很高,也许他们会成为一个排外者,或者是一个过分的成功者。

对话树如何工作?

也就是说,当子通话结束时,什么与话路之间的连接以及如何移动? 如果您有任何C#中的基本对话框树的示例,请将它们发布。

为什么硬编码内容不好?

我知道大多数游戏存储文件中的对话文本,但我也看到一些基于文本的游戏实际上将内容(地图,select,可能的玩家命令,故事文本)编程到游戏代码中。 我可以想到几个原因,但甚至连文本游戏都将文件保存在程序之外的主要原因是什么? 实现细节在保持stream行的XML格式之类的内容,parsing它,然后基于从XML文件创建的variables来渲染映射/显示文本,以及完全放弃XML文件之间几乎没有什么不同。 它们都以输出到屏幕的string结束。 差异只是表示法? 有些游戏甚至在代码中保存graphics(ASCII艺术?)。 我知道这是不对的,我可以猜出为什么它不好,但不知道为什么的主要原因。 程序之外的大部分内容是非常受欢迎的。 即使是矮人堡垒也不使用实际的ASCII字符,而是将ASCII字符的图像加载到内存中。 我主要问,因为它是一个PITA创建,parsing和处理XML文件。 你知道…相比,让每个独特的地下城(内容)自己的类的懒惰的select。