I'm working on a program:
In short, it's a schematic viewer - schematics are collections of blocks that can be imported into maps. It may also support worlds in the future, but atm it only works on Schematics.
I am using AngelScript to supply block renderers (the logic which renders the block itself). Some of these renderers get pretty intense in their logic, so it's neat to see how this is going to work out.
I planned to allow users to create their own modules for block rendering, as modifications are HUGE in Minecraft. I looked at a -lot- of different scripting engines, and I just happened to come across AngelScript on a whim and decided to try it out. I have not been disappointed in the slightest. I was so close to being set on using Lua.. but it was giving me too much trouble.
Basically, my checklist for a scripting engine was something like this:
- Loading external files into groups of modules (in this case I'm using namespaces as pseudo-modules)
- Allow modules to communicate (ie, if somebody makes a new module which includes a very similar block to another module, they can grab the renderer from that module rather than re-writing code for it)
- Compiles into bytecode (I would like to support compiled versions to decrease file sizes)
While those are my basic requirements for implementation, I also had a standard in my mind set for how easy the API should be to access, as well as how easy the language is to learn. While the latter -might- be a problem with new programmers, if I have enough samples it shouldn't be a problem.. as for the API, I don't think you could have done a better job at making it clear.
If you'd like to follow the progress in-depth, you can follow the source code here:
(Most of the AngelScript stuff is here: http://code.google.com/p/mschemv/source/browse/trunk/MSchemVLib/Scripting/RenderScriptEngine.cpp )
It seems to work without any flaws so far. I was able to destroy the engine and it did not throw any errors. I just noticed too while uploading that you generate debug stats on Debug mode.. my god it's amazing.