Ce que je recherche est un moteur de script pour Java qui permettrait aux utilisateurs d'écrire des scripts simples pour contrôler le comportement et les événements d'une partie. Quelque chose que: p>
est simple - quelque chose de facile à ramasser, en particulier pour les personnes ayant une émission de base / expérience de script p> li>
fournit beaucoup de contrôle - je peux facilement démarrer / arrêter / mettre en pause les scripts et contrôler la quantité de temps d'exécution chacun obtient, peut-être combien d'espace mémoire ils peuvent utiliser p> l>
est séparé de l'environnement Java lui-même - aucun accès des scripts à des objets ou de classes Java, uniquement à ces fonctions que je fournis explicitement p> li> ul>
J'ai considéré le moteur JavaScript rhino, et cela conviendrait à mes objectifs, mais d'après ce que j'ai lu ( Exemple ), il est conçu pour s'intégrer à Java tellement que la boite de sable de sablérasserait de manière sécurisée. Je préférerais commencer par un moteur qui donne des scripts aucun accès à quoi que ce soit par défaut, d'avoir une solution complètement ouverte que je dois fermer. Les scripts ne peuvent pas toujours être confiants. L'environnement ne doit donc pas être facile de sortir de. P>
J'envisagerais également de développer ma propre langue avec quelque chose comme Antlr, mais c'est probablement plus d'efforts que je ne veux mettre. P>
Toute suggestion? P>
4 Réponses :
Avez-vous considéré comme Lua? P>
lyriro, g..s.o; Seixas, R.B.; En utilisant Lua en tant que langue de script dans des jeux codés dans Java, procédures de la simulation nord-américaine et de l'AI dans la conférence de jeux - Gameon-NA, Eurosis, Montréal, Canada, 2008. P>
blockQuote>
Vous devriez essayer d'essayer de Groovy , un langage de script qui intègre facilement avec la plate-forme Java. p>
Sa syntaxe est compatible à 100% avec Java, mais elle dispose également d'une syntaxe simplifiée qui en fait une langue appropriée pour la mise en œuvre DSLS. P>
Je ne sais pas avec certitude si vous pouvez arrêter / mettre en pause l'exécution du code Groovy à partir d'un programme Java, vous devez lire le API Groovy . P>
Lors de l'exécution du code Groovy à partir d'un programme Java, vous pouvez spécifier le contexte transmis au script et vous pouvez interroger le contexte modifié par le script pour les variables de sortie. Le script peut être complètement isolé de l'environnement Java sous-jacent en créant un Groovyshell A > Avec un compilerconfiguration . P>
JACL est une telle langue. Il est basé sur TCL. Quoi que vous fassiez, n'inventez pas une autre langue. Il y a beaucoup de bons choix là-bas. P>
À mon avis, pas seulement la langue, mais une manière d'interfaçage est importante. JSR 223 est la plus compatible entre différentes langues, mais "natif" semble le meilleur (c'est-à-dire l'intégration de l'objet complète de Groovy) P>