The standard MW scripting language. Well, our improved version of it. So far our script engine performs pretty well. I haven't heard any complains about it yet
Well, I'd say the main complaint is that it's the Morrowind scripting language. I wish this will be reconsidered.
When I first heard of OpenMW, I imagined a Morrowind with a modern engine, as well as more moddability and less hard-coded stuff. The first thing I dreamed of was a modern scripting language, because of the huge amount of freedom and convenience it would bring. And Morrowind's scripting language is anything but modern, or convenient. In fact, IMO it barely qualifies to be called a 'scripting language' at all. It would seem to me that almost anything else would be better, since even JavaScript offers far more powerful capabilities. Morrowind is a complex game and it needs a more complex language.
In my dream, I saw (except the last one, perhaps, these are all basic stuff, but 'MWScript' simply doesn't do those)...
Functions. (God, the notion of considering using a primary language that doesn't even have those...)
Arrays. Potentially linked lists, hash tables or other goodies, but some form of arrays or lists is fundamental.
Hooks. Overrides. Ability to react to game events as they happen, rather than polling for them constantly every frame from every object. Ability to override fundamental game formulas and calculations.
Dynamic, convenient in-game object accessing (referring to items, characters, containers, activators etc).
The full set of elementary programming tools: the conventional looping constructs, operators and built-in functions. Flexible, powerful syntax supporting complex expressions everywhere, with no arbitrary limitations.
Debugging and error-checking.
Object Oriented Programming.
More.
I would recommend not creating a new language, due to time and familiarity (and documentation) constraints. I believe the above can be done via LUA. I think it could be a good choice, though, of course, it isn't the only one. Wikipedia says the following about it:
In video game development, Lua is widely used as a scripting language by game programmers, perhaps due to its perceived easiness to embed, fast execution, and short learning curve.[16]
In 2003, a poll conducted by GameDev.net showed Lua as a most popular scripting language for game programming.[17] On 12 January 2012, Lua was announced as a winner of the Front Line Award 2011 from the magazine Game Developer in the category Programming Tools.[18]
I think that in OpenMW the Morrowind scripting language should be used mostly for legacy purposes (for compatibility with ESMs and ESPs). To this end, if legacy compatibility is important to us, we should also consider supporting MWSE functions. It shouldn't be hard to do. Other extenders might come later, but MWE is much less used and MGE functions might not be relevant.
The Morrowind scripting language is convoluted, quirky, buggy, poorly documented and, as a result of all these, difficult to master and to debug. It requires ugly convoluted workarounds to do too many things, not to mention constant awful "are we there yet" polling-style programming. From a programming perspective, it is very basic and not powerful (limited). It suffers from frankly awful design issues, some of which I've already referred to, including: all scripts period forcibly re-executed anywhere from 30 to 60 to 100+ times per second, the need to attach scripts that poll constantly to in-game objects to do most useful things with them (meaning if you have 100 items loaded in the cell, you're going to have 100 scripts running every frame, even if they're not meant to do anything 99.99% of the frames, and you will also break item stacking, for examples see conventional mods such as Book Rotate and Weapon Rotate), etc.
Thinking up clever and hackish workarounds for those issues is good stuff only when you're forced to succumb to them.
I believe you've said one of the reasons not to implement a scripting language is it would cause divisions in the community. That's a silly reason and possibly not much of a negative at all. There are already certain divisions (vanilla scripting, MWSE, MGE, MCP, MGE), and there will inevitably be a major division of Morrowind and OpenMW; many OpenMW mods will never work with Morrowind, period, at any case. Modders will need to learn to use a new engine and CS as well. And if OpenMW base doesn't include sensible scripting options, then you will have further divisions in OpenMW itself, as multiple forks will be doubtlessly created to address that major deficiency. In the first place, as you have admitted to in this thread, your implementation of 'MWScript' is not even going to be consistent with Morrowind's (it's going to have new features and support new possibilities and syntaxes, even if merely so it's less of a pain to work with). If a good language is included in the main fork, it will be made the primary language and 'MWScript' will be there for legacy purposes only.
Armed with MWSE and a bunch of workarounds, it's true that I can accomplish a lot of things in Morrowind mods. But not in a remotely convenient and certainly not an ideal manner. The truth is that there
needs to be division and some new learning when modding OpenMW, for the simple truth that Morrowind modding is very limited, and OpenMW modding would be, in comparison, with huge amounts of freedom. Modders certainly should NOT approach OpenMW scripting with their previously acquired notions of limitations, inefficiency and constant need for outlandish workarounds.
I want to also thank you and all other developers and contributors for your amazing work. The OpenMW project is essentially a godsend to Morrowind modding. 'MWScript' simply isn't up to par with that. Just my opinion. Apologies for the wall of text. ^_^"