Forum de la communauté SFML
Aide => Système => Discussion démarrée par: Adrisaboss le Février 24, 2014, 01:59:37 pm
-
Salut Laurent et tout le monde.
Je suis en train de faire une super simulation d'IA avec des réseaux de neurones et des algos génétiques, un sujet passionnant. Pour ce faire j'ai donc comme toujours pris ma lib préférée tout en un "O mon dieu c'est trop bien la SFML !".
Bref, les réseaux de neurones ayant besoin de beaucoup de temps pour devenir moins stupides, il n'est pas rare que je laisse tourner mon programme 3 jours à 1 semaine. Pour autant, j'essaye de maximiser le nombre d'updates/s, je dois donc garder une bonne précision au niveau du delta t pour fixer la framerate.
La question est donc : avec la super classe Clock, y a-t-il un overflow, ou un retour à 0, ou une perte de précision quand on laisse tourner le compteur trop longtemps ?
Je pourrais faire un restart mais si je peux conserver une clock qui m'indique l'instant du lancement, je suis pas contre.
Merci pour les infos, à la prochaine !
Adrien
PS : j'ai trouvé un super article traitant de la construction de la game loop. C'est pas un sujet qu'on croise souvent bien expliqué, et l'auteur conclut sur un super système qui rend indépendants l'affichage et l'update (entre autres propriétés bien pensées), je recommande vivement ! : http://www.koonsolo.com/news/dewitters-gameloop/
-
Aucune perte de précision, et tu peux tenir 5849 siècles avant d'avoir un overflow. Ca c'est pour SFML. En ce qui concerne les fonctions sous-jacentes de l'OS, ça devrait aller aussi.
-
Arh, c'est balèze !
Et du coup en interne tu stockes juste les ms dans un int64 ? J'ai fait le calcul, du coup. C'est vrai qu'on est plutôt tranquille avec le 64 bits finalement.
Après, peut-être que si je laisse tourner ma simulation 5000 siècles mes bestioles auront développé une conscience et prendront le contrôle du monde. En gros si ya une révolution de l'IA à la Matrix, je dirai que c'est de ta faute. :P
Blagues à part merci beaucoup, & keep up the good work !
-
Je stocke même les microsecondes dans un entier 64-bits.
-
Laurent, j'ai justement une question concernant les entier 64bits, comment on peut avoir un entier sur 64-bits avec des CPU 32-bits ?
-
Comment peux-tu compter jusqu'à six sur tes doigts alors que tu n'as que cinq doigts à ta main ? En utilisant deux mains ;)
De la même façon, un processeur 32 bits utilisera deux registres 32 bits pour représenter et calculer un nombre 64 bits.
-
D'accord, ben je ne savais pas. Par contre en interne, c'est géré comment au niveau du langage ? C'est un int 32-bits d'un int 32-bits ?
-
En interne c'est un int 64 bits. C'est le compilo qui gère les détails.
-
Ok merci de l'information ;)