工人任务分配系统

💡 原文中文,约2200字,阅读约需6分钟。
📝

内容提要

这篇文章讨论了在类似《矮人要塞》的游戏中工人任务分发系统的设计。玩家通过设置任务优先级来管理工人,而非直接控制。文章比较了《缺氧》和《边缘世界》的任务系统,强调任务权重和工人偏好的重要性。作者计划基于这些设计理念开发自己的游戏,并提出了任务分配和搬运任务的实现方案,探讨了寻路模块的需求。

🔎

延伸解读

任务权重系统的设计逻辑

文章提出任务最终权重由类型权重、对象权重、位置权重和工人偏好权重相乘得出。这种设计让玩家通过调整优先级间接影响工人行为,而非直接操控。权重相乘意味着任一权重为零都会使任务不被分配,因此玩家需注意避免设置冲突。同时,任务可进入多个工人队列,可能导致任务被重复分配或取消,这要求系统能处理并发任务状态。

搬运任务两种实现方案的权衡

搬运任务涉及原料和建造地点两个位置。方案一为每个可用原料发布子任务,根据距离赋予权重,工人就近执行并取消其他搬运任务,表现更智能但实现复杂。方案二只发布一个供应任务,工人在执行时再寻找原料,实现简单但可能效率较低。作者倾向于方案一的效果,但指出方案二更易实现,这反映了游戏设计中智能性与开发成本的常见取舍。

寻路模块的需求转变

作者最初认为寻路需要计算两点间路径,但结合任务系统后发现,实际需求是从工人当前位置到场景中多个任务点的路径,以便根据距离排序任务。这种从单点到多点的寻路计算更符合任务分配场景,且只需在工人开始新任务时计算一次,无需实时更新。这一发现简化了寻路模块的设计,也降低了运行时开销。

❓

Q&A

工人任务分发系统的主要功能是什么?

工人任务分发系统通过设置任务优先级来管理工人,允许工人自主完成任务,而非直接控制工人。

《缺氧》和《边缘世界》的任务系统有什么不同?

《缺氧》通过任务优先级管理工人,而《边缘世界》允许直接下达指令给工人。

作者计划如何设计自己的游戏?

作者计划基于《缺氧》的设计理念,构建一个以任务优先级为基础的工人任务系统。

任务的权重是如何决定的?

任务的权重由类型权重、对象权重和位置权重相乘得出。

搬运任务在游戏中有什么特殊之处?

搬运任务通常是建造任务的一个环节,需要将原料从一个地点搬运到建造蓝图的位置。

寻路模块的设计需求是什么?

寻路模块需要计算从工人当前位置到多个任务位置的路径,以便为工人提供有效的行动路线。

🏷️

标签

➡️

继续阅读