i30817 wrote: ↑27 Nov 2018, 12:01
A good thought, but a bit lacking in specifics. Because i see no reflection on how each function is broken anywhere on openmw (github repository specificaly, forums in general), just a lot of 'MWScript sucks' and 'LUA won't'. Very little domain knowledge of why in specifics - I would have zero surprise that if i hadn't made this stink, OnActivate would just waltz on into the LUA interface with two distinct concerns (checking for activation and disabling normal activation, as if that is the same thing and you want the second on all paths of the first, which is completely inane).
You see few specifics on OpenMW's Lua because it's an unresolved matter. It will either be a clientside scripting system like MWSE's that splits it off from TES3MP and may have a handful of similarities to how MWScript does a few things, or it will mostly be a serverside scripting system like in Bukkit or Neverwinter Nights 1/2 where you can instantly assume that everything is completely different by necessity. As far as I know, the latter is now preferred, but all the time already spent on thinking about the former can cause hesitation.
Now, I can ultimately only speak for myself, but: if I'm implementing similar interactions from scratch in an entirely different scripting system, it doesn't matter what the fine details of the original flawed implementation are, because I'm not doing anything to imitate them. If someone encounters a problem with my scripting functions, I can adjust them so they work more intuitively.
MWScript is still run clientside in TES3MP, and it sends packets to the server when it needs to, but I regard it as a deprecated scripting system that's there to allow compatibility with existing Morrowind content and mods, with all new scripting preferably being done in Lua.
i30817 wrote: ↑27 Nov 2018, 12:01
This won't fly. Mods
need some way to take complete control of object scripts because otherwise would imply that they could break the rules on the 'events', which would screw over others subsequent events almost arbitrarily . Not everything fits neatly on the rules of interaction of the engine, sometimes you want to disable movement (like i managed accidentally from that POS function). For such 'breaking the rules' it's much better if it happens - from a main script that runs before the others assuredly - *before* other objects run and catch the same event that the 'rule breaker mod' screwed with.
But you
can easily take complete control of object scripts and make any of them override any others. You don't need local scripts that run every frame to do it; as far as I can tell, there's always a better way. Disabling movement is as simple as using one function, so you should give me another example.
i30817 wrote: ↑27 Nov 2018, 12:01
You probably can't notice because very few mods are marked 'compatible' (without compatibility patches) if they want to add to the same object/same script, but in a event driven script world this would be the norm and mitigation for these problems should be a priority (also a way to run things outside of the GUI event thread would be nice too. Maybe run the events outside the main graphics thread and make the functions the scripts can interact with enqueue their operations to a event thread, that is more 'transparent' than a swingworker-like helper).
Again, if we're talking about the packet-based scripting system I've already implemented and that may get merged into OpenMW, the GUI thread and graphics thread aren't relevant to it because they don't exist on the server where the scripts run, which is why I can't follow you through any of that.
i30817 wrote: ↑27 Nov 2018, 12:01
All the more reason that i think the idea of preventing fragmentation by forbidding needed extensions that fix broken morrowind functions is laughable. Are people seriously 'worried' about a OnActivatePure, or a 'SaneModStat' more over having their lunch stolen because their direct competitors are busy churning out mods where this crap doesn't suck or are going even more YOLO and introducing stuff like server side scripting and string references? I actually read the 'post 1.0 plan' document and while it's impressive in scope for the Scripting, it's also completely lacking in migration options - the underlying message seems to be 'we froze MWScript before we implemented non-broken original functions or MWSE (which is hacky but useful) and now you're waiting until post 1.0 which will literally take years, if not a decade, sucks to be you'.
If you really just want OnActivatePure or SaneModStat, there's nothing stopping you from doing your own fork with them. It should be pretty easy.
Anyway, I have a big problem with the suggestion that TES3MP is a competitor. If anything, TES3MP is the experimental branch that proves OpenMW's true potential to people who are too thick to see it otherwise, and is happy to follow OpenMW's wishes so it gets merged upstream. If it doesn't get merged, and that causes an extra de facto split between scripting systems, that's unfortunate; I definitely hope we can avoid that.
MWSE has very different goals from OpenMW, which is why I wouldn't call it a competitor either. As far as I can tell, OpenMW doesn't have any competition in the "complete cross-platform engine recreation with optional multiplayer, infinite potential for improvement, and the future ability to load up assets from all the other Bethesda games that use Gamebryo/Creation Engine" department.
i30817 wrote: ↑27 Nov 2018, 12:01
And presenting this as a measure to prevent 'fragmentation'!
In practice, you can generally safely assume that Morrowind mods will work in both Morrowind and OpenMW, and that may well be preferable to having yet another layer of confusion for the sake of temporary workarounds.
i30817 wrote: ↑27 Nov 2018, 12:01
That some of these functions (replacements for the original morrowind buggy functions) are going to be needed and used later on the LUA interface and if they were to be added to MWScript could just be renamed in LUA to their original incarnations after getting stress tested, screams dogmatism and excessive concern with churn and not the good kind. Meanwhile of course, we have the graphic concerns taking all the dev mindshare while modders just back away from openmw.
I personally doubt they will be reused at all. That being said, if you really want to try out some new scripting possibilities and you can't use MWSE, you can try out TES3MP, unless you think a
scripting system that works in both singleplayer and multiplayer with up to dozens of players is somehow inferior to
a scripting system that works only in singleplayer.
i30817 wrote: ↑27 Nov 2018, 12:01
Haphazard stuff like the original function from the morrowind engine that triggered me in the first place?
Perhaps you should write a tersely worded letter to the original programmers instead of complaining about an engine whose main goal has always been to recreate that system closely.