动态数据库:从构思到实施

随着我们推出游戏设计文档并完成初始设计,开发ArcLight的第一阶段进展很快。 在我们开始实施时,出现了一些问题,这些问题是我们没有考虑如何实现系统的详细信息。 我们已经讨论过我们希望游戏外观和感觉如何,但没有讨论如何实现这些事情的复杂技术规范。 值得庆幸的是,在深入研究的帮助下,我们能够就我们要为整体设计系统实现的目标达成共识。 我选择的任务是在Unity中创建一个动态数据库系统,该系统将保存玩家统计数据,保存/加载变量,库存系统和对话的相关数据。 我首先从对话开始,因为它似乎更加独立,不会在运行时进行修改。

在我看来,提取对话的过程很简单:玩家走到NPC上,触发一个对话框出现,该对话框显示当前说话者的人物肖像,玩家和NPC来回移动直到对话结束完成,最后在播放器完成阅读后关闭对话框。

像馅饼一样容易,对吧? 不完全的。 我希望我们的对话系统更加完善,以便我们可以基于当前游戏状态事件提取动态对话。 这意味着我们的数据必须回答特定的问题:

(1) 玩家正在和说话 ? —这是敌人,盟友还是中立的第三方? 他们与谁说话的人都应该有画像,以增强当前讲话者的身份。

(2) 对话的背景是什么? —说话者的情绪状态是什么? 他们是生气,快乐,悲伤,激动还是冷淡? 他们是在讨论叙述的关键要点还是在消极地讨论自己喜欢的奶酪类型? 应该有某种视觉提示(动画,颜色等)向播放器指示当前讲话者的情绪状态。 另外,他们正在说话的角色甚至参与某个任务,还是只是乡亲或商人?

(3) 该对话何时进行? —玩家是否已经达到叙述上的要点,以推动任务前进,还是他们仍然缺少某些物品或未完成的任务阻碍了他们的前进? 当前的任务进度级别(第1、2、3等部分)是什么? 玩家的下一个目标可能是什么模糊的提示。

(4) 玩家在哪里 -玩家是在安蒂乌姆(首都)还是在Honorbound Haven(战争贩子村庄)? 对话的每个部分都应记录玩家在区域位置方面的位置。