Well, I'm looking for a fast and lightweight embeddable scripting language to use in Lixoo. I know some: Lua (used in GrimE, Mad), SpiderMonkey (JS-like, used in Sphere, Mozilla), Ferite (used in the new Enlightenment window manager) and Simkin.

I'm trying to find the fastest and more lightweight one. Do you know another languages of this kind? What of them would you prefer to make scripts of an adventure game?

We could also make or own, but that requires some advanced knowledge on parsers and lexical analyzers that we don't have at the moment.

Anyway, I'd go for either Python http://www.python.org/ , because it's a easy to learn, powerful, efficient and elegant programming language (used in Backyard Hockey, Freedom Force, Severance: Blade of Darkness, Star Trek: Bridge Commander, QuArK,...) , or with LUA http://www.lua.org/ , because it has proven that it is capable of the task as well (Grim Fandango, Escape from Monkey Island, Angband, Baldur's Gate, MDK2, ...) and the MAD Adventure Game Engine Project http://mad-project.sourceforge.net/ uses it as well.

I have been making tests with SpiderMonkey and Lua this evening and I decided not to use SpiderMonkey as the runtime is bigger than Lua's (I can reduce the Lua runtime to be only 78 KB!). Lua is also faster. I sometimes get confused with the stack when calling C functions from Lua, but it's a matter of practice

I'll try Python, SeeR and Ferite tomorrow, too. I want to take a look to them before choosing one.

Mmmh... AppleScript. That would reduce the platforms in which Lixoo could be used. I think it won't be a good idea to use AppleScript in the engine. Maybe it could be used in the IDE, we have a Cocoa version in mind

Originally posted by moebius Mmmh... AppleScript. That would reduce the platforms in which Lixoo could be used. I think it won't be a good idea to use AppleScript in the engine. Maybe it could be used in the IDE, we have a Cocoa version in mind

ah, that sounds so nice! I wasn't actually hoping for that, you just made my day.

Finally, I decide to use Lua. I like Python a lot now that I know it, but the thing I really love is the speed and the small size of Lua. And as the 'L' of Lixoo stands for 'Lightweight', Lua is the perfect candidate. I couldn't make Python smaller than 570KB ...and its quite big for Lixoo, I think.

I was worried about object oriented programming with Lua, but digging through its documentation, I found that OOP can be made by assigning functions to Lua tables the behave as methods for the table that contains them just by using the "table:method()" syntax! Cool!