Announce post #3165: Command rate limit
2/3/2021 at 0:13
Razmael, the Synthesist
Everyone
Command rate limit
Hi folks,
Today I'm introducing a rate-limit to how many commands you can enter per second. I'm starting this at a rate of 50 commands per second, which should be generous enough to not affect most people, but may lower it in the future depending on further analysis.
What this means is that after you've entered 50 commands in a second, any further input will be rejected - with a message informing you as such. As a note, queued commands will count towards the rate limit at the time of the queue firing, not when the queue is prepared (but the QUEUE command itself will count towards the 50 commands at the time it's entered). e.g. with a stacked separator queue of "QUEUE thing1\thing2\thing3\thing4\thing5\thing6\thing7", this counts as 1 command at the time it's entered, and 7 commands at the time it goes off.
This has become necessary to implement as sometimes people's system can go haywire in fight group fights, for example: while monitoring this for the past few days somebody's system was sending over 600 commands every second in one lesser fight. This creates a lot of unnecessary overhead (especially as each of those commands generates a prompt and gmcp vitals) and can contribute to group combat lag when it happens.
Penned by my hand on Kinsday, the 8th of Arios, in the year 493 MA.
1
Comments
I guess that's part of why I was always a helper in combat instead of a champion. I figured... 3-5 cures, a balance, an eq, some stand/amnesia protection. I would only be going in bursts of 10-20, but not per second at all. I get the stacking for classes like Indorani, but their offbalance/offeq combat beats should bring their average down.
I'm gonna be laughing at "six commands per second" for a long time and I hope all of y'all are prepared for that because it is extremely silly. With venoms, ent commands, and literally any client-side handling you're going to be regularly breaking 10-20 commands-per-second at times, especially if you're moving around and doing various free checks. And that's not to mention target and affliction calling, which are extremely common in groups.
My client side curing system had a lot of spam, but I'd turn it off during group combat so that I could remain functional. It worked extremely well for me in 1v1 where the command input wasn't an issue for the rest of the game, and now it's useless. As far as I'm aware, I wasn't slowing the game down, and now I'm being punished.
I can understand being mistaken when it comes to the higher intricacies in PvP, but the fact you think SIX commands is a high input in combat is informative, and not in a good way. You have allowed a MASSIVE change to the largest cornerstone of Aetolia without understanding the fundamentals of what it is you are changing. You're the Producer, and this shows a disconnect between you and the game you're running (along with its players). The fact you think you can make this change (because you didn't think it was a big deal) with NO WARNING illustrates this disconnect even further.
In a 1v1 fight, any good offense will be constantly refreshing commands as your opponent cures (tree/renew/pill/pipe/poultice/passives/actives), as they shield, as they fly/swing/move, as rebounding activates, etc. Within a single second, more than a dozen variables can change that cause your system to input commands. The same is said for client-side curing. As afflictions are cured, tree/focus/renew queues are activated or cleared. Curing priorities change. Pipes are filled, pills are pulled from the cache, Amnesia checks happen, hidden affliction checks happen (touch tree/focus/fly/concentrate, etc), compensating for Aeon happens, and the list goes on.
My offense and client side curing was clunky because I'm not a coder, but it worked really well in 1v1. With this cap, you're hurting anyone who isn't an expert coder and are putting the onus on the players to develop systems that have few to no superfluous commands. The cap is making it that much more difficult to get results in game.
I've had the rug pulled out from under me multiple times while playing this game, but never to this scale. I've poured so much of my time and effort into Fezzix, into Spinesreach, and into the Syssin, and I'm reaching the point where I question if it's worth it anymore.
The players whose company I enjoy, the sunk cost fallacy, and my own stubbornness keep me around, though. With a lot of help from some friends, I'm sure I'll manage to dig out of this hole before you open another.
600 commands per second is insane, and that does indeed cause lag. I still find 50 unacceptable, save for cases where you have multiple input afflictions stacked on you. If your method of dealing/detecting those things is to throw massive amounts of commands, any attached system needs some basic logic to prevent that. As a silly example, a crude fix for amnesia is to send "stand" before every command you ever send. It also detects hidden prone! But it's terrible code and not sustainable for a multiplayer game.
What I'm saying is that your argument to beat isn't me being goofy about saying "six commands". That's an offhand comment when I didn't even pick the numbers involved.
If you send everything every time all the time, it's not going to work anymore.
Note that the average system using fighter was 10-40. And the egregious offenders WERE reached out to.
This is a good change overall for the game, but I would definitely caution against going much lower without a recalibration of combat speed. Aetolian combat is pretty fast, and while there's a reasonable limit to what players can expect the game to chug along and process, there's also a reasonable expectation that if the cap gets TOO low, the game might need rebalanced to compensate for that.
Although if pve slowed down any more I'd be sad.
In your stupidity, you forgot what you were trying to do. Oops.
In your stupidity, you forgot what you were trying to do. Oops.
You remove 1 coagulation, bringing the total in the cache to 1694.
In your stupidity, you forgot what you were trying to do. Oops.
You remove 1 antipsychotic, bringing the total in the cache to 1562.
In your stupidity, you forgot what you were trying to do. Oops.
You remove 1 antipsychotic, bringing the total in the cache to 1561.
In your stupidity, you forgot what you were trying to do. Oops.
Eight (8!!!!) commands to cure one (1) affliction and it didn't even cure it.
edit: I went into the raw log from my sect scorebook.
[Herb Queue]: touch flaws&&outc coagulation&&eat coagulation&&outc coagulation&&eat coagulation
>>> touch flaws
You have no flaws.
>>> outc coagulation
In your stupidity, you forgot what you were trying to do. Oops.
>>> eat coagulation
In your stupidity, you forgot what you were trying to do. Oops.
>>> outc coagulation
You remove 1 coagulation, bringing the total in the cache to 1694.
>>> eat coagulation
In your stupidity, you forgot what you were trying to do. Oops.
>>> queue pill touch flaws&&outc antipsychotic&&eat antipsychotic&&outc antipsychotic&&eat antipsychotic
[Herb Queue]: touch flaws&&outc antipsychotic&&eat antipsychotic&&outc antipsychotic&&eat antipsychotic
>>> touch flaws
You have no flaws.
>>> outc antipsychotic
You remove 1 antipsychotic, bringing the total in the cache to 1562.
>>> eat antipsychotic
In your stupidity, you forgot what you were trying to do. Oops.
>>> outc antipsychotic
You remove 1 antipsychotic, bringing the total in the cache to 1561.
>>> eat antipsychotic
In your stupidity, you forgot what you were trying to do. Oops.
I think what this has uncovered is how ridiculous hidden checks are. What is the point of having hidden affs if a vast majority of them are meant to be trivial to check for? Imo we should move away from hidden affs if the only result is that top tier pvpers feel the need to add a bunch of commands that are useless 99% of the time.
All the current situation encourages is for people who want to eke out these advantages to do so. You can point the finger at the people inputting hundreds of commands a second, but ultimately those are just extreme symptoms of an underlying problem that has a much easier fix. The game is fortunate in that a vast majority of people don't try to eke out those advantages, or we'd all be running in these problems a lot more often.
There is a reason why I am not on the various free systems out there; I can't handle the flashy UIs. The system I'm on is a very old one, tweaked and fiddled with by me over time, and a patch or two from other kind coders, but without me actually knowing much about how to make bigger changes. Right now it's screaming stuff at me whenever I log in because it's trying to run its normal setup and it can't.
While I can agree that 600 is excessive, reaching out to those individuals sounds like a reasonable solution. A rewrite for this cap, however, is beyond simple fixes like finding flawed triggers. I only know my offense (which is completely my own), not the curing part. I doubt I'm alone in that kind of situation.