JeuWeb - Crée ton jeu par navigateur
Boucle & tick coté server NodeJS? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Boucle & tick coté server NodeJS? (/showthread.php?tid=7509)

Pages : 1 2 3 4 5 6 7 8


RE: Boucle & tick coté server NodeJS? - Argorate - 24-11-2015

@Sephi-chan : oui, mais comme je disais à rom (un ami) ce qui est gênant avec ce procéder, c'est qu'il faut faire le jeu pour savoir si le jeu est faisable... C'est paradoxale.

@niahoo : Je préfère avoir le contrôle sur les ticks.

Pour ce qui est de la soustraction, c'est pas très sérieux, tu sais ce que j'entendais par là. Tu vas devoir calculer pour chaque chose, exemple le mouvement, combien de mouvement en fonction de la vitesse et du fameux delta time, ça fait donc d'énorme calcule pour chaque chose simulé qui sera donc fonction du temps. Alors que si un tick est l'unité de temps. Le joueur avance de X à chaque tick, point barre.


RE: Boucle & tick coté server NodeJS? - Sephi-Chan - 24-11-2015

Il faut anticiper, faire un prototype. Et après il faut forcément se lancer.


RE: Boucle & tick coté server NodeJS? - niahoo - 24-11-2015

Il avance de x à chaque tick.
Il avance de x * delta / tickTime à chaque tick.

Franchement c'est pas la mort. Surtout si tu définis une fonction à la volée qui fait le calcul, tu peux activer / désactiver ce coportement :

Il avance de f(x) à chaque tick.

Voilà ensuite je défends pas ce système dans ton cas spécialement, mais il est utilisé sur de nombreux jeux et c'est vraiment loin d'être compliqué.


RE: Boucle & tick coté server NodeJS? - Argorate - 24-11-2015

Oui niahoo, sauf que j'ai pris un exemple : le mouvement, mais ton delta T, tu dois te le trimballer pour TOUTES les interactions de tous les objets de tout le jeu...
C'est pas ultra compliqué en soit de faire un produit en croix, mais ça rajoute de la complexité au code, à lecture du code et au fonctionnement en général.
Enfin c'est l'idée que je m'en fais^^


RE: Boucle & tick coté server NodeJS? - Xenos - 24-11-2015

Et du coup, tu préfère appeler N fois le code de simulation à pas fixe dt, plutôt que de l'appeler 1 fois avec le pas quelconque Dt ? Je trouve pas ça top niveau réautilisabilité... Et comment cela va se passer quand il faudra modifier la valeur du pas de calcul (pour passer de 60Hz à 30Hz car c'était overkill ou l'inverse)?


RE: Boucle & tick coté server NodeJS? - Argorate - 24-11-2015

C'est très simple, tu augmentes le temps du setInterval ou tu le réduits, ou tu met une variable que tu peux modifier plus facilement encore sans avoir à relancer le serveur.

En tout cas, c'est cette façon de faire qu'on a utiliser en JAVA durant mon master en programmation orienté agent, la différence était qu'on ne limité pas à X tick par seconde, mais qu'on laisser la machine les enchainer au maximum de sa capacité puisque le but était de faire défiler le temps le plus rapidement que possible.


RE: Boucle & tick coté server NodeJS? - Sephi-Chan - 24-11-2015

(24-11-2015, 09:30 PM)Argorate a écrit : En tout cas, c'est cette façon de faire qu'on a utiliser en JAVA durant mon master en programmation orienté agent, la différence était qu'on ne limité pas à X tick par seconde, mais qu'on laisser la machine les enchainer au maximum de sa capacité puisque le but était de faire défiler le temps le plus rapidement que possible.

Dans ton post initial l'idée de ne pas contrôler le nombre de ticks te dérangeait…

(22-11-2015, 09:37 PM)Argorate a écrit : J'ai vu certaines implémentations qui utilisent un
Code :
while(true){ tick(); }
mais ça semble très douteux puisqu'on ne contrôle plus le nombre de ticks en faisant cela. Ça dépend de la capacité de la machine et du nombre de choses à calculé par tick. Ça me parait être une mauvaise solution, peu stable.

Je ne vois vraiment pas ce qui t'embête avec un pas fixe et le fait de trimbaler ton delta partout.


RE: Boucle & tick coté server NodeJS? - Argorate - 24-11-2015

Oui, comme je l'ai dis, le but n'était pas le même : on voulait faire défiler plus rapidement le temps que dans la réalité, ce qui n'est pas le cas pour un jeu en temps réel.

Comme je l'ai dit à Niahoo, le delta est un facteur de complexité.


RE: Boucle & tick coté server NodeJS? - Xenos - 24-11-2015

Je ne comprends toujours pas, puisque dans les deux cas tu ballades quand même une variable Dt dans le code. Niahoo te dis d'en faire une vraie variable (calculée à la volée) plutôt que de la définir comme une "constante"... Bref, de toute façon, tu passe Dt à ta méthode de calcul de l'univers de jeu, que ce Dt soit "dicté" par le dev ou simplement calculé à la volée, je ne vois pas ce que cela change.


RE: Boucle & tick coté server NodeJS? - Sephi-Chan - 24-11-2015

D'accord mais quel est le problème d'avoir cette complexité ?

Le bon niveau de complexité dans le code, c'est quand tu as de quoi faire ce dont tu as besoin.
Ici, tu as besoin de tenir compte du temps qui s'est écoulé depuis la dernière exécution du code.