Bonjour,
j'aimerai bien discuter de comment gérer la boucle qui génère un jeu temps réel coté serveur avec NodeJS par exemple. Ça pourrait être bien de voir l'ensemble des solutions existante et leur avantages/désavantages.
Pour gérer la simulation d'un monde coté serveur, on raisonne en "tick" ou "tour". La première chose qui vient donc à l'esprit c'est combien de "ticks" par seconde choisit-on?
Comment faire ce choix? Quel impacte sur le jeu?
Ensuite, comment l'appliquer en pratique?
J'ai vu certaines implémentations qui utilisent un 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.
Ensuite il y a la méthode du que l'on peut justement minuté en milliseconde, mais le problème c'est qu'on ne peut pas descendre plus bas que la milliseconde...
EDIT: mais finalement a-t-on besoin de pouvoir faire plus que 1000 ticks par seconde? Cela semble déjà être beaucoup. Du coup cette solution parait attrayante.
J'ai d'ailleurs trouvé un module (dont je ne vois pas l'utilité réel en pratique) mais qui semble confirmer cette approche : https://www.npmjs.com/package/game-loop-dispatch
Mais un autre problème qui me vient en tête : quelques soit la méthode choisit : que se passe t-il si le temps effectif pour passer un tick est supérieur au temps théorique?
Voilà, pas mal de problématique, si vous avez des idées, des retours d'expériences, ou des articles/tuto en français, je suis preneur.
Merci.
j'aimerai bien discuter de comment gérer la boucle qui génère un jeu temps réel coté serveur avec NodeJS par exemple. Ça pourrait être bien de voir l'ensemble des solutions existante et leur avantages/désavantages.
Pour gérer la simulation d'un monde coté serveur, on raisonne en "tick" ou "tour". La première chose qui vient donc à l'esprit c'est combien de "ticks" par seconde choisit-on?
Comment faire ce choix? Quel impacte sur le jeu?
Ensuite, comment l'appliquer en pratique?
J'ai vu certaines implémentations qui utilisent un
Code :
while(true){ tick(); }
Ensuite il y a la méthode du
Code :
setInterval(function(){
tick();
}, INTERVAL);
EDIT: mais finalement a-t-on besoin de pouvoir faire plus que 1000 ticks par seconde? Cela semble déjà être beaucoup. Du coup cette solution parait attrayante.
J'ai d'ailleurs trouvé un module (dont je ne vois pas l'utilité réel en pratique) mais qui semble confirmer cette approche : https://www.npmjs.com/package/game-loop-dispatch
Mais un autre problème qui me vient en tête : quelques soit la méthode choisit : que se passe t-il si le temps effectif pour passer un tick est supérieur au temps théorique?
Voilà, pas mal de problématique, si vous avez des idées, des retours d'expériences, ou des articles/tuto en français, je suis preneur.
Merci.
Dévotion, jeu multijoueur gratuit par navigateur de stratégie et de conquête
The Magic Institute, le jeu de magie médieval fantastique gratuit en ligne
Rapture Studio : créateur de divertissement pour tous
JePolitique.fr - débattons ensemble
JécrisLaConstitution.fr - ne laissons pas les Hommes aux pouvoirs écrire les règles du pouvoir
Je Deviens Citoyen (Association à but non lucratif)
The Magic Institute, le jeu de magie médieval fantastique gratuit en ligne
Rapture Studio : créateur de divertissement pour tous
JePolitique.fr - débattons ensemble
JécrisLaConstitution.fr - ne laissons pas les Hommes aux pouvoirs écrire les règles du pouvoir
Je Deviens Citoyen (Association à but non lucratif)