7. Conclusion

7.1. Recadrage par rapport au cahier des charges

Globalement, le cahier des charges proposé à été respecté.

Le moteur 3D possède toutes les primitives graphiques nécessaires à l'élaboration d'un jeu, ou d'un éditeur/visualiseur d'objets 3D, etc... En particulier, la gestion des caméras, des lumières, ou encore des objets 3D ont été fourni.

Le binding SDL a été, comme prévu, limité aux seules fonctions utiles au jeu, ce qui offre déjà d'énormes possibilités. Il est ainsi possible au final, d'ouvrir des fenêtres, de contrôler les actions de l'utilisateur au clavier, à la souris, et d'avoir un support OpenGL très simplement.

Etant donnée que le jeu implémenté fut un jeu de billard et non un jeu de combat, il n'a pas été nécessaire d'implémenter le moteur de squelette, ni le moteur d'animation. En effet, l'implémentation de tels moteurs aurait fait dévier le projet de son objectif initial, à savoir la programmation réactive, vers d'autre problèmes informatiques fortement plus compliqué.

Si l'on se place du point de vue du développeur évoluant dans l'environnement de programmation Bigloo, ce projet aura finalement permit de rajouter la couche multimédia attendue au compilateur.

7.2. Influence du jeu sur Senior 2.0

Le fait d'être passé de petits tests en Java avec le moteur Junior, a une implémentation Scheme testée en "grandeur nature", c'est à dire a l'échelle d'un vrai petit jeu, aura finalement vraiment servi a quelque chose. Preuve en est: l'adaptation de la sémantique des instructions funcall& et apply&. Il faut souligner la cohabitation et le dialogue qui a put se développer durant le développement de ce projet avec le créateur de Senior. L'échange aura sûrement été fructueux pour tout le monde.

7.3. Avis personnels sur la programmation réactive

Il y a dans l'implémentation du moteur réactif mis a disposition des points forts qui ont fait l'unanimité au cours du développement du jeu:

Evidemment, comme toute chose, l'implémentation de Senior a ses points noirs:

7.4. Le mot de la fin

En tout, l'implémentation du jeu de billard aura nécessité moins de 700 Lignes de code, sans chercher particulièrement à réduire au maximum le nombre de lignes utiles. Bien entendu, le nombre de lignes de la bibliothèque que constitue le moteur 3D n'est pas pris en compte, mais ce n'est pas l'important: ce qu'il faut réaliser c'est qu'un tel jeu de billard en 3D en C avec OpenGL (par exemple) aurait pris bien plus de 2000 ou 3000 lignes!

Il est assez difficile d'estimer le nombre de lignes gagnées grâce au moteur et à l'utilisation du moteur réactif Senior 2.0, mais il est clair que sur les 700 lignes de sources, on peut compter qu'il n'y a pas plus de 200 lignes de code réactif effectif, et tout cela pour simuler grand nombre de comportements puisque la totalité du jeu est gérée de manière réactive.

Il est manifeste que la programmation réactive du billard a simplifié l'implémentation du jeu bien au delà des prévisions de début de projet. Et il est évident que le bénéfice induit par cette technique de programmation serait bien plus grand pour des jeux de plus grosse envergure:

En résumé, on peut considérer que la technique de Programmation Réactive est validée, et ce avec beaucoup d'enthousiasme, avec notamment un grand bravo à Julien Demaria pour son implémentation en Scheme de la machine réative: Senior 2.0.