Effectivement, de retour sur Counter Strike Source après les quelques mois passés sur AION, je me lance dans l’écriture d’un article concernant un sujet sulfureux et d’actualité sous CSS 🙂
En effet, dans la suite de l’article je vais vous exposer mon point de vue à base de réflexions et d’arguments concernant ce réglage tick100 qui à était enlevé des serveurs de jeux suite à la grosse maj Orangebox datant du 23/06/10 , mais qui est désormais possible grâce à un plugin non officiel (un prochain article expliquera comment faire).
Le début de la grogne … :
Voilà donc, nous avons eu la surprise d’avoir droit à une mega MAJ de Counter Strike Source ce 23/06/10 (lien officiel ici) reprenant le contenu en test sur la version BETA ouverte 1 mois auparavant, le 11/05/10 (lien officiel ici).
Pas mal de nouveautées, et surtout de la fraicheur pour un jeux vieux de 2004 !
La sauce OrangeBox étant dans le coin nous avons eu droit à un système de succès pour css, et une UI (Interface Utilisateur) repensée à la façon d’un Team Fortress 2.
Plutôt sympa au premier abord cependant en y regardant de plus près un détail à vite calmé les puristes de CSS et ceux qui jouent avant tout pour le “touché” du jeux et son coté eSport.
En effet, suite à cette grosse MAJ, le jeux aurait migré vers un nouveau moteur, on passerais du moteur “source” au moteur “orange”.
C’est alors que certaines choses ont changées et parmi elles, la généralisation du réglage serveur le plus important au sens “qualité du touché”, le tick rate, désormais bloqué à 66.
Par le passé, lors de l’utilisation d’un serveur Counter Strike Source, nous avions la possibilité de régler le tickrate avec trois choix : 33, 66 et 100 …
Valve n’ayant pas indiqué d’avantage que ceci dans leur MAJ :
“L’option en ligne de commande -tickrate à été enlevée et réglée par défaut en tick rate 66 plutôt qu’en 33 par le passé. Ceci influant sur nombre de choses, incluant :
- Tick rate influant sur la vitesse d’ouverture / fermeture des portes
- Tick rate causant des saccades lorsque le joueur chute au sol
- Tick rate affectant le mécanisme de tir sur certaines armes”
De multiples groupes steam community, ainsi que des pétitions ayant donc trouvés écho suite à cette mise à jour …
Définition du Tick Rate :
Pour ne pas perdre le nord et poser une base à la discution voici une définition du tickrate (source officielle ici) :
De manière simple =>
Tick Rate = Taux de Calcul
Il représente donc le nombres de calcul fait par le serveur sur une seconde.
Par défaut, sur un tick66, ceci est équivalent à un tick, un calcul, toutes les 15 millisecondes soit près de 66 par seconde.
Pour aller plus loin =>
Le tickrate est le paramètre premier d’un serveur de jeux utilisant le moteur Source ou Orange (car le moteur orange est une évolution basée sur le moteur source).
Plus il est élevé plus il permet à l’application serveur de calculer les informations afin de les propager auprès de ces clients (joueurs).
Le calcul des ces informations comprend tout les éléments nécessaires au bon fonctionnement du jeux en multiplayer tel que la position des ennemis, les différents éléments du décors non figés (tonneaux et autres), mais aussi les balles tirées et leurs trajectoires.
Le serveur étant l’élément centralisant les données de tous les clients et les renvoyant une fois recalculées en fonction de chacunes des informations.
Plus le serveur fait de calcul plus les informations sont à jour pour ces clients, ainsi le tickrate est un élément essentiel pour un jeux multiplayer dynamique comme Counter Strike Source, et c’est même le point central qui différencie son “netcode” des autres FPS multiplayers.
Coté serveur, voici comment comprendre la chose =>
C’est un réglage à spécifier parmi d’autres au lancement de l’exécutable serveur de la manière suivante :
./srcds -game cstrike -console -tickrate 100 +maxplayers 13 +map de_dust2 -ip 94.23.219.76 -port 27027 –autoupdate
Les limites du Tick Rate :
Alors certains poussent la chose encore plus loin en voulant augmenter le tickrate le plus loin possible.
C’est ainsi que nous avons connu des offres de serveurs tick 120 voir plus !
Il est donc utile de comprendre les limites de ce réglage 🙂
L’exécutable =>
En effet, l’exécutable lui même est limité lors de ça conception, ainsi c’est purement technique il ne pourra pas atteindre l’infini.
L’exécutable du serveur de jeux Counter Strike Source étant le “srcds” (tout comme Team Fortress 2 ou encore Left 4 Dead), il était annoncé comme limité à sa conception au tick rate 100.
Il était possible de partir sur un des 3 choix palier proposé alors, soit un tick 33, soit un tick 66, soit un tick 100.
Cependant l’option était totalement ouverte, ainsi si vous souhaitiez régler votre serveur en tick rate 1000 c’était faisable ! Enfin c’était réglage ainsi, mais dans la pratique totalement inutile ! Inutile car le moteur à était conçu pour ces 3 paliers évoqués, et en dehors de ces choix les effets ne serait que minimes voir déstabilisant. Cependant il peut être utile de régler un tickrate un poil plus haut que celui d’un palier afin d’assurer le fonctionnement sur ce palier. Ainsi, pour avoir un tick rate 100 “garanti” il est utile de le régler en 105 afin d’assurer les éventuels léger défaut de réseaux en terme de pertes ou défaut sur paquets, et c’était donc faisable sans mettre en danger la stabilité du serveur.
Désormais, bien que l’exécutable n’ai pas changé (toujours le srcds), sa valeur par défaut à était bloquée à un tick rate 66 lors de la MAJ Orangebox…
La bande passante internet =>
Une limite “naturelle” importante étant bien entendu la bande passante internet… Si le serveur ne peut pas transmettre les informations rapidement par internet à cause d’une bande passante problématique, le tickrate aura beau être bon, il n’en sera pas plus utile.
Cette limite posant surtout problème d’un point de vue client (joueur) ainsi si votre connexion internet n’est pas puissante vous transmettrez en retard ou en défaillance les informations au serveur, et vous provoquerez donc des pertes de paquets ou des corruptions de paquets (visible en netgraph par loss et choke respectivement).
C’est aussi pour celà que le joueur doit régler quelques variables (les cvar client cl_cmdrate, cl_updaterate, rate, cl_interp, et cl_interpratio ) afin d’être en parfaite adéquation avec le serveur.
De manière basique, ces réglages permettent de dire combien d’informations votre ligne internet est apte à recevoir par le serveur, et de même le serveur indique combien d’informations il est apte à transmettre à chaque client grâce à sa ligne internet. Sachant que le nombre de ces informations dépend du tick rate, on comprend alors que plus le tick rate est élevé, plus il faut que la bande passante internet du serveur, et de ces clients, soit suffisante.
La consommation CPU =>
Voilà donc le véritable nerf de la guerre, la consommation d’un serveur de jeux augmente en fonction du réglage de tick rate que vous lui spécifiez. Il va sans dire, que plus vous lui demandé de faire de calcul, plus il sera consommateur d’énergie.
Cette consommation est surtout flagrante d’un point de vue processeur, mais aussi bien entendu d’un point de vue bande passante comme indiquée au dessus, et naturellement d’un point de vue énergétique.
Ceci est valable aussi bien d’un point de vue client que serveur, cependant, la problématique est toute différente en fonction du point de vue. On est bien d’accord que sur votre pc, que vous jouiez en tickrate 33, 66 ou 100, vous ne verrez généralement pas de différence d’un point de vue ressource consommée par votre pc. Cependant, coté serveur, c’est autre chose ! Une chose simple, le serveur calcul au moins autant d’informations que votre pc, mais à multiplier par le nombre de joueurs qu’il à en charge ! Bon d’accord, à sa décharge la partie calcul graphique pour le rendu 3D, mais il est tout de même important de comprendre que pour le coup, le calcul d’au moins 10 joueurs n’est pas une moindre à faire, et plus vous augmentez le tickrate plus le serveur travail dur. Est ceci est à multiplier encore une fois de plus par l’augmentation du nombre de joueur en charge … Vous comprendrez donc facilement le côut élevé d’un serveur tick100 avec 32 joueurs qui est en théorie censée représenter la charge de prêt de 9 serveurs tick33 10 joueurs ou plus de 3 serveurs tick100 10 joueurs !
Le débat entre tickrate 66 orange et tickrate 100 source :
En effet il s’en dit des choses depuis cette MAJ !
Voyons point par point des choses qui sont bien souvent repris dans les débats.
Le moteur n’est plus le même, Orangebox contre Source Engine ?
Il s’agit toujours du même moteur, le Source Engine, pour preuve nous utilisons toujours le même exécutable srcds, mais il semble clair que celui ci à évolué, nous sommes d’accord.
Les fichiers serveur ont évolués, ont été mis à jour, mais ce sont les mêmes ! Le moteur orange est donc tout simplement une évolution du moteur source, aucun hébergeur de serveur n’à dut installer une nouvelle application serveur, nous avons simplement eu à faire une mise à jour …
Cette évolution est donc communément appelée Orangebox.
Le tickrate 66 d’après la MAJ Orangebox serait équivalent à un tickrate 100 d’avant.
La question est intéressante, certains dires indiquent qu’un tick rate 66 toucherais mieux que par le passé, au point d’être équivalent à un tick rate 100 ?
Difficile à croire quand personnellement je repense à Team Fortress 2 sur lequel les tick rate étaient déja bloqués à 66 en étant sur le moteur Orange mais sur lequel la sensation de touchée étaient clairement inférieur à un serveur Counter Strike Source de l’époque en tick rate 100 …
C’est tout de même possible dans le sens ou les dev Valve ont travaillé à améliorer le netcode de CSS, on découvre donc la nouvelle notion de “lerp”, basé sur l’interpolate passé, et une gestion plus accrue de la notion de prédiction client (cl_predict).
Il semblerait donc que Valve ai décidé de décharger un peu le serveur par ces méthodes, mais temps que des tests ne seront pas fait honnêtement et sérieusement, nous ne pourrons pas réellement répondre à cette question.
L’uniformisation des réglages serveur et client, un gage de qualité et d’équilibre entre tous.
En effet, ce blocage a un unique paramètre possible serveur peut trouver sont explication de par le fait que ainsi les clients n’ont plus besoin d’adapter leurs réglages en fonction du tickrate du serveur sur lequel ils jouent …
Ceci semble bien pensé, d’autant que seul CSS avait cette option de tick rate élevé dans la série des jeux exploitant le moteur Orangebox.
Ce réglage permettant à Valve de proposer un produit encore plus grand public, sans exclure les joueurs ayant des connections trop limite pour jouer sur des serveurs de qualité élevée tel que le demande un tick rate 100.
Et c’est bien là qu’est délaissé le public des joueurs pratiquant CSS pour son coté eSport et compétition.
Afin de ne pas rentrer en contradiction avec cette idée d’uniformisation qui est très bien, j’attend avec impatience l’arrivée de la nouvelle version de zBlock qui nous permettra de forcer des réglages de connection uniquement sur les serveurs war.
Le réglage en tick rate 100 alors que ce n’est plus faisable par défaut depuis la MAJ Orangebox engendrerait des instabilités et pourrait provoquer plus de problèmes que d’améliorations.
Effectivement, lorsque l’on pousse un serveur dans ces retranchements, il peut y avoir des effets secondaires gênant, le plus flagrant et lorsque vous allez jouer sur un serveur un peu trop KikooLol avec des milliers de plugins ainsi par conséquent on ce trouve victimes de pas mal de freezes, décalages, et même plantages …
Mais je ne pense pas pour autant que les développeurs de Valve auraient volontairement rendu l’application plus instable que par le passé, ainsi si il y à des instabilités entre un tick 66 et un tick 100 elle ne devraient en théorie pas être aussi impressionnante que celà puisse paraitre.
Par le passé lorsque les GSP proposés des tickrates 120 voir plus, c’était exactement le cas, il fallait peser sur la balance 3 choses, les erreurs provoquées par ce réglages “extrême”, le gain en performance et en touché, et la consommation processeur.
Aujourd’hui il s’agirait donc de refaire cette évaluation avant de tirer conclusion hâtive.
Entre le business des GSP et l’extrême des kikoulol :
La problématique des GSP =>
Comment vendre un serveur en tick 66 actuel au prix d’un serveur d’un tick 100 par le passé ?
Comme toute entreprise, les Verygames et consort doivent faire des bénéfices sur l’exploitation des produits serveur Counter Strike Source, ainsi le gros hic de cette MAJ étant que les serveurs sont dorénavant beaucoup plus gourmand.
Là où la chose leur à était pratique, est que Valve à bloqué ce réglage de tick rate à 66, sachant que c’est ce réglage qui fait augmenter le plus significativement parlant la consommation d’un processeur serveur.
Toujours plus gros pour mon serveur kikoulol =>
En effet de l’autre coté nous avons des jeunes gamers (ou moins jeunes) qui comme dans bien des domaines, aiment ce satisfaire d’un sentiments de supériorité dès que possible, ainsi certains partent à quête d’un serveur tick 1000 avec 10 000 FPS !
Nous sommes bien entendu tous d’accord sur le fait que celà ne ressemble plus au but d’origine qui est d’avoir un serveur qui touche bien et qui ne freeze pas.
Le juste milieu, un équilibre dur à trouver =>
Pour conclure tout est question d’équilibre. Effectivement, un serveur qui aura le tick rate le plus élevé possible sera toujours mieux, pourvu qu’il ne soit pas instable ! Il faut donc tester tester et tester ces configurations puis trouver des benchmarks qui pourront établir la vérité sur ces sensations que nous avons tous, de toucher ou pas, avant de pouvoir conclure.
Le tick 100 touche mieux que le tick 66 sous l’orange box et surtout qu’il n’engendre pas de problème ?
Moins d’un mois après cette MAJ Orangebox, nous auront assez recul seulement après avoir fait des tests digne de ce nom, et ce n’est pas l’impression de un tel qui joue que en High ou un autre qui à tel médaille ESL qui ne pourrons trancher sur le sujet car les impressions sous CSS c’est comme les goûts et les couleurs, tout est relatif à chacun !
Edition :
2 aout 2010 =>
– Quelques emplois du conditionnel au vue du caractère très théorique des informations
– Enrichissement de la section “Les limites du Tick Rate” pour la partie “L’exécutable”, la partie “La bande passante internet” et la partie “Consommation CPU”
– Enrichissement de la section “Le débat entre tickrate 66 orange et tickrate 100 source”
Lien relatif avec le sujet =>
Ancien article analysant le netcode http://www.e-t172.net/articles/srcnetcode/
Vakarm donne quelques conseils sur la maj Orangebox http://www.vakarm.net/view-news-CSS-passe-l-orange_read-1973-en.html
Wiki officiel Valve concernant le tickrate http://developer.valvesoftware.com/wiki/Tickrate#Basic_networking