I have to agree that Object oriented structure is very hard to grasp, especially when you are not the designer of that structure. So you first need to learn the language and then the structure. So it doubles the learning curve. I would only add the object structure when making 3rd level modding in c++.
*snip*
When I was programming Wizardry, I was using Gcc for windows. I think it's called dev-cpp. The only thing I hope is that Elemental is not compiler dependent.
*snip*
Why do we need multi-threading? If it's multi-threading within a script, forget it. People does not need to make script that creates thread. If 2 different script cannot be run at the same time, then maybe it could e useful to get multi-threading. But again, it depends where the scripts is hooked in the game. Besides for AI, I do not see why the game would need to run another script while the game is waiting for the player in the first script. Because most of these scripts purpose is to change the rules of the game, not an animation in the background for example.
So after reading the various comments, I think my vote goes to Angel Script first and then Lua.
The langauges listed so far at most support OOP, but none of them require it.
The only things that would be compiler dependant would be those that are not not spec-ed by the standard. And as I said most of those things will be eliminated if they stick to things that must be a certain way for the WINAPI to work.
The multi-threading support in scripts does not matter, only the ability of the intepreter to not be a proformance bottle-neck or memory hog when used in a multi-threaded enviorment. As has been pointed out, some implementations do better than others.
Good.
-------------
Since some of these langauges have diffrent implementation, prehaps those that are interested is having certain langauges should look for which one(s)* are the best and then we can compare. Then we can find out which is best in various areas on a techinical level and let Stardock figure out what is most important.
* If there is no absolute best, then we can see how the better implementation stack up against the other interperters.
Some things that can be compared (if anything is missing, please mention it):
- How much extra space does the interpreter take?
- How fast does it execute scripts?
- How well does it interace with native code? (How much overhead does it add to calling or being called a native function?)
- Memory Management (Does it have ref-counting or pure garabage collection? Can it deal with circular references? Can custom memory allocation/frreeing functions be set (may or may not be important, some games have special allocation schemes to make it more effecient)?)
- JIT Compiler Support (Does it include one? Can JIT support be added without changing the source code?)
- Multi-threading (Does it allow multiple threads to invoke scripts at the same time and without having heavy a overhead cost to memory or proformance? The ability to let scripts create and/or manage threads is a non-issue. People who are using the scripts as an easier way to mod things should not ever deal with this.)