- Part 1: introduction
- Part 2: debugging tools
- Part 3: interacting with the game
- Part 4: under the hood
MoonSharp
- it's entirely written in C# and designed to be used with Unity, which means it's a matter of dropping a single, cross platform DLL into your project and you're ready to go
- you can have multiple interpreters in a program, so each user AI gets its own environment
- it comes with a built-in debugger
- it has a solid security model to sandbox script code
Sandboxing
Threading and command queue
- API calls should be blocking: if you say "build me a power line", that power line should be built when the function returns. This makes for a much nicer interface than, for example, something based on callbacks.
- an AI script must not be allowed to freeze the game while running, even if it goes into an infinite loop.
- AI scripts must not be allowed to interfere with each other.