Post 1.0 Planning Update

Anything related to PR, release planning and any other non-technical idea how to move the project forward should be discussed here.
NullCascade
Posts: 121
Joined: 16 Jan 2012, 07:58

Re: Post 1.0 Planning Update

Post by NullCascade »

fraang wrote: 05 Apr 2018, 17:45
NullCascade wrote: 05 Apr 2018, 16:39This is extremely untenable. OpenMW wasn't written with dehardcoding in mind from the start, meaning each bit of dehardcoding is going to be an uphill battle, refactoring potentially major parts of the engine if you want to expose things to modders.
What is the problem with properly dehardcoding stuff instead of ugly hacks? Yes this is time consuming but the only sane way to do it.
There isn't? I'm saying that if the project wants to use mwscript to offer engine extensions and dehardcode things, it's going to have a bad time. OpenMW currently interprets mwscript rather than using the bytecode. This means that every time you make a change to add a new feature, you have to regression test against a decade and a half of mods to make sure their quirky scripts don't break in your changes. And, well, have you used mwscript? I sure as hell don't want to use it for anything.
fraang wrote: 05 Apr 2018, 17:45
NullCascade wrote: 05 Apr 2018, 16:39I can't think of any major engine out there that has such a limited scripting environment as to prevent the game from running code.
In what use case do you need to access stuff outside the engine from mwscripts?
I linked one example, interfacing with programs like Discord. There's also Fliggerty's Census and Excise Office, which was a sort of social network for characters that posted events from the game and let you view your character's stats on the site. Then there's Sky Diversity, which loads different sky textures as the game is running and uses imagemagick to create new ones so you have dynamic and custom skies. These don't directly manipulate game data, they manipulate files and online services. And, these are just for Morrowind, which is not the best example of a game that has these features. There are better examples for Oblivion and Skyrim.

A better question is: Why limit modders to only what the devs can think to expose to mwscript?
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Post 1.0 Planning Update

Post by Zini »

Scripting is a rather hotly debated topic and I will make a separate post to get that out of the way before we get to the design document.

Just a few points for now:

* The de-hardcoding will be a major tasks, but it is certainly not an uphill struggle. I think I managed to extend and generalise many hardcoded aspects quite neatly.
* Extending the scripting language will not cause any regressions at all with existing content files (unless we produce a bug, which is always a risk when you work on any code). I have a scheme that takes care of this problem.
Chris
Posts: 1625
Joined: 04 Sep 2011, 08:33

Re: Post 1.0 Planning Update

Post by Chris »

NullCascade wrote: 05 Apr 2018, 17:52 I'm saying that if the project wants to use mwscript to offer engine extensions and dehardcode things, it's going to have a bad time.
The dehardcoding would be done by OpenMW, not external projects. If someone wants to improve the engine and dehardcode things, they would work with OpenMW, not put it in a mod (they might make a mod that uses dehardcoded functionality, but that's separate from making dehardcoded functionality to use).
I linked one example, interfacing with programs like Discord. There's also Fliggerty's Census and Excise Office, which was a sort of social network for characters that posted events from the game and let you view your character's stats on the site.
There are better ways to allow for functionality like this that doesn't allow mods full access to the user's system.

For the kind of wanton modding that happens with TES games, there needs to be some level of sanity. If any mod can do anything to the user's system, that would quickly limit the modding scene because no one would trust mods to not mess up their system. Fewer people would use OpenMW if mods run under it had an increased risk of giving them a virus or something. In addition, exposing the system-level APIs to mods would inherently allow for/encourage system-dependent mods. Do we really want Windows-only, Mac-only, Linux-only, or Android-only mods?

Yes, things like OBSE and SKSE allow loading DLLs to do more with Oblivion and Skyrim than their scripting engine allows. But there's a few big differences. First, that functionality is there because the source to Oblivion and Skyrim is closed, and there's no way to improve it to allow the kind of things those mods want to do. That's not the case with OpenMW, where we can accept and vet code contributions. Second, those engines are Windows-only, so they don't have to worry about being system-specific. Third, mods that use those are far fewer in number and are easily identifiable. It's hard to miss if a mod uses a DLL before installing it. Fourth, such mods tend to be looked at with more scrutiny (at least, they should be), especially if they don't also come with source.
A better question is: Why limit modders to only what the devs can think to expose to mwscript?
That's what feature requests are for, to get ideas from modders and users, to not be limited to what only the devs think of.
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Post 1.0 Planning Update

Post by Zini »

Regarding limiting modders: I don't see that. We do take feature requests after all. And if a mod developer is capable of creating executable he is probably also capable of contributing to OpenMW. It is open source after all.

Don't want to go into details now, but most of the listed functionality could probably better implemented with core support within the engine itself, which is then used by content developers. We are able to dish out new releases quite quickly if there is enough development activity, so I don't see delays resulting from waiting for a new OpenMW version a problem either.

Edit: Chris beat me to it.
imec
Posts: 37
Joined: 13 May 2012, 22:03

Re: Post 1.0 Planning Update

Post by imec »

TES3MP also has a planned automatic mod synchronization and download feature. How could such a feature be implemented safely with an unsafe scripting engine? I know this might not be appropriate to discuss here, but it could be something worth thinking about for people on the laxer scripting rules side.
mortimer
Posts: 2
Joined: 05 Apr 2018, 18:35

Re: Post 1.0 Planning Update

Post by mortimer »

Zini wrote: 05 Apr 2018, 18:24 Regarding limiting modders: I don't see that. We do take feature requests after all. And if a mod developer is capable of creating executable he is probably also capable of contributing to OpenMW. It is open source after all.

Don't want to go into details now, but most of the listed functionality could probably better implemented with core support within the engine itself, which is then used by content developers. We are able to dish out new releases quite quickly if there is enough development activity, so I don't see delays resulting from waiting for a new OpenMW version a problem either.

Edit: Chris beat me to it.
Ok so what if someone has an idea for a function that you don't agree with. I've lurked openmw enough to know that if you (zini) don't like a feature it just won't get merged. If someone wants to make 1000 functions to support their insane mod idea that's their prerogative, making them add it to openmw and create their own fork makes no sense when you can just have the option to load external code. Someone shouldn't have to run the OpenMW pull request gauntlet in order to get their mod made. "Ok we added your feature, see you in 2020 when 1.2 comes out"

As a real actual modder - the idea of continuing to use mwscript is insane to me. You have the option to use lua or literally anything but the nonsense that is mwscript but instead you choose to double down on bethesda's bad code lmao.
User avatar
psi29a
Posts: 5355
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: Post 1.0 Planning Update

Post by psi29a »

imec wrote: 05 Apr 2018, 18:30 TES3MP also has a planned automatic mod synchronization and download feature. How could such a feature be implemented safely with an unsafe scripting engine? I know this might not be appropriate to discuss here, but it could be something worth thinking about for people on the laxer scripting rules side.
Ultimately you just have to 'trust' your server admin folk.
User avatar
psi29a
Posts: 5355
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: Post 1.0 Planning Update

Post by psi29a »

mortimer wrote: 05 Apr 2018, 18:40Ok so what if someone has an idea for a function that you don't agree with. I've lurked openmw enough to know that if you (zini) don't like a feature it just won't get merged. If someone wants to make 1000 functions to support their insane mod idea that's their prerogative, making them add it to openmw and create their own fork makes no sense when you can just have the option to load external code. Someone shouldn't have to run the OpenMW pull request gauntlet in order to get their mod made. "Ok we added your feature, see you in 2020 when 1.2 comes out"

As a real actual modder - the idea of continuing to use mwscript is insane to me. You have the option to use lua or literally anything but the nonsense that is mwscript but instead you choose to double down on bethesda's bad code lmao.
Then you're not longer in the same league as a typical modder, but a programmer. Might as well fork OpenMW to add the features you need.

Don't forget, someone has already done this.. forked OpenMW to support Python. It still lives on somewhere if you would like to go dig it up.

Honestly... if you don't want to be tied down to Bethesda's bad code, then you should use of the other available game engines out there to make your own.

OpenMW will always find its roots in Bethesda's Morrowind, like it or not. :/

Before ending this on a sour note... think about this, if you can convince Zini of the merits of a feature, then it likely will be added. Just be sure to cover all your bases.
Jad
Posts: 5
Joined: 18 Nov 2015, 20:22

Re: Post 1.0 Planning Update

Post by Jad »

Is there anyone out there who actually likes MWScript? Does it have *any* redeemable features? The last time it was tried to extend MWScript we ended up with Papyrus... nobody liked the result of that either.

Moving to a "real" scripting language ala LUA seems like a no-brainer. Existing modders would see it as a godsend, modders from other games are more inclined to join in due to transferable knowledge, you get to bypass all the troubles of designing a new language from basically scratch, and you get a whole wealth of documentation and tutorials for free. What am I missing here? What is the downside?
mortimer
Posts: 2
Joined: 05 Apr 2018, 18:35

Re: Post 1.0 Planning Update

Post by mortimer »

psi29a wrote: 05 Apr 2018, 18:50
mortimer wrote: 05 Apr 2018, 18:40Ok so what if someone has an idea for a function that you don't agree with. I've lurked openmw enough to know that if you (zini) don't like a feature it just won't get merged. If someone wants to make 1000 functions to support their insane mod idea that's their prerogative, making them add it to openmw and create their own fork makes no sense when you can just have the option to load external code. Someone shouldn't have to run the OpenMW pull request gauntlet in order to get their mod made. "Ok we added your feature, see you in 2020 when 1.2 comes out"

As a real actual modder - the idea of continuing to use mwscript is insane to me. You have the option to use lua or literally anything but the nonsense that is mwscript but instead you choose to double down on bethesda's bad code lmao.
Then you're not longer in the same league as a typical modder, but a programmer. Might as well fork OpenMW to add the features you need.

Don't forget, someone has already done this.. forked OpenMW to support Python. It still lives on somewhere if you would like to go dig it up.

Honestly... if you don't want to be tied down to Bethesda's bad code, then you should use of the other available game engines out there to make your own.

OpenMW will always find its roots in Bethesda's Morrowind, like it or not. :/

Before ending this on a sour note... think about this, if you can convince Zini of the merits of a feature, then it likely will be added. Just be sure to cover all your bases.
that doesn't sound like openmw it sounds like zinimw

let's use a real example, i'm not a big programmer, nullcascade is. he adds functions for me, the modder to use, just like script extenders do. I can't use his useful functions because they aren't in openmw and even though they seem useful to me, they won't ever be added because we can't convince zini they're useful. No engine should be confined to the wishes of a single dictator no matter how benevolent they might be.

I can't think of a good reason to not allow this when its allowable in every other engine.
Post Reply