BR 技术头条
bl blog.codingnow.com / 2024-08-06 07:44 / by @技术头条 / 原作者:@玩家云风

工人任务分配系统

在矮人要塞 like 的游戏中,都有一套基于工人的任务分发系统。玩家通常不能像 RTS 中那样直接操作工人去工作,而是对要做的事情下达任务,等着工人自主去完成。

由于任务数量通常远多于工人数量,这个任务分发系统中大多配有优先级设置,可以让诸多任务有条不紊的进行。调整优先级变成玩家主动操控的渠道。初玩这类游戏,会有点不习惯:感觉难以在微观层面直接做自己像做的事情。像捡块石头放进指定仓库这件事,无法像玩 RTS 游戏那样,先点选工人,再针对石头发出拾取指令…… 但习惯之后,恐怕又回不去了。比如我在玩 Ratopia 时,就对操控鼠王直接干活烦躁不已。

发表评论

相关分享

bl blog.codingnow.com / 2026-05-10 18:35

嵌入主线程消息循环的任务调度器

这篇文章记录了 soluna/ltask 在移植到 wasm 和非 Windows 平台过程中遇到的一个典型工程难题:如何在主线程事件循环中执行特定任务,同时仍保留原有多线程调度模型。

问题的核心来自图形 API 和平台约束。sokol 并非线程安全,OpenGL 又依赖当前线程状态,而 wasm 环境下主线程、worker、pthread API 的边界进一步放大了调度复杂度。

作者的解决思路不是重写整个调度器,而是在 ltask 中“打洞”:让某些必须在主线程回调中执行的 Lua 任务,临时从调度表中移出,由主线程接管执行,完成后再归还给调度器。

文章最有价值的地方,是把 coroutine、Lua 虚拟机、C 栈、主线程事件循环和图形 API 约束放在同一个工程场景中分析。它不适合泛泛阅读,但对做游戏引擎、wasm 移植或复杂运行时调度的开发者很有参考价值。

无图
bl blog.codingnow.com / 2023-10-24 23:52

一个任务调度算法引起的性能问题

这两天遇到一个任务调度算法引起的性能问题,花了颇多精力排查和解决。问题出在我写的 ltask 这个 lua 多任务库上。ltask 最初是对 skynet 的一些反思中开始的,最初只是想换一种思路实现 skynet :做一个库而不是框架、更少的锁竞争、避免服务因为消息队列堆积而过载……

无图
in insights.thoughtworks.cn / 2023-07-24 15:13

数据工程中的任务调度实践

数据工程的任务调度应该以“日志驱动”作为解决方案。而日志驱动的重要部分“日志解耦”正是提高系统健壮性的利器。

无图
li linux.cn / 2022-08-31 23:20

如何在 Linux 上使用 Bash 自动化任务

通过 Bash 命令行进行自动化任务是极好的一种方式。不论你使用运行在服务器上的 Linux 进行管理日志文件或其他文件,还是你在个人电脑上整理文件以使桌面保持整洁,使用 Bash 的自动化功能会使你的工作变得更轻松。

无图
it it.deepinmind.com / 2021-06-13 23:06

JVM优化之逃逸分析与分配消除

在Java Magazine的前几期文章中,我们介绍了just-in- time (JIT) 编译技术的一些理论基础,以及如何使用Java Microbenching Harness(JMH)和开源工具JITWatch来进行可视化分析,以便搞清楚HotSpot VM的内部机制。在这期文章中,我们将要深入介绍一下逃逸分析(escape analysis)技术,这是JVM最有意思的优化手段之一。逃逸分析是JVM的一项自动分析变量作用域的技术,它可以用来实现某些特殊的优化,后续我们也会分析下这些优化。在开始之前,你只需要掌握一些HotSpot JVM的基本工作原理就可以了。

无图
mp mp.weixin.qq.com / 2020-08-16 14:31

如何优雅地向老师表达:我这周任务没啥进展?

这周末聊一个重要的话题就是:如何优雅地向老师表达「我这周的工作、实验或者研究没什么进展」? 我们急需一些建设性的意(tao)见(lu)!
这里也收集了大佬们的一些高赞回复,有一种想见很晚的感觉,想当年如果要是早点知道这些建设性意(tao)见(lu),也就不会「谈周会色变」、「每逢周会必备批」了,受了不少苦。

无图
yq yq.aliyun.com / 2019-12-02 15:32

MaxCompute按量计费计算任务消费监控告警

MaxCompute 按量计费资源为弹性伸缩资源,对于计算任务,按任务需求提供所需资源,对资源使用无限制,同时MaxCompute按量计费的账单为天账单,即当天消费需要第二天才出账,因此,有必要对计算任务的消费进行监控以免超预期消费而不可知。本文将介绍如何通过云监控配置MaxCompute按量计费计算任务消费监控告警。

无图
su www.sucaihuo.com / 2019-08-20 09:39

laravel客客威客3.6众包任务平台源码

laravel客客威客3.6众包任务平台源码,4种自定义皮肤+响应式设计+推广系统+增值道具+问答系统+4套风格模板+店铺系统+商城系统+自适应手机端+微信端+VIP系统+分站功能+懒人一键发布

无图
mp mp.weixin.qq.com / 2019-06-29 13:58

干趴面试官系列 | 请你简述一下Kafka中的分区分配

“请你简述一下Kafka中的分区分配”,当面试官问你这个问题的时候,你会怎么回答?其实,这道题目里面就暗藏汹涌,因为Kafka中的分区分配在多处出现,而这个问题的表述方式是在潜意识里暗示你回答一种,这样在你自认为很完美的回答完这个问题之后,面试官会冷不丁的来一句:还有呢?

无图
yq yq.aliyun.com / 2019-04-22 17:06

使用DataWorks调度DLA循环任务

DataWorks是阿里云上的一款热门产品,可以为用户提供大数据开发调度服务。它支持了Data Lake Analytics(后文简称DLA)以后,DLA用户可以通过它进行定时任务调度,非常方便。本文将主要介绍如何使用DataWorks调度DLA的循环任务。

无图