• Aucun résultat trouvé

FIGURE9.1 – Diagramme de classes de Shine Engine

Afin d’assurer un bon fonctionnement, tant de la partie modélisation des SMA que de l’exécution du modèle, SAMPest composé de 3 modules :

— SAMP-M est un méta-modèle permettant de définir les éléments composant SAMP (interactions, compétences, agents, modèles comportementaux, ...). SAMP-Mper- met aussi de définir les règles liant chacun de ces éléments aux autres ;

— SAMP-Eest l’éditeur graphique de SAMPpermettant de paramétrer les projections du méta-modèle : paramétrages des compétences, des interactions et des agents, modélisation des comportements, ... ;

— SAMP-Xqui réalise la génération, la compilation et l’exécution des SMA modélisés. SAMPintègre, en plus des concepts agent, des outils propres au domaine des jeux vidéo. La gestion des principes physiques (gravité, collisions, calculs des distances, propagation du son, etc) est faite par l’utilisation de moteurs physiques qui sont des outils approuvés et éprouvés par les professionnels du domaine. Le fait queSAMPsoit intégré dans un moteur de jeu permet de pouvoir modéliser l’environnement à l’aide d’une interface graphique comme on modéliserait un niveau de jeu vidéo. En se référant à la figure 9.1, SAMP utilise le SDK pour accéder aux fonctions du moteur Shine Engine et est intégré comme un plugin à ce moteur pour être utilisable dans des jeux vidéo, mais aussi dans l’éditeur Shine Editor.

Malgré une interface entièrement graphique, il est nécessaire de prendre en main le langage graphique SAMP-Mafin de pouvoir modéliser les comportements des agents de SAMP. Mais la possibilité d’exporter/importer des modèles de comportement d’un projet à un autre permet de différencier deux types d’utilisateurs : d’un côté des utilisateurs ayant une connaissance de la logique de programmation (qui comprendra les concepts de programmation tel que les boucles, les conditions, les tableaux, etc) et de l’autre des utilisateurs ayant une connaissance d’une logique métier (devant assembler des modèles entre eux pour modéliser le comportement du système désiré).

SAMP permet de modéliser des SMA principalement destinés au monde du jeu vidéo. Mais nous avons abordé le fait qu’il était possible d’utiliser SAMP dans des projets très éloignés de ce domaine. Le système proies-prédateurs est un classique de la littérature multi-agents et le lecteur de flux RSS n’est pas un jeu à proprement parler. Cette grande expressivité permet d’imaginer une utilisation de SAMPdans des domaines variés et de

136 CHAPITRE 9. CONCLUSION

ne pas le cloisonner au domaine des jeux vidéo qui était notre cible au départ.

9.3/

P

ERSPECTIVES

Les perspectives d’avenir pourSAMPsont nombreuses.

9.3.1/ OPTIMISATION DES RÈGLES DE GÉNÉRATION DE CODE

Une des premières perspectives concerne l’optimisation des règles de génération de code. Cette optimisation aurait deux impacts sur le fonctionnement deSAMP:

Le premier impact se trouverait au niveau de la compilation du code généré. En évitant aux compilateurs d’avoir à réaliser certaines optimisations en les incluant directement dans le code, il serait possible de gagner un temps précieux lors des compilations. Ces optimisations pourraient être contextuelles : Imaginons le cas de deux blocs if imbriqués, l’optimisation permettrait de ne générer qu’un seul bloc avec une seule condition.

Le deuxième impact serait sur l’exécution à proprement parler des SMA modélisés avec SAMPen optimisant le code généré. Tout comme pour le point précédent, il pourrait s’agir d’optimisations contextualisées : par exemple, un parcours de boucle dont la condition peut être optimisée dans un cas particulier, ou une écriture répétée en mémoire qui pour- rait être évitée.

9.3.2/ FACILITÉ D’UTILISATION

Un autre point sur lequel nous avons envie de travailler est la facilité d’utilisation deSAMP. Faciliter l’utilisation deSAMPpeut passer par la création de nœuds particuliers permettant de générer du code complexe qui, sans ces nœuds particuliers, nécessiterait l’utilisation de plusieurs nœuds. On a déjà évoqué un tel nœud avec le nœud foreach qui permet le parcours d’un tableau plus facilement qu’avec un nœud for. L’objectif est d’en ajouter plus afin de rendre les concepts propres au développement informatique plus accessibles et par conséquent rendre plus facile l’utilisation deSAMP.

La facilité d’utilisation deSAMPest aussi permise grâce à la possibilité d’importer/exporter des modèles d’un projet à un autre permettant à des utilisateurs débutants d’utiliser des modèles complexes modélisés par des utilisateurs confirmés. Dans sa version actuelle, SAMP permet cette importation/exportation de manière manuelle. Shine Engine est en évolution constante et une des évolutions majeures qui est en cours concerne le déploie- ment de Shine Engine en SAAS. Cette version SAAS est l’occasion d’offrir la possibilité de mutualiser sur un serveur en ligne (accessible par tous les utilisateurs) les modèles de comportement de SAMP. Cette mutualisation permettra à la communauté d’aider les utilisateurs qui en ont besoin en leur fournissant des modèles de comportement.

De plus, il est à l’heure actuelle possible d’intégrer de nouvelles bibliothèques de code dansSAMP. C’est de cette manière que la bibliothèque de code du SDK de Shine Engine est intégrée dansSAMP. Cependant, cette intégration requiert de fortes connaissances en informatique (ajout de macro dans le code afin que le parser deSAMPrécupère correcte- ment les méthodes à intégrer). Améliorer cette fonctionnalité permettra à la communauté