Home     Email

Pourquoi, comment ...

 



But recherché.

Je suis moi même joueur occasionnel de billard français (aux alentours de 1 de moyenne, mon record de série étant de 15). Je ne dispose pas d'un billard à la maison, j'aimerais regarder et comprendre comment jouent les bons joueurs plus souvent. Par conséquent, c'est dans la lecture d'ouvrages plus ou moins techniques consacrés à ce jeu que j'ai cherché à comprendre, à progresser, et à préparer le temps que je passe autour d'un billard. Certains livres sont vraiment très " basiques ", répètent des conseils de base, d'autres sont axés beaucoup plus sur la conception, et réclament un niveau que je suis loin de posséder.

De même que je ne suis pas pilote (seulement quelques heures de vol sur planeur), ni coureur automobile, (quelques heures de kart), je prends toujours beaucoup de plaisir à effectuer une approche O'Hare avec un gros porteur ou à dévaler à fond le raidillon de l'Eau Rouge à Spa avec des simulateurs comme FS98 ou GP2.

Pourquoi par conséquent ne pas rêver un peu à un mécanisme parfait, un billard disponible à tout heure, et, tenter des figures de billard artistique sans crainte pour le matériel? Et pourquoi, tout simplement, ne pas enchaîner des coups et essayer de comprendre la raison pour laquelle "ce coup pardonne une certaine maladresse" et tel autre n'est pas bon.

Le but recherché à l'écriture de ce programme est donc double. Réaliser un simulateur. C'est à dire, rester proche de la réalité, le plus proche possible. Et également se faire plaisir en écrivant le soft, et en voyant sur un écran se dérouler des phénomènes physiques somme toute assez simples, mais aux conséquences complexes.


Simulateur ou Jeu ?

Je suis convaincu qu'il est parfois plus facile d'écrire un jeu qu'un simulateur. Plusieurs raisons à cela. La principale, un jeu est fait pour s'amuser, pour echapper à la réalité et à ses contraintes. Autant alors faire rêver en ayant des armes surpuissantes, des avions de légende et des voitures de course. De plus, quand on s'amuse à passer une courbe à 250km/h en mordant sur les chicanes, est-on bien sûr que le comportement de la voiture est correctement restitué ?. Qui peut juger ?.

Imaginons un instant que quelqu'un écrive un simulateur de 4L (Renault 4). Alors là, je suis sur que les remarques seraient abondantes. Négliger un bruit dans l'habitacle se traduirait chez beaucoup de gens par un " c'est pas mal, mais tu vois, dans une vraie 4L, quand on passe sur une bosse ... ". Le même utilisateur ne trouvera rien à redire sur le comportement d'une F1 simulée.

Alors, que faut il faire ?. Ecrire un jeu qui reste fidèle à la réalité ?. En gros, un beau jeu, avec de beaux graphiques et des comportements à peu près sains. Ou un bon simulateur très rustique, très sobre, qui traduit fidèlement la réalité.

Pour ma part, j'ai longtemps joue à Flight Simulator, et ce depuis la version sur commodore64. J'ai toujours préféré un simulateur comme celui-ci à des jeux avec des avions qui grimpent à la verticale et défient les lois les plus élémentaires de la physique. Sans parler de celles de l'aviation. D'un autre côté, j'achèterais tout de suite un bon simulateur de 4L. En attendant je joue à GP2.

On peut aujourd'hui, avec la puissance des machines faire les deux. De beaux jeux réalistes. FS98 ou Flight Unlimited 2 par exemple. Le problème est à mon avis que les compétences "humaines" exigées pour l'écriture de tels softs sont diverses. Je suis sur que la puissance des machines ne fait pas tout. Loin s'en faut.

Je préfère pour ma part passer du temps à restituer les effets sur une bande, et à trouver des lois " réalistes ", choses que je sais faire, plutôt qu'à faire tourner le billard en 3d. Manque de temps, de pratique. Envie de faire autre chose aussi ...


Aspect Informatique.

Une première version de ce soft a été écrite en 95 avec un compilateur BorlandC++ pour windows. Cette version me plaisait beaucoup car elle marchait raisonnablement bien sur des machines peu puissantes (un 386 à 20MHz commençait à être un peu juste), et surtout, sous windows 3.1. La maintenance de cette version et des ajouts d'améliorations a pris fin le jour ou j'ai perdu le compilateur ...

J'ai longtemps hésité à réécrire cette version sous VisualC++, car la plupart des " utilisateurs potentiels " du soft (les clubs, les joueurs de club), ne disposaient que de pc " rustiques ", très souvent sous windows 3.1.

 En fait, la partie calcul tient en quelques pages et est très facile à porter. L'aspect interface est plus délicat à programmer si on veut tirer partie des nouvelles possibilités : barre d'outils, barre d'état, menus... et j'ai mis longtemps avant de franchir le pas. Je ne regrette pas, car avec une machine puissante, on peut simuler en temps réel les trajectoires, par exemple en modifiant la prise de bille ou l'effet, ou la force ... Cet aspect temps réel est des plus plaisant, et aussi un peu dangereux, car on finirait par croire que tous les coups sont faciles.

Je compte enrichir prochainement ce paragraphe et le suivant en détaillant ma façon de faire. Il n'y a rien de sorcier, mais si des personnes non familières avec des notions de mécanique, d'équations différentielles, ou encore de synchronisation de tâches peuvent apprendre quelque chose, j'en serai ravi.


Aspect Physique.

Vous voulez en savoir un peu plus, visitez (tout à l'heure) la page sur Billard et physique

" Le jeu de billard, tel qu'il est devenu aujourd'hui, par l'usage des queues propres à donner aux billes d'assez forts mouvements de rotation, offre divers problèmes de dynamique [...] Je pense que les personnes qui ont des connaissances de mécanique rationnelle, comme les élèves de l'Ecole Polytechnique, verront avec intérêt l'explication de tous les effets singuliers qu'on observe dans le mouvement des billes".

On peut lire ce texte dans l'ouvrage de CORIOLIS, (eh oui, LE Gaspard-Gustave CORIOLIS) intitulé " Théorie mathématique des effets du jeu de billard ". Cet ouvrage, paru en 1835 apporte un traitement rigoureux, très géométrique, des phénomènes en jeu. (Au passage, je recommande aux amoureux de sciences et d'histoire des sciences les livres des éditions Jacques Gabay, on y trouve une réimpression de ce livre, ainsi que les textes originaux d'auteurs comme Abel, Ampere, Boltzmann, Louis de Broglie, Dirac, Lebesgue, Liapounov ... et bien d'autres encore. De Magnifiques Livres.)

Il est vrai que le billard offre de beaux problèmes de mécanique. Tout repose sur les chocs et les frottements, chers aux professeurs de mécanique du solide, et ils sont dans le jeu de billard très nombreux. On peut citer entre autre :

  • le frottement des billes sur le tapis
  • le frottement des billes entre elles au cours d'un choc
  • le frottement des billes sur les bandes


    Pour ne citer que le premier frottement, ceux qui ont eu le loisir de traiter du cas général du mouvement d'une bille sur un plan horizontal, gardent en mémoire que la trajectoire décrite est un arc de parabole, avant que la bille roule sans glisser. Ensuite, la trajectoire est rectiligne.

     Les équations de ce mouvement sont assez simple à établir. Pourtant, dans les ouvrages de physique, une bille qui roule sans glisser, le plus souvent roule indéfiniment. La réalité est tout autre. Une bille qui roule finit par stopper. Est-ce dû à un frottement fluide avec l'air, à un " frottement " dû à la déformation du tapis (ici, c'est la route qui se déforme et le pneu qui est rigide)... Traduire cette perte d'énergie de la bille est quelque chose de difficile si on veut coller à la réalité.

    Autre exemple, les joueurs de billard savent bien que la réflexion sur une bande dépend de la force avec laquelle la bille choque la bande. Plus la vitesse est grande, plus l'angle de réflexion se resserre. Traduire ce phénomène en une équation est la aussi non trivial, surtout si on essaie de mettre en équation le "vrai" phénomène.

    Le simulateur, (dans la mesure où ils sont simulés), permet de mettre ces phénomènes en évidence, de les expliquer à un joueur novice, ou encore de se convaincre soi-même. Voici par exemple ce que donnent deux coups joués dans la même direction, avec le même effet, mais avec deux forces différentes.

    Et le même coup , mais cette fois joué plus fort, le point d'arrivée n'est pas le même.


    Réalisation.

    Comment faire pour traduire ces phénomènes et obtenir une simulation réaliste ?

    Primo, il faut déjà établir les équations simplifiées. C'est à dire le comportement des billes lors de chocs sur des objets. On trouve les outils mathématiques nécessaires à cela dans tous les cours de mécanique du solide. L'ouvrage de Coriolis peut aider, mais le formalisme est ancien, et pour ma part, j'aime bien les torseurs, les produits vectoriels et autres écritures " modernes". La façon de faire de Coriolis est elle, très géométrique.

    Secundo, il faut trouver des termes correctifs de façon à traduire ou à corriger les effets observés avec la simulation par rapport à la réalité. Là, plusieurs options sont envisageables. Par exemple, soit comprendre et calculer la déformation de la bande qui ferme l'angle de réflexion lors du choc, mettre tout ça en équation et simuler, soit, et c'est l'approche que j'ai choisie, introduire des termes correctifs issus de l'observation des phénomènes sur un vrai billard.

    Par exemple, j'ai introduit dans le traitement des bandes un terme correctif de façon à ce que je puisse simuler les réflexions sur les bandes pour que marchent les coups classiques de 3 bandes. Pour les initiés, j'ai tenté de faire en sorte que le diamond system marche sur mon billard.

    Tertio, et c'est un aspect difficile, il faut donner des valeurs aux différents paramètres évoqués ci-dessus. Pour cela, plusieurs façons de faire. Mesurer ces valeurs. Par exemple : 2 billes attachées avec un élastique pour les empêcher de rouler, placées sur un plan recouvert d'un bout de tapis que l'on incline pour déterminer le coefficient de frottement ... Ca marche !. Ou encore une vidéo pour comparer les vitesses et les pas de temps d'affichage ... Le pifomètre à vernier ! Tout est bon !

     Je compte expliquer en détail l'architecture et les algorithmes bientôt. Je pense courant septembre 99. Il faudra passer à ce moment là.


    Remarques, critiques

    Cependant tout n'est pas parfait, certains effets sont sujets à critiques, et parfois, on peut constater que les coups joués ne sont pas conformes aux coups joués sur un vrai billard. C'est exact.

    Mais pour ma défense (si j'ai à défendre quoi que ce soit), j'ai constaté souvent que deux billards ont souvent des réactions très différentes. Si le tapis est neuf ,ou si les bandes viennent d'être changées, il y a toujours un temps d'adaptation. L'effet contraire ne répond plus, ou répond trop ... Bref, ce n'est pas facile de reproduire deux coups identiques sur deux billards différents, ce, sans un peu de réglage.

    Une remarque que l'on m'a souvent faite sur les coups "extrêmes", massés, coups joués très fort... : " On peut pas faire ça sur un vrai billard ". C'est vrai et faux.

    C'est vrai dans la mesure où pour le joueur moyen, on peut simuler et explorer des domaines de jeux inconnus et inaccessibles . Le rétro sur le point de départ est hors de portée de nombreux joueurs. Mais dire que ce coup est impossible est un peu gonflé... Un coup de billard artistique semble toujours "impossible", jusqu'à ce qu'on l'ait vu faire.

    Si vous voulez voir des coups vraiment étonnants, allez sur les pages "galerie de coups artistiques et sur la page consacrée au coups classiques.

    Par exemple , "le coup de l'apéritif !"


     

    Ou encore un Piqué 3 bandes.

    Enfin, c'est faux si on croit que le programme " ajoute une petite touche de magie ". Il n'y a dans ce simulateur que de la physique. (et ces petits termes correctifs quand même, mais qui ne jouent pas trop).

    Avec ce simulateur, on peut le jouer sans faire de trous, ni dans le tapis, ni dans la bille, ni dans l'ardoise. Vous êtes aux commandes d'une Formule1. J'ai quand même inclus deux modes, un mode où les effets peuvent être très importants, et un mode plus classique où les effets sont plus réalistes. Vous avez donc la formule 1 et la 4L.

    La différence entre les deux modes vient du fait que l'effet est beaucoup plus important en "artistique". Un peu comme si les billes étaient en ivoire, les queues en carbone ... Graphiquement, ces modes se traduisent par un cercle sur la bille située sous le billard à gauche. Si le cercle est là, on est en mode "non artistique" ou normal.

    Par exemple, un coup à ma portée:


    Que faire de ce programme ?

    J'aimerais que de nombreux joueurs, profs, clubs, utilisent ce simulateur pour par exemple : J'aimerais enfin, et c'est, je pense le principal, donner autant de plaisir à des utilisateurs que j'ai pu en prendre à utiliser des sharewares ou des freewares qui m'ont passionnés.


    Pour l'instant, à l'avenir :

    J'ai décidé de mettre une version limitée de ce simulateur en freeware. Et de voir venir. Si de votre côté, ce que vous voyez vous plaît, écrivez-moi  et je verrai avec vous les évolutions à apporter. Je suis désolé pour les passionnés de billard, ils vont devoir perdre 5 minutes à m'envoyer un mail, mais c'est la seule solution dont je dispose pour avoir un retour et un avis sur ce que j'ai fait.
    Je connais l'avis de "non-joueurs", de mes collègues, je vois ce qui les intérresse, je voudrais connaître l'avis des gens qui sont arrivés ici.

    Au fait, vous êtes arrivés comment , vous avez trouvé facilement ?

    La version présente comporte certaines restrictions que je lèverai peut-être par la suite. Ces limitations sont en l'état actuel :


    J'attends vos réactions (problèmes, bugs ... autres)

    Utilisez ce programme, diffusez le autour de vous.

    Si des remarques, des suggestions vous viennent à l'esprit, n'hésitez pas à m'en faire part. L'aspect interface n'est pas encore au point. En fait, tout dépend de ce que l'on cherche à faire, enchaîner les coups les uns derrière les autres, ou tester des positions, et modifier des paramètres jusqu'à ce que cela marche.

    Dans le premier cas, on veut que les positions se valident toutes seules, dans le second, on aimerait qu'à la fin de chaque mouvement, on puisse revenir directement sur la position de départ.

    Ecrivez-moi aussi si vous avez des problèmes d'installation.
    Je ne pense pas que des dll spéciales soient appelées. Mais on ne sait jamais avec les nouvelles technologies...

    A propos de Bugs. Une fois, j'ai eu deux billes qui sont restées collées ensemble. C'était lors d'un coup joué très fort en massé, avec une bille dans le coin. Je n'ai pas réussi à le reproduire. Je crois savoir comment corriger cela, mais devant mes difficultés à  tomber sur des plantages sévères, je préfère ne pas gaspiller de la CPU pour éviter ce problème.

    De toutes façons, c'est extrêmement rare, ça n'arrive que quand ça se produit ...



     
     

    Copyright © Laurent Buchard 1999