Articles of 基于文本的

我怎么能揭示文本冒险游戏的引擎API?

在为文本冒险开发引擎的同时,我仍然不确定如何向开发人员/作者展示它提供的API。 我现在的两个概念是: 运行一个执行JS脚本文件的小型JS引擎(相对于完整的DSL),开发人员/作者可以访问定义良好的函数和类子集。 parsing定义关卡,对象,实体……的XML文件,这样如果开发者/作者坚持关于这些文件结构的约定,就不需要真正的编程知识。 这些方法中的哪一个(或者我还没有想过的其他方法)更可能被推荐?

添加移动到基于文本的RPG战斗

大纲 我有一个基于文本的RPG的骨骼 – 玩家可以通过分支故事情节进行并激活一些简单的事件(recieivng / give / trading items)。 当我devise战斗系统(很明显是基于回合)时,我决定让玩家能够在战斗中“移动”是一件很好的事情,也就是说一个沉重的盔甲战士直接向敌人冲锋,但是游侠应该select他的敌人从远处离开,并试图在敌人接近的时候转移到一个更加有利的位置。 主要问题 我不希望让脚步队具有较高的躲避攻击概率(为了弥补他们的低级防御),而是让他们select在战斗区域内移动到不同的地点(跳到岩石顶部,爬上那棵树等),使其更加战术化,但已经被打败了。 任何人都可以提出一种方法来处理这个(伪代码会很好)? 我正在使用C ++编写程序,如果有人想知道。

用于在PVP游戏中创建新事件的时间系列

这更像是一个math问题,但我想这是最好的问题。 我正在研究PVP概念,我有以下问题。 两名球员之间有一场“战斗”,两人都在比赛开始前就已经开始行动了。 所以,在战斗中,他们只是看屏幕和描述事件的文字。 这个战斗需要30分钟,在这段时间内攻击/防守文本事件正在出现。 平均来说,我有大约5个主要事件和3个次要事件。 当战斗开始时,代码知道主要事件的数量,但不是次要的。 他们在飞行中计算。 这个过程就好像, newEventTime = previousEventTime + formulaForRandomTimeInterval 我所要做的就是建立这个公式,避免在战斗中留下很大的空白时间,并且避免在很短的时间内占用很多时间。 另外,随着时间的stream逝,我希望有更多的活动来增加兴趣。 正在考虑诸如: formulaForRandomTimeInterval = (battle_time*2/main_events)*random(0,1) 其中battle_time = 30 , main_events这个战斗的号码。 任何想法更好的解决scheme? 编辑 对困惑感到抱歉。 以下是关于它的更多细节。 一个事件的例子: 在3'玩家A受到攻击并造成45点伤害。 (主要活动) 在8'球员B用剑攻击并造成110伤害。 (主要活动) 天气变了,开始下雨了。 双方都有泥巴问题。 (次要事件) 在19'球员A做了一个动作,但是球员B躲过了攻击。 (主要活动) … … 还有另一部分代码决定哪个事件是下一个事件,究竟是什么。 只有在主要事件结束时,战斗才会结束。 正如我所说,每场战斗有不同数量的平均5个主要事件,但代码知道这个数字作为战斗开始。 但是不知道由随机创建的次要事件的数量。 所以,当代码执行事件循环并决定下一个事件的types时,调用时间代码来决定在什么时候出现。

Chatbot AI游戏

我正在考虑开始使用AI和机器学习。 作为一个借口,我想尝试一个以聊天机器人为中心的游戏。 这个想法是让玩家卡在一个聊天机器人,只能通过人工智能交互或获得关于游戏世界的信息。 有点像事件[0] ,但没有任何graphics。 基本上是一个先进的游戏手册,或者是一个角色扮演游戏,其中的游戏大师是一个AI。 试图复制一个简单的谋杀谜将是一个开始。 这是可行的吗? 一个人工智能能够从头开始创造一个冒险,只需几个随机种子? 我可以使用电影或游戏脚本来训练AI吗? 需要多长时间? 我是否签了2年的编码? 有没有可以下载和培训的开源AI? 你认为我忽视了哪些关键问题? 正如我所说,我不太了解机器学习。 我已经做了两个简单的游戏,使用Pygame到目前为止,一个塞尔达像和空间资源管理器,在两个AI脚本。

如何使装备物品影响装备?

我在Objective-C中做了一个基于文本的小冒险。 我有一个Player类,有四个属性,代表玩家的属性( strength , agility , stamina和intelligence )。 我也有一个Weapon类。 我的目标是在游戏中放置一个武器,只要装备了这个武器,就会增加玩家的属性。 我怎样才能以面向对象的方式实现这一点? 我可以在Weapon类中增加一个方法来增加玩家的属性,只有当一个标志被设置为true时(我在创建这个特殊的武器的时候设置为true,并且为我创建的所有其他武器保留假) ),但是这看起来有点混乱,并不特别面向对象。 我最近了解到装饰devise模式。 我能用decorator来完成我的目标吗?

在基于文本的交互式小说游戏中引入通用命令

编写一个简洁的文本冒险引擎,我正在考虑玩家可能使用的命令。 对于每个位置我有文中描述的特殊命令,但通用命令如何 检查 开关 触发 … 所以这是我的问题: 有什么地方有一个好的枚举命令应该是强制性的? 如果不是,那么在这样的游戏中你会期望什么命令? 关于可用性,我应该假设玩家知道命令,以便他可以尝试从一开始就使用它们,还是应该实现解释这些命令的用法的类似教程的解释?

在为MUD(或其他基于文本的游戏)devise光照/黑暗系统的同时,如何容纳新手?

我一直在琢磨重新devise我们的MUD的光/暗系统。 我们目前的系统可以容纳新玩家,而不会因为看不到晚上在人口稠密的地区漫游而无法看到他们。 我希望在重新devise灯光系统时不要再做出安排。 我把住宿作为一个标志系统是不是每个人都理想。 我很欣赏视觉游戏的处理方式, 我们通常可以看到我们角色周围的区域,并且在某些情况下可以获得我们可以看到的半径的奖励。 我还没有能够想出一个把这个概念移植到MUD的好方法,至less没有我们现在的代码基础不支持的相对位置的概念。 如果我们没有基于他们可以创造的黑暗的多个玩家子类,我会倾向于这样做,所有玩家都可以看到他们所在的房间,摆脱火把,并完成它。 我花了几个小时的search,并没有就这个话题挖掘引人注目的讨论。 我相信他们存在 – 我觉得很难相信这个话题没有被播出。 我很好奇别人如何接近一个不需要新手例外的光明/黑暗系统,同时仍然能够适应像黑暗之类的不死生物这样的阶级(事实上,他们的力量的一部分来自于他们阻止他人的能力看到。)

创造时间的概念

所以我已经到了探索游戏的地步,在那里我想把时间的概念融入到我的小演示中。 在游戏中创建时间传递的概念有哪些常见的方法? 我的想法到目前为止: 我的游戏循环往往会花费相当长的时间来等待用户input,所以任何时候系统都可能需要在单独的线程中运行。 我目前所做的是创建一个BackgroundWorker传递一个方法,其中包含一个每秒触发的循环。 这工作正常,我可以从这里输出信息到控制台,等等。在这个循环内我有一个DateTime对象,每增加1分钟实时秒。 (游戏从01/01/01开始) 这是达到这个结果的标准方式还是有更多的尝试和testing方法? 我也很好奇如何去执行基于时间的行为(减less玩家的能量,游戏板周围的移动实体,生命/死亡等)。 感谢任何指针或建议。 我已经search过,但是我对这些术语不够熟悉,所以我的search在这个search结果上很less有结果。

将实体与他们的行为或行为分开

我正在创建一个非常简单的基于文本的游戏,并且想知道什么是标准devise模式,当涉及到实体(角色,感知景物)以及这些实体可以执行的操作时。 作为一个例子,我有一个具有年龄,性别,身高等各种性质的“人”的实体。这个“人”也可以做一些行为,如说话,走路,跳跃,飞行等等。 你将如何将这个实体从它可以执行的动作中分离出来,以及哪些常见的devise模式可以解决这类问题?

在基于文本的冒险游戏/交互式小说中区分具有相同名称的多个对象

我正在用Python编写自己的parsing器。 我已经设法做出一些简单的命令,用简单的打印来确保它们正常工作。 因为我打算在那里打架,所以我需要写一个攻击东西的命令。 我刚刚完成了。 我的问题是:我该怎么做,让玩家select他们攻击的敌人? 当他们是不同types的敌人(例如地精和穴居人)时,它是相当简单的,但是我应该如何区分两个相同types的敌人(例如两个穴居人)呢? 我迄今为止的建议是:给他们每个人一个重要的特征(颜色,高度,相对方向),但只有到目前为止; 命名他们每个人(所以你攻击“鲍勃”或“史蒂夫”); 或者我最喜欢的那个,给他们每个人一个号码(所以会有troglodyte1,troglodyte2等等) – 这可能会打破一些沉浸,但是。