Original Post
On the project I'm currently working on we're aiming for a rudimentary scripting engine that makes use of the Lua language. The problem? We haven't a particularly lot of experience in making these engines, although we've used script (Lua) for identifiable problems before (as oppose to a generic solution that we require now). We're aiming, in the end, for something similar to the Neverwinter Nights scripting engine (although not as advanced, and time isn't an issue). Basically we need some advice an the engine architecture. The key here I think is the allowing of variables, functions and classes to be shared between scripts in a clean, easy way (implementing features such as inheritance and polymorphism), from both a coding and scripting perspective, I think once this is in place all else follows. The other side to it of course is the engine hooks, which should be minimal and as generic as possible. We’re only going to be using script for the AI and game rules, the graphics, sound and similar aspects will still all be handled internally, although given that the game-logic will need to interact with the video and sound components on some level then these components should be exposed to the script, a special game logic script may deal with OnRender() and draw a list of registered entities and the map. Some aspects of the logic engine will remain internal, this includes map information (tile info, layers, navigation graph etc.) and certain functions will remain internal (path-planning for example), though these will also will present interfaces to the script. To accomplish a lot of the above LuaBind or an equivalent will most likely be used. So if there are any devs here who have worked on scripting engines before and feels like lending a helping hand you can post some advice here (although I understand the above post doesn't leave much for you to go on) or, more preferably, if you've got some time on your hands we could talk over ICQ and a cup of coffee ;) . If what I've said above is too vague please inform me. We basically just need a starting point and a road map and we'll deal with the rest. Thanks for your time.