Question:
Qu'est-ce qu'une tique?
korrasaur
2015-03-18 00:27:45 UTC
view on stackexchange narkive permalink

Qu'est-ce qu'une tique?

J'ai entendu de nombreux cas d'utilisation de tiques. Par exemple, les gens diront que les démos sont enregistrées en 16 ticks, que les serveurs tournent en 64 ticks, mais de très bons serveurs fonctionneront en 128 ticks.

Je ne comprends pas exactement ce qu'est une ticks exactement. Pourquoi avoir des puissances supérieures de 2 serait-il meilleur? J'ai vu beaucoup de discussions sur le fait de demander à Valve d'ajouter des serveurs de ticks plus élevés, mais qu'est-ce qu'un "tick" plus élevé vous apporte?

Un insecte suceur de sang.Lorsqu'ils sont rencontrés en grand nombre, vous avez des poly-ticks, ce qui explique beaucoup.
@MasonWheeler Je vois ce que tu as fait là-bas
Le son qu'une horloge analogique produit lors du comptage des secondes.
Cinq réponses:
user101016
2015-03-18 01:15:34 UTC
view on stackexchange narkive permalink

Qu'est-ce qu'une coche?

Pour comprendre la signification d'une coche, vous devez d'abord avoir une compréhension de haut niveau d'une boucle de jeu. Dans une boucle de jeu standard, vous avez trois fonctions principales:

  1. Traiter les entrées de l'utilisateur
  2. Mettre à jour l'état du jeu
  3. Rendre à l'écran
  4. Celles-ci seront répétées en boucle tout au long du jeu. Il y a des contrôles sur la boucle afin que 2 éléments matériels différents (par exemple, des PC) n'exécutent pas la boucle à des taux différents. Ceci est également important dans les configurations serveur-client comme Counter-Strike afin que tous les clients soient synchronisés. Un tickrate est utilisé pour contrôler la fréquence à laquelle l'état du jeu est mis à jour. Un tickrate de 60 mettrait à jour l'état du jeu 60 fois par seconde. Vous verrez souvent ce nombre représenté sous la forme de ticks , tickrate , ticks par seconde et tps .

    Notez que le rendu à l'écran est souvent contrôlé différemment (courant pour voir 60 images par seconde , ou 60fps ). Les boucles complexes tentent de découpler la vitesse de défilement et la fréquence d'images, de sorte qu'un temps de traitement plus long ne provoque pas de sauts dans les graphiques. Bien que liées, il est important de comprendre que les mises à jour du jeu (contrôlées par ticks par seconde ) sont différentes des mises à jour d'écran (contrôlées par images par seconde ).

    Certains jeux en ligne tels que Titanfall ont des tickrates beaucoup plus bas (20). Cela signifie que chaque seconde, le monde du jeu a été mis à jour 20 fois et rendu à l'écran 60 fois (en supposant 60 fps ).

    J'ai vu beaucoup de discussions sur demander à Valve d'ajouter des serveurs de ticks plus élevés, mais qu'est-ce qu'un "tick" plus élevé vous apporte?

    Un taux de tick élevé rendra le jeu plus réactif car vos actions (déplacement, tir, etc.) sont reflétés dans l'état du jeu plus régulier. Cependant, il est plus exigeant pour votre machine / serveur et votre réseau client potentiel.

    Pour un tickrate plus élevé, les machines bas de gamme peuvent avoir du mal. De plus, en fonction du netcode (qui peut être optimisé pour 60 plutôt que 100+), vous pourriez voir d'autres bogues avec la synchronisation, des problèmes de virgule flottante, etc.

    Donc, en bref, un taux de tick plus élevé verra les avantages si les clients peuvent suivre (avec le processeur et la bande passante). À défaut, ils connaîtront plus de retard / problèmes que sur un serveur à 60 ticks. De plus, le coût sera plus élevé pour les serveurs d'exécuter des taux de ticks plus élevés (plus les coûts de bande passante, car vous mettez à jour les clients plus souvent).

    D'autres jeux avec des serveurs dédiés auront des taux de ticks beaucoup plus bas que 60, à la fois pour augmenter l'audience (plus de personnes capables de courir sans problèmes) et pour réduire les coûts. Le jeu ne se sent pas aussi réactif qu'un jeu / serveur à taux de ticks plus élevé, ce qui est très mineur étant donné que nous parlons de taux de mise à jour de 20 ou 60 fois par seconde. Combien de fois pouvez-vous cliquer sur la souris en une seconde, de toute façon?

    Lectures complémentaires:

  • Netcode - donne quelques références à tickrates
  • Game Loop - il est bon de comprendre comment les tickrates et frame rates sont généralement gérés par tout jeu
  • 10 Tick Rate sur Battlefield - tollé des jeux fonctionnant sur des tickrates
Notoirement, EVE Online est un jeu en temps réel qui s'exécute en 1 tick par seconde, et dans les situations de stress sur le serveur, il ralentit à 1/10 tick (se produit lorsque plusieurs milliers de joueurs se battent dans un seul endroit).Cependant, ce n'est pas trop un problème là-bas, car les réactions rapides donnent la priorité à des tactiques et à une préparation supérieures dans un combat d'une heure.Dans les jeux TBS, un "tick" peut être en quelques minutes, donc tous les jeux ne bénéficient pas de taux de ticks élevés.
@Ordous Je soupçonne que même les jeux TBS ont un taux de tick, même si les actions des joueurs ne sont pas directement liées à cela: il serait nécessaire pour rendre de jolies animations, si rien d'autre.
Sean Allred
2015-03-18 03:11:14 UTC
view on stackexchange narkive permalink

En termes simples, un `` tick '' correspond à la plus petite quantité de temps que le moteur de jeu traite - c'est le nombre de pas discrets que le jeu peut parcourir en une seconde.Avec un taux de tick plus élevé, la physique du jeu peut sembler plus fluide ou plus. réaliste, mais cela a un coût élevé en puissance de traitement.

Dans un autre sens, c'est un décompte du nombre «d'échantillons» que vous prenez dans un scénario (théorique) réel. Plus vous prenez d'échantillons, moins les données sont instables.

Powerlord
2015-03-18 01:26:50 UTC
view on stackexchange narkive permalink

Le tickrate du serveur est le nombre d'images de jeu que le serveur traite en une seule seconde. Ceci est parfois également appelé le FPS du serveur, ce qui est déroutant car le serveur a toujours la commande max_fps .

À chaque image de jeu, le jeu appelle la méthode GameFrame d'une entité ( s'il en a un) pour tout traitement logique du jeu. Pour les projectiles, les joueurs, les portes, etc ... cela inclut le traitement physique. Le jeu utilise également une logique interne pour le moment ... et tous les plugins de serveur de valve (VSP) tels que MetaMod: Source et SourceMod peuvent également avoir leurs propres appels GameFrame (pour SourceMod, cela est utilisé pour les minuteries SourceMod et tous les OnGameFrame).

Comme vous l'avez peut-être deviné, plus vous définissez le tickrate élevé, plus le jeu utilisera de puissance CPU.

Cela ne doit pas toujours être une puissance de 2. En fait, certains propriétaires de serveurs CS: GO ne jurent que par 102 / 102,4 ticks au lieu des 64 et 128 tickrates par défaut. Ils affirment que cela rend les performances du serveur plus cohérentes et réduit les pics de CPU.

Cependant, cela peut avoir changé car Valve a mis à jour le jeu.

Gardez à l'esprit que régler le tickrate plus haut seul n'améliorera pas l'expérience des joueurs. Vous devez également vous assurer que vos tarifs sont correctement définis pour la quantité de bande passante dont vous disposez.

Comme pour les autres jeux de Valve, beaucoup utilisent des tickrates verrouillés:

  • 30 images de jeu par seconde
    • Left 4 Dead
    • Left 4 Dead 2
  • 66 images de jeu par seconde
    • Jour de la défaite: Source
    • Counter-Strike: Source
    • Team Fortress 2

Le 66 Les jeux d'images par seconde n'étaient pas toujours verrouillés à 66. Valve a changé cela quelque temps après avoir modifié le code du jeu. Ces changements ont rendu certains jeux (TF2 en particulier) beaucoup plus sensibles aux changements de tickrate ... le définir trop haut ou trop bas a changé la vitesse à laquelle les portes s'ouvraient / se fermaient et causaient des problèmes.

Par ailleurs, le tickrate du serveur et le tickrate du client peuvent ne pas être les mêmes.Le client peut restreindre la fréquence à laquelle il reçoit des trames du serveur (`cl_updaterate`).Cela dit, le serveur peut définir des valeurs minimales et maximales pour ces paramètres (`sv_minupdaterate` et` sv_maxupdaterate`).Indépendamment de ce que vous définissez ces min et max, le serveur traitera les images de jeu `-tickrate` par seconde au nombre de millisecondes le plus proche (c'est-à-dire que 66 ips équivaut à 1000/66 ou 15 ms).
Alors, comment un tickrate élevé se convertit-il en taux de ticks plus bas, dans le cas d'une démonstration faite sur un serveur de valve (comme toutes les démos sont faites en 16 ticks apparemment).
@0-framelinks Un fichier .dem côté client contient tous les paquets qu'un client a reçus et enregistrerait donc à n'importe quel `cl_updaterate` qu'un client utilisait (en supposant que leur` rate` était suffisamment élevé pour le maintenir).Un .dem côté serveur créé avec SourceTV / GoTV côté serveur (en utilisant `tv_record`) contient beaucoup plus d'informations car il enregistre tout ce qui se passe dans chaque cadre de jeu partout sur la carte et n'a pas de perspective fixe.
Notez que le tickrate et le framerate sont souvent découplés.De nombreux jeux ont un FPS beaucoup plus élevé que le TPS, et DwarfFortress a un TPS beaucoup plus élevé que le FPS.
TheFaster
2015-03-18 00:30:28 UTC
view on stackexchange narkive permalink

Depuis un Forum Counter-Strike:

À chaque tick, le serveur traite les commandes utilisateur entrantes, exécute une étape de simulation physique, vérifie les règles du jeu et met à jour tous les états des objets. Après avoir simulé un tick, le serveur décide si un client a besoin d'une mise à jour mondiale et prend un instantané de l'état actuel du monde si nécessaire. Un tickrate plus élevé augmente la précision de la simulation, mais nécessite également plus de puissance CPU et de bande passante disponible sur le serveur et le client.

Veuillez inclure votre source.
Qu'est-ce que la précision de la simulation?Je ne comprends pas exactement ça
On y va.Je l'avais dans le presse-papiers, j'ai juste oublié de le lier.Merci.
@0-framelinks Eh bien, si plus de calculs sont effectués par seconde, vous obtiendrez une simulation plus précise et plus précise, non?
Donc, fondamentalement, une coche est la précision des informations transmises au serveur par le client?
@0-framelinks Oui.Essentiellement, diminue tout décalage entre ce que fait le joueur et ce qui se reflète dans le monde.
Valid
2015-03-19 01:15:02 UTC
view on stackexchange narkive permalink

En un seul clic, le moteur de jeu traite toutes les actions (que ce soit d'un utilisateur ou d'une IA ou d'un autre processus interne) et met à jour l'état et l'emplacement de tous les objets dans le monde en conséquence. Le moteur de rendu prend tous les états et emplacements et affiche les objets sur votre écran en utilisant votre emplacement dans le monde. Pour un jeu autonome, il y a normalement un rendu par tick. Pour un jeu en ligne, la relation dépend du jeu - par exemple. votre client World of Warcraft reçoit des informations d'état et de localisation du serveur et votre machine locale restitue simplement les objets à son propre rythme.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...