北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: oakbai

求助怎么减少checkbusy

[复制链接]
发表于 2023-12-1 00:29:36 | 显示全部楼层
jarlyyn 发表于 2023-12-1 12:20 AM
另外,以北侠的现状,什么叫鲁棒性?
我的busy_retry的timer是20s的。

5次yun heal,不做任何检测,可能达不到你原本的要求,可能你没有内力或者你正处于忙状态,达不到要求的指令谈健壮性也无意义。

另外,yun heal 的服务器反馈本因对所有可能的反馈都要处理,也是可以达到健壮的要求。服务器吞命令、超时、断线等等,也是应该在所要处理的反馈之中,代码会显得很复杂,但确实是可以减少发送到服务器的指令数量。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2023-12-1 00:34:38 | 显示全部楼层
risc 发表于 2023-12-1 12:29 AM
5次yun heal,不做任何检测,可能达不到你原本的要求,可能你没有内力或者你正处于忙状态,达不到要求的 ...

如果在忙,为什么会发yun heal?

如果内力不足,为什么不是dazuo 而是yun heal?

代码到了能发yun heal的位置,早就过之前的N轮检测判定了。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2023-12-1 00:38:27 | 显示全部楼层
另外,没有人做机器是为了减少发送到武器的指令。

断线是发送指令到服务器最少的方式。

而且,我相信,整个mud所有id多发几个checkbusy,和这么多地图房间这么多npc的资源消耗想比,不值一提。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2023-12-1 00:40:26 | 显示全部楼层
当你yun heal到第3次的时候,来了个归云庄的疯子,你进入了战斗,yun heal搞不起来了,怎么弄?之前的条件环境都检测过了,但现在发生变化了。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2023-12-1 00:42:22 | 显示全部楼层
risc 发表于 2023-12-1 12:40 AM
当你yun heal到第3次的时候,来了个归云庄的疯子,你进入了战斗,yun heal搞不起来了,怎么弄?之前的条件 ...

建议了解下mud的底层机制,比如心跳什么的。

然后你才能理解到在新加的这么多npc的时候纠结几个checkbusy有多无聊。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2023-12-1 00:45:37 | 显示全部楼层
risc 发表于 2023-12-1 12:40 AM
当你yun heal到第3次的时候,来了个归云庄的疯子,你进入了战斗,yun heal搞不起来了,怎么弄?之前的条件 ...

回到这个问题

我的机器是状态机模式

send时是do的瞬间状态

然后是checkbusy状态。

checkbusy状态结束后是进入 战斗后rest失败重新战斗的状态。

状态机队列模式。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2023-12-1 00:48:11 | 显示全部楼层
jarlyyn 发表于 2023-12-1 12:38 AM
另外,没有人做机器是为了减少发送到武器的指令。

断线是发送指令到服务器最少的方式。

我只是探讨在很多种情况下,是可以减少发送到服务器的指令的,并非要求大家一定往这种极致的方向去。本来写机器就是一种乐趣,达到一个目的有很多种办法。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2023-12-1 00:54:59 | 显示全部楼层
jarlyyn 发表于 2023-11-30 09:42 AM
建议了解下mud的底层机制,比如心跳什么的。

然后你才能理解到在新加的这么多npc的时候纠结几个checkbus ...

这个假设在20年前可能成立,大部分mud(不光北侠)早就做过优化,npc长期不互动根本就不心跳。
100个新npc除非一直有人杀,不然只有生成时候的消耗。

另外就是资源怎么分配的问题,比如房间内容细节多一点(哪怕大部分机器人不看)多消耗了1块钱,也比谁都没占便宜也毫无意义的低消耗要有意义一点(比如早期有个很傻很天真的机器1个心跳之内连发N次hpbrief抓根本不会变的数值就为更新个什么血槽,假设一次hpbrief消耗1分钱),当然你如果要从纯粹要保证你的挂能各种情况下稳定执行,会得出后者消耗比前者消耗更有意义的结论。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2023-12-1 00:58:38 | 显示全部楼层
zine 发表于 2023-12-1 12:54 AM
这个假设在20年前可能成立,大部分mud(不光北侠)早就做过优化,npc长期不互动根本就不心跳。
100个新np ...

根据我对top cmdetail的分析,和我手头其他mud代码的分析。

房间的数量,以及房间内对象的数量,会对 移动以及发送指令有影响。

在进入房间时,房间本身和所有的对象对会对移动进入的玩家做一轮check。

当在房间内输入指令时,房间本身/房间内所有的对象/身上的道具也会做一轮check。

不知道北侠是否是这样,这样是否是的互动的场景。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2023-12-1 01:12:16 | 显示全部楼层
jarlyyn 发表于 2023-11-30 09:58 AM
根据我对top cmdetail的分析,和我手头其他mud代码的分析。

房间的数量,以及房间内对象的数量,会对 移 ...

房间(或者更准确点用mudos/fluffos的表述environment,比如人进入房间,武器进入包袱),环境和环境内其他物品都会被通知有新的东西进来了,取决于通知后是否有逻辑处理消耗大小不一。这个新物品进入的通知是没法关掉的(应该也是mudos最基础的通讯),
一个房间一个物品都没有消耗肯定比一个房间有多个物品少,
但是一个房间有一个物品就未必比有十个物品消耗更少,主要还是看到底要执行什么逻辑,复杂程度。

输入命令到底怎么执行看各个mudlib怎么implement,可以先从周围环境找,也可以先从固定cmds里找,甚至从mud的外部(服务器上,互联网上)找都行(新版fluffos支持),这个消耗肯定周围物品越多,消耗越大。(同样的道理,一个房间加的几个npc找命令消耗肯定有,比一个npc没有肯定高,但是无论如何都肯定比不上玩家身上400件物品一个个查找的消耗)

心跳是另一个情况,就是所有你希望被系统按时通知的物品列表被按时通知一下,这个mudlib有完全控制,你想让谁被通知就被通知,玩家都可以不心跳,心跳的慢或者更快。新加NPC的消耗主要在其他物品进入通知和命令查找上,第二条属于可优化部分,心跳上也有消耗肯定有,但基本可控,增加不大
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-4-27 04:01 PM , Processed in 0.010184 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表