I am considering BSH for the scripting language for a games port from C++ to Java I am working on.
Advantages are. Familiar syntax as the game is in Java. Easy to use interface and the ability to create very comprehensive scripts.
The thing that's difficult is actually saving the state of the BSH interpreter. The point is I want to be able to great BSH event listeners and tag them into the game on specific monsters and event generators. This means that a BSH class would be the event listener for the real java classes.
All in all this is a great solutions allows very flexible game scripting with good performance within the game. However I am stuck on one thing only SAVEGAME.
I know I can serialize the Interpreter out and I know I save save the Java classes that make up the game data. But how well will all the relationships between them be saved? If I serialize a class with an event listener that's really a BSH? Of what about BSH variables that point to real classes
My 1st thoughts were to serialize out the Java classes and manually save the BSH variables then relink them on load but I cant find a method of asking the Interpreter what variables exists within it already.