Spell batching on m'explique svp?

Salut j’ai réalisé qu’il y a souvent des bugs sur les interupts etc etc, un type m’a dit que c’est la faute au spell batching sauf que je ne comprend pas exactement le fonctionnement du truc, pourrait t’on m’éclaircir le sujet?
J’ai cru comprendre que c’était en raison du lag pour aider les casters avec une histoire de 400ms de délai mais je ne comprend pas trop

C’est un reliquat de vanilla en fait. Ça a été reproduit pour classic pour être fidèle au jeu de l’époque mais c’est quelque chose qui n’existe plus dans bfa (et depuis plusieurs années).

En gros, pour faciliter le travail côté serveur, tous les « événements » reçus sont traités par groupes (un « batch »). Un batch couvre une fenêtre de 400ms comme tu as dit, et ça veut donc dire que tout ce qu’il se passe pendant ces 400ms est considéré comme étant exactement simultané.

Du coup ce qu’il se passe c’est que si tu essaies de kick un sort sur la toute fin du cast et que l’événement de la fin du cast se retrouve inclu dans le même batch où tu as essayé de kick, bah les 2 sont considérés comme étant faits au même moment, et le sort part donc quand même.

C’est pas un bug quoi, c’est juste une limitation technique (artificielle dans le cas de classic). Ces batchs existent dans tous les jeux en ligne à vrai dire, sauf qu’au fil du temps ils se sont raccourcis (Il me semble que un batch sur bfa c’est 5ms).

Ya plein d’applications possibles, comme par exemple lancer un sort de contrôle instantané au moment où tu vois ton adversaire faire de même. Le temps de réaction fera que le tien partira plus tard, et ne devrait donc pas partir (vu que tu es supposé être contrôle) mais le spellbatching fera que les 2 partiront techniquement en même temps.
C’est ça qui fait par exemple que tu peux régulièrement voir des guerriers se charger mutuellement et inverser leur place.

2 mentions « J’aime »

Le fait de voir un minerai sur ta mini map au dernier moment aussi ? J’ai souvent eu cette impression, surtout si tu vas très vite genre en monture ou monture volante sur BC

Nah ça c’est un problème de « clipping ». La distance de vue est limitée (elle a été largement augmentée à tlk je crois donc le problème était moins visible à partir de là) et du coup, si tu vas un peu vite et que le jeu est un peu lent à détecter que tu te déplaces dans cette direction (pour diverses raison, le lag peut en être une), bah il va afficher les différents éléments (mobs, filons, pnj, joueurs…) plus tard que prévu, ce qui va te donner l’impression de voir apparaître les choses au dernier moment (voire après que tu les aies dépassées dans certains cas extrêmes)

Après, le spellbatching affecte peut-être l’affichage des éléments du monde, ça je saurais pas dire. Mais en 400ms tu parcours pas non plus une distance folle donc ça influerait, mais ça ne serait pas le facteur principal je pense.

1 mention « J’aime »

D’accord je vois pourquoi je me fais si souvent avoir avec mon habitude de kick au dernier moment les spells du coup pour etre safe il faut kick une demi seconde avant la fin du cast

C’est comme un jeu tour par tour par cycle de 400ms au final.
Qu’en est t’il de l’ordre de priorité ? y a t’il ne serait’ce qu’un ordre de priorité ou est’ce que tout est réellement simultané?
Prenons bobby il lui reste 500/4000 hp au début d’un nouveau cycle de 400ms
bobby prends un coup de hache d’un guerrier a hauteur de 600degats au bout de 50ms
bobby lance son imposition des mains au bout de 100ms
bobby va t’il mourir ? s’il survit, combien de pv va t’il avoir ? si l’impo passe en prio et que le coup blanc passe après alors il devrait avoir 3400hp, si l’on fait le total heal reçus (4000) - dégats subis (600) il devrait regagner 3400 hp et donc avoir 3900 pv au lancement du cycle suivant.
On appelle ça Spell batching peut être que ça signifie que seul les spells sont affectés par ce système et que donc bobby serait mort avant même d’avoir pu lancer son impo?
Dans ce cas que se passe t’il si bobby lance son impo avant le coup blanc qui lui est fatal ? va t’il crever tout en ayant perdu son cd d’impo ? j’ai l’impression que c’est plutot ce cas de figure vu qu’il me semble avoir déja perdu de la mana en lançant un soin sur un gars qui est quand même mort sans avoir reçu le heal
Si jamais le coup blanc bypass le système de spell batching alors même scénario qu’au dessus mais avec un trait de feu d’un mago de 600 degats, combien bobby aura t’il de pv a la fin du tour ?

Alors, avant d’aller plus loin je tiens à dire que je n’ai pas la science infuse et qu’il donc très possible que ce que je dis contienne des approximations, imprécisions, voire erreurs. Jsuis pas expert et je ne sais pas précisément comment fonctionne wow sous le capot.

Bref, selon des discussions que j’ai pu avoir et des observations que j’ai faites au fil des années à jouer à ce jeu, je dirais que la mécanique d’un batch est la suivante :

  • t=0ms : le jeu vérifie l’état des différentes « choses à surveiller ». Pour reprendre l’exemple du kick, il va donc regarder où en est le cast en cours, et constater qu’il n’est pas terminé.
  • t= 400ms : le jeu regarde où en est le cast et voit qu’il s’est terminé quelque part pendant le batch précédent. Du coup le sort part. Dans le même temps, il va voir que le casteur a subit un kick et va donc chercher à interrompre un cast en cours. Sauf que le cast en question est considéré comme terminé à ce point dans le temps. Du coup le kick est sans effet car il n’y aucun cast en cours à ce moment précis.

Pour ce qui est de la priorité pour des trucs opposés (heal vs dégâts), il me semble que c’est les dégâts qui sont priorisés. J’ai souvenir d’avoir déjà impo des mains quelqu’un mais que la personne meure quand même, bien que mon CD et mon mana soient consommés. Si j’avais été vraiment trop en retard, l’impo serait juste pas partie (on peut pas impo un mort).
Je ne heal pas donc je veux pas parler avec trop d’assurance, mais ce que j’ai pu observer en raid en tant que RL semble confirmer cette théorie (morts de tanks au moment où un heal part)

Du coup dans ce cas je pense que ça donne un truc du style : la cible prend 600 dégâts > elle est morte > elle reçoit 4000hp de soins, sauf que elle est déjà morte du coup c’est sans effet.

Et je pense que c’est le cas pour toutes les sources de dégâts.

Merci pour ces précisions, j’ai quelques dernieres questions qui me viennent a l’esprit , est’ce que les dégats passent avant les cd def aussi? si a t = 0 je lance iceblock et qu’a t = 380 il me lance son trait de feu, je vais quand meme crever avec la double peine du cd gaché pour rien ?
Du coup je peux théoriquement kick un spell qui n’a pas encore débuté ?
Si je kick a blanc a t=0 et qu’a t=380 le mago commence a cast un sheep, il va prendre le kick logiquement non?

Je saurais pas dire avec certitude.

Pour le cas du cd de survie, je pense que la priorité devrait être donnée au cd en question vu que le calcul de dégâts doit se faire sur cette base.

Pour ce qui est du « preshot » du kick, en théorie ça devrait être possible oui, mais j’ai pas souvenir d’avoir déjà vu ce genre de chose. Donc je sais pas trop désolé.

Questions intéressantes qui mériteraient probablement quelques tests en duel :slight_smile:

encore une connerie de la team #NoChanges

1 mention « J’aime »

A savoir que certains éléments ont été design justement autour du spellbatching.

Je pense notamment au Shadow word : Death du prêtre.

J’ai le souvenir qu’au pre-patch de Wod (donc toute fin MoP après saison d’arène) Blizzard avais mis en place les nouveaux serveurs et il était quasiment impossible de swd un CC instant (trap/blind…) ça a très rapidement corrigé (artificiellement) en rajoutant de la latence sur le sort en question.

C’est aussi une solution très efficace qui a été trouvé pour « tuer » les bots/script en PvP.

Les bots auto-reflect (entre autre) étaient légion à MoP, parce que le logiciel tiers avais le temps de récupérer les infos avant le serveur et réagir en fonction.

La réponse est oui.

Hier en duel j’ai profité d’une technique vieille comme le monde (corrige du coup fin MoP) en kickant la fin du warstomp d’une Tauren druid.

Je me suis retrouvé Stun et lui per-kick sur le cast de son sarment.

D’accord, je vois, on peut preshot un kick… sacré système :o
Activision a vraiment tout fait pour torpiller Classic entre l’installation de lag artificiel, le manque de serveur, le layering, les serveurs fermés, le spell batching et l’idée de ne faire que des serveurs anglais (heureusement sur ce point c’est pas passé)

2 mentions « J’aime »

Le spell batching c’est juste là pour coller à ce qui était réalisable sur Vanilla.
Ca aurait surement été plus rapide pour eux de pas l’implémenter.

Au contraire ça doit soulager les serveurs j’imagine et donc c’est une économie.
C’est pour ça que activision est a fond pour le nochange , ça coute rien ^^
L’idée de remettre le spell batching n’a aucun sens vu que sa raison d’etre, la forte latence d’il y a 15ans, n’existe plus

2 mentions « J’aime »

Je pense que le Spellbatching est une mécanique intéressante, mais certainement pas avec 400ms.

Il faudrait pas totalement le supprimer, mais le réduire drastiquement.

Remarque hier ça m’a sauvé la vie. Une escouade de l’alliance a campé devant BRD, j’ai rush en sprint et saute dans le portail. Fin du chargement je me retrouve dans BRD dans le trap d’un chasseur.

Sans ça j’aurai été trap en dehors et probablement mort juste après :frowning:

Si t’as déjà joué sur les versions récentes de wow tu sais que certaines choses sont virtuellement impossibles sans un spellbatching permissif.
Je suis d’accord que le remettre exactement comme à l’époque était une erreur (400ms c’est trop) mais je préfère ça à la version 5ms de bfa.
Dans l’idéal ils auraient fait des batchs de 200-250ms. Ça aurait permis de retrouver les « tricks » de l’époque, tout en réduisant la marge, relativement au gain de latence qu’ont eu les joueurs ces 15 dernières années (perso à l’époque je jouais avec une co 512k et j’avais constamment 150+ ms. Aujourd’hui j’ai la fibre et je suis à 25ms max)

Il me semble que depuis cataclysm, le retour de dégats sur le swd ne dépendait plus du buffet de blizzard. C’etait juste un laps de temps hardcodé dans le spell.
C’etait même devenu plus simple pour les novices de break les blind, repent ect… car une avait une marge plus grande.

Oui, mais qui n’avais pas été décidé au moment de wod comme c’était sur un nouveau spell (la flamme sacrée)

Ah ok, j’avais zapé ce truc.

Je trouve cela fortement dommage.

1 mention « J’aime »