Tim*_*icz 15 logic design-patterns game-engine
我几天前刚刚开始玩Elder Scrolls IV:Oblivion,有一件事我不禁怀疑是如何以编程方式处理任务系统?
具体来说,游戏中有许多(数百?)个任务甚至是子任务,所有这些都以多种方式反映在游戏环境中:从特定时间/特定人群之间的游戏中发生的脚本事件(假设它们还活着),相关的任务项目(其中一些与特定的NPC和任务状态相关联),与不同NPC的不同对话(同样,复杂的树可以通过与其他人的对话来改变) NPC和任务的一般状态).
此外,您可以在任何时候在活动/非活动任务之间进行切换,因此这些复杂的动态行为会从根本上影响您周围的环境,因此可以完全互换.
这似乎是一个逻辑上的噩梦,我很难掌握如何以编程方式定义如此深刻和丰富的东西,所以看似完美无瑕.
是否有任何有此类经验的人可以(广泛地)解释这些系统的内容?
我只是在这里猜测。还没有做过这种编程,但我在玩RuneScape时思考了很多他们是如何做的。
可能有很多与您的帐户相关的标志和变量,并且随着您完成任务的进展,它们的值会发生变化。起初,角色 X 被标记为活着,并且位于位置 Y。后来,她被标记为位于位置 Z。然后,她就死了。因此,当您输入位置 Y 时,它会检查变量以查看她是否在那里,并将她的对象放在那里。与此同时,另一个尚未开始任务的玩家可以在同一区域看到完全不同的东西。