@ ddn3: Ok Thanks for the suggestions, I guess I'll just have to give it a try and code something then while trying to keep up good coding practices
@Nanoha: One question though. I've read that when embedding a scripting system, you should let the engine (C++) side take care of the heavy stuff, i.e. drawing, collision detection, audio, physics and path finding while the script should do stuff like collision events, path finding selection, sound events and decision-making. Are you calling drawing functions from Lua (bound to the actual drawing functions in the engine) like the path finding functions? If so, does that still count as letting C++ take care of drawing or does that impose a performance penalty of some magnitude?
EDIT: @ddn3: Isn't it a bad idea to call the script with luaL_dofile each frame performance wise? Is there some other way?
You definitly don't want to call luaL_dofile each frame , a better solution is to intizialize one lua state per script file (or a single lua state for your application if you enforce unique function names across all script files) , load the scripts into that lua state (using for example luaL_dofile , or luaL_dostring) and then just use luabind::call_function as needed.
calling drawing functions from lua is definitly viable but i think its preferable to have the engine handle drawing and only use lua to change the gamestate. (allthough a scriptable renderer might have some advantages you still don't want to mix logic and render code).