在Visual Basic中创建一个应用程序来处理Morrowind中的对话?

时间:2016-06-16 01:03:07

标签: visual-studio visual-studio-2012

我想制作一个非常适合特定目的的程序,以帮助我为电子游戏 Elder Scrolls III:Morrowind制作大量的任务模型。我正在尝试做这可以通过excel或Visual Basic,在这里我提供了一个关于对话如何在游戏的正常创建程序中起作用的一些总结,然后我想在它之外创建并改进。

Morrowind Dialogue如何运作?

对于那些熟悉游戏的人来说,你会记得与NPC的交谈会带来一组文字,而这段文字就是他们的对话。有一个不同的“主题”,如果一个NPC有对话设置,玩家可以看到主题并点击它,打开一个新的文本墙,这通常是对话在玩家端的整个游戏中的工作方式。 在创建Morrowind Mod时,对话在“构造集”(用于创建和编辑游戏的程序)中真正起作用的方式是数据库包含每个文本条目,并且这些条目具有设置为它们的条件,这限制了NPC可以说一个特定的对话条目。因此,例如,像“最新谣言”这样的话题将会有很多条目,其中有很多不同的NPC对此有所说明。主题本身是一种附加条件,可能附加了数十个条目,也可以应用设置为特定条目的条件。条件可以包括检查NPC是否在给定城市中,如果游戏内时间是夜晚或白天,如果玩家处于给定任务线的特定编号阶段/索引以及更多,则更多。这个系统使所有任务成为可能,游戏也是动态的。

我想要创建的内容:

我正在开始一个相当大的mod项目,其中包括许多对话条目,许多新旧主题以及许多任务和任务阶段。我可以在这里列出所有原因,但基本上我的问题是构造集在组织方面有许多限制,这使得很难进行大型mod的对话。我最好设计,设置主题和编辑我在构造集程序之外的所有对话条目,并在我确信写作和任务完成时实现它们。

基本上如果这太复杂了我可以在Microsoft Word中编写所有任务和对话,但乐观地说我想做一些更有活力和有帮助的东西,作为一个作家,并能够使用真正的变量来存储和设置日记/任务索引,通过Quest或NPC过滤对话,轻松编辑对话和任务,而不会迷失在正常游戏的数千行其他对话中。

*我不能在这里发布两个以上的链接,但是我在reddit上发布了一个画廊,展示了构建集的工作原理以及到目前为止我在Visual Studio中所做的工作:

https://www.reddit.com/r/learnprogramming/comments/4oap6w/making_an_application_in_visual_basic_to_handle/

所以,我的目的是使用Visual Basic或Python在Visual Studio中创建一个程序,该程序允许我根据条件编写,组织和设置对话和过滤的文本。

这可能需要在Visual Studio中为程序创建数据库文件,并且能够在运行时为程序创建变量。这是因为我希望程序的用户能够添加新的对话主题,新的日记/任务,并且所有这些事情都将具有与其相关联的值的条件。

感谢任何帮助,建议和指导。我正在重新学习Visual Studio(我参加了两门课程),不幸的是,我非常喜欢excel和数据库。

1 个答案:

答案 0 :(得分:0)

你是对的,因为需要某种数据库。但是,根据您的舒适程度,金钱,便携性要求等,您可以采用以下几种方式......

一种方法是使用XML来存储您的数据。它具有极其便携和可变形的优点。由于这可能是一个程序,在任何给定时间只有一个人可以直接访问数据,这可能是您最好的选择。

如果您有办公室,另一个选择是使用MS Access。这为您提供了一个可行的,尽管是相当基本的关系数据库。如果您有2或3个人可能在其中工作,这可能是更好的选择。

第三种选择是完整的DBMS。 MySQL是免费的,您可以将其安装到本地计算机或远程服务器。安装到远程服务器后,您可以选择允许许多人连接到它并以事务方式修改数据。但是,如果它只是一个或两个人的系统,那就太过分了。

重新回到XML ......这很可能是你最好的选择。它很简单,与.Net应用程序完美集成。一旦完成,它可以导入/转换到任何数据存储(或者随着您的进展多次)。通过.Net与XML接口允许您像代码中的数据库一样使用它,因此如果您预先正确设计数据层,如果项目大幅扩展,您甚至可以迁移到完整数据库。 XML的最大缺点是它不像常规DBMS那样是关系型的,并且它本身并不是事务性的。您没有原子更新,因此如果您有多个人一次修改内容,则可能会丢失数据(如果被覆盖)。

可以通过编写更高级的数据层与XML文件接口来解决这个问题,但如果只有一个人在本地进行更改,那么数据文件就是,稍后上传到远程数据存储区,唯一要记住的是协调何时以及谁可以修改该文件。当时主要是物流。