Blizzard recently announced that they are going to leave spell batching with the same side effects and quirks as it had back in Vanilla WoW. Blizzard official Kaivax wrote the following regarding spell batching:
Since we first announced World of Warcraft Classic, we’ve seen questions about spell batching. While we never really eliminated spell batching in WoW, we did change how (and how often) we process batches of actions coming from players, so you’re less likely to notice that processing in today’s game. We’ve been working to ensure that in WoW Classic, the gameplay of activating spells and effects will not differ from the experience of playing original WoW.
It was relatively common in the original game to see a warrior Pummel a mage who simultaneously and successfully Polymorphed the warrior. The mage suffered Pummel damage but no spell-school lock, because the mage didn’t get interrupted. This could seem paradoxical, but it could happen because the Pummel and Polymorph were both in the same batch, and were both valid actions at the start of the batch. For the most part, things like that don’t happen in modern WoW, but they still can. We’ve made improvements to batch frequency, and the game is much more responsive than it used to be. Still, if you manage to get both a Pummel and a Polymorph into a tiny processing window in modern WoW, you’ll experience the same behavior as in original WoW.
As with many other areas of WoW Classic, authenticity is our primary concern. It used to be the norm that combat flow and PvP balance were defined and tuned in a game where spell messages were resolved less frequently. There was a single game loop that processed all messages sent and received every server tick. Nowadays, the game processes multiple loops for messages of differing priorities. Spell casts are high priority, and have been for a long time.
For WoW Classic, we’re moving spell casts to a low-priority loop that will cause them to be processed at the frequency that best fits how the game actually played in version 1.12. Two mages will be able to Polymorph each other somewhat reliably, resulting in two sheep nervously pacing around at range. Two warriors will be able to Charge one another, and the end result will be both warriors standing stunned in each other’s original location.
We think it’ll be fun to see those sorts of things happening again.
How is Spell Batching Working?
Say you have two mages dueling each other. Back in the old days there weren't uncommon to see that both of the mages got sheeped at the same time. This might appear as very strange at first, as one might think that the server process each spell in the order they arrive at the server. Processing each spell separately would not be possible even with today's hardware. As a result games often use a technique called batching. This means that all actions are gathered in a batch within a certain time frame, before all the actions within the same batch are processed. All the actions within the same batch would be processed and applied to the game play. In other words, if the sheep spell from two mages is the same batch both of the players will get sheeped.
As stated by the post Kaivax spell batching still exists in retail WoW, but as the hardware is getting better they have made the spell batching time frame smaller. In the post he also states that spells have gotten different priorities, which means that some spells should be applied before other spells. As a result, the side effects of spell batching is less likely to be noticable by the player on retail WoW.
An article by Matzav Review suggest that the batch size was 200 ms in Vanilla WoW compared to 20 ms in retail WoW. The post by Kaviax doesn't state how large the batch time frame should be and the exact implementation details, so we have to wait closer to the release of classic for further details.
One quick comparison to spell batching in WoW would be Counter-Strike: Global Offensive (CS:GO) and server tick rate. Tick rate means the number of batches within a second. A server tick rate of 1 means that all actions within a second is gathered in the same batch, and a tick rate of 10 means that each batch is 100 ms long. The default tick rate when playing CS:GO today is 64, but esport matches commonly uses 128 tick rate servers. With a 128 tick server the batch window is only about 8 ms. Which means that there are very little chance that an action from two different players happens in the same batch. In other words, there are very little chance that two players are able to kill each others at the same time.