http://www.somedude.net/gamemonkey/
I mainly decided to use this because of these reasons:
- API code is somewhat generally smaller than LUA even though I put the entire base of cgconst.lua into the CGAME table directly into code.
- Multithreading support (natively)
- More like C/C++
- RTI Garbage Collecting
- Easy to bind C/C++ functions to call from script and call script from C/C++
- Runtime debugging and reflexion support.
- Good performance when comparing CPU Usage and Memory Usage. Speed is a trade-off though.
- Written in C++
- Has true class support unlike LUA which cheats and uses tables.
Example code from home page:
Code:
OnDoorTriggerEnter = function(door, objEntering)
{
if(objEntering == player && !door.IsOpen())
{
door.Open();
return true;
}
return false;
};