在星期四,我写了一份关于我的发展和想法的简短报告,是否要做的事情不只是让自己负责。 请享用!
这个星期我花了一些时间研究数据库。 由于在游戏中将会进行大量可能的对话,因此直接在引擎本身中处理这种对话是没有意义的。 对代码中的大量副本进行排序可能甚至对灵魂没有好处。
- FLATJAM 2018
- Unity中的2.5d水(游戏卡纸设置)
- Agora.io现在为Unity Asset Store内部的游戏开发人员带来实时语音和视频聊天
- 游牧民族8:结束
- 2018年12月更新:或,“好吧,让我们来写一个成立游戏初创公司的事情”
外部数据库使事情变得更易于管理-我非常了解。 但是,我几乎没有创建或使用数据库的时间,因此我知道我需要学习一些知识。
我开始研究CSV,起初似乎是理想的格式。 可以在大多数电子表格软件中对其进行格式化和编辑,但是可以导出为可以由编辑器解析的原始文本。
但是,通过深入的研究,我了解了JSON,以及它如何成为许多现代系统和软件的流行选择。 尽管JSON是在考虑到Javascript的情况下构建的,但它的广泛使用使其在包括Godot在内的各种不同平台上都可行。
从我发现的内容来看,JSON的优点也是它的祸根:JSON在设计上很简单。 您添加事物的标签,然后键入该事物是什么。

以上面的示例为例,如果您用困难的方式编写此代码,则打赌您要为要处理的每个“类型”和“数字”键入“类型”和“数字”。
幸运的是,由于CSV和JSON都只是文本,因此可以在格式之间进行转换而不会带来太多麻烦。 然后,我的计划是在电子表格中构建所有内容,在其中我可以完整清晰地查看所有数据,导出为CSV,然后转换为JSON。 这意味着我们从此出发:

对此

而且很好。
我不知道这是否是正确的处理方式,但目前看来似乎可行。 与往常一样,我将遵循使事情尽可能简单直到出现任何问题的标准做法。
说到这一点,我本周确实花了一个令人尴尬的时间,试图弄清楚为什么我的数组(对话本身)在运行时无法在JSON和游戏之间正确转换。 事实证明,我一直在使用两种不同的引号,这些系统不太喜欢,没有先生。 谁知道不止一种?我现在肯定会这样做。

但是,有了这种方式,我现在有了一种非常有效的方法,可以为每个角色分配他们自己独特的对话数据库,引擎将即时选择并处理该角色。 虽然旅行者每个人都有自己独特的对话,但是菜村民将拥有不同的个性“标识”,并在标签上贴上标签,以帮助平衡工作量。

目前,我已经能够对不同的对话进行随机化处理,但是我希望Godot能够基于许多因素来导航数据库以选择对话,这些因素包括天气,他们对玩家的“热情”以及纯机会。
最终,我将扩展数据库以容纳不同的项目,任务以及其他我想避免的太多项目。
不幸的是,我以前的计划是通过在每个条目的末尾添加大写的三个字母词来分配对话说明(例如“ SHO”表示“震惊”),这有点不足。 它本身可以工作,但是结合不同的指令似乎会产生奇怪的结果。
尽管如此,这仍是建立对话系统的开始,在这个对话系统中,我可以开始建立对话,使角色真正开始做出反应并传达情感,而这一切都是在干净整洁的环境中进行的。

播放器响应系统仍在使用中。 在这一点上,我真的很喜欢使用图标而不是文本的理念-毕竟一幅画画了数千个单词。 但是,我仍然在努力寻找不太游戏性或界面性的图标。 很难形容,但我不想让玩家突然觉得他们正在导航手机而不是世界。 因此,我们将看到一些值得一提的内容。

最后,我一直在使用通过在设备屏幕上工作所获得的新智慧来重新设计库存系统。
结果是几乎可以正常运行,但仍需要一些工作。 现在,每个插槽都是它自己的节点,该节点负责维护自身,而不是由库存屏幕管理所有数据。 这使得分配每个节点的数量和项目非常容易。

剩下的唯一一件事就是开始使用这些插槽填充的许多项目。
我最初的占位符是一个苹果,当我意识到在游戏中吃一个苹果当然是可恶的后,我很快就废弃了。
在推特上关注我。