So, based on what has been said in the thread thus far, I gather that:
- MWSE compatibility will not be implemented
- To clarify, OpenMW (a) will not support MWSE itself as an external program, (b) nor will it natively support mods requiring MWSE
- On a side note, if someone else wanted to implement native support for mods using MWSE, that would probably be allowed
- Some kind of script extension is planned that will make MWSE obsolete, but won't be compatible with it
- However, it may have to be developed after or along side the dehardcoding, which could take a while
While it is unfortunate that many of the more advanced mods that currently exist probably won't ever be made available to OpenMW, I think it's worth acknoledging that many of these mods are buggy messes. This can easily be seen by taking non-MWSE mods that alledgedly work in vanilla Morrowind and plugging them into the CS and seeing how many errors there are. Point is, even if the functionality of MWSE were implemented natively into OpenMW, most of these mods still wouldn't work propperly, as they are in many cases badly programmed. This isn't always the fault of the mod developer, either; Morrowind scripting can be a confusing and frustrating exercise sometimes.
Which brings us back to the subject of extending the scripting. The way I see it, there are two major paths we could take. One is to improve and extend MWScript, and the other is to abandon MWScript (relegating it to legacy Morrowind compatibility) and implement a new scripting system as the primary scripting method.
(Disclaimer: I don't actually know what I'm talking about here. I'm basing it mostly off of what I've heard thus far. I'm interested in learning C++ and helping to develop OpenMW (I recently tried to set up a dev environment, but couldn't get OpenMW to compile), but right now I don't actually know how to do any of what I'm about to talk about.)
The major point in favor of MWScript is that it gets interpreted natively by the engine. If an external scripting system such as Lua or Python were to be implemented, then they have to run through an extra layer of abstraction (the external Lua/Python interpreter), which would slow things down a bit. It also means that MWScript is expressly designed to work with OpenMW, whereas Lua and Python are not, and it would be possible for a Lua or Python script to have an undesireable and unintended effect.
The major point in favor of an external scripting system is that it would require much less effort to implement them into OpenMW, and they are already powerful and featureful. All we'd really have to do is add Lua or Python support, and bam, it's basically done. Whereas extending MWScript would require much more effort and time to add in the desired functionality, and even then it wouldn't come all at once but would have to develop over a long time. Also, as previously stated, MWScript is kind of a nightmare to work with, while many folks are comfortable with languages such as Lua and Python.
In my mind, the optimal outcome would be to upgrade MWScript so that it more closely resembles something like Python, making it much more pleasant to work with. Although (assuming we keep legacy compatiblity) this does create an awkward situation where you have basically two scripting languages in one (or rather, two different sets of syntax in one language). In any case, if we keep MWScript as our primary scripting engine, then I expect it to change significantly anyway as the engine is dehardcoded and new features are added.
Regardless,
Greywander wrote:But opinions are cheap. The dev team will do what they think is best, and if you or I want to see something different then we can learn C++ and either join the team or fork the project.
For myself, I'm eagerly looking forward to both the dehardcoding and the script extension. I have...
plans...