You can make a cross-platform dynamic library that loads in as a lua module.

Keyword being "can". What's stopping someone from depending on a library that isn't supported by all platforms, or even one that is supported but the modder doesn't bother to track down the library on all supported platforms and architectures to include them?

If the debate was just about well known cross platform libraries like imagemagick I'm sure they could be linked dynamically as a non essential dependency from OpenMW, or in the very least whitelisted, while having the corresponding lua library collection available from a trusted lua repository of some sort.

The problem isn't what can happen under ideal circumstances, where a more trusted and well supported solution can also be set up. The problem is what will happen due to maliciousness or much more commonly laziness.

You can make a cross-platform dynamic library that loads in as a lua module.

Keyword being "can". What's stopping someone from depending on a library that isn't supported by all platforms, or even one that is supported but the modder doesn't bother to track down the library on all supported platforms and architectures to include them?

If the debate was just about well known cross platform libraries like imagemagick I'm sure they could be linked dynamically as a non essential dependency from OpenMW, or in the very least whitelisted, while having the corresponding lua library collection available from a trusted lua repository of some sort.

The problem isn't what can happen under ideal circumstances, where a more trusted and well supported solution can also be set up. The problem is what will happen due to maliciousness or much more commonly laziness.

Nothing should stop that from happening. In plenty of cases, that's desirable behavior. For example, someone might want to incorporate 3D Touch on iOS into the UI, with that dehardcoded. OpenMW very likely won't expose that os-specific feature, but a plugin can. The fallback to the iOS library would be a lua file, which is basically a dummy module that reports a lack of the feature. Now, maybe the touch event pressure on Android won't suck, and someone might add it to that. Maybe someone will want to add it to desktop touch screens. But you'll never get every OS to have this feature. Attempting to force support for every platform isn't what you want.

But it sounds like your concern is more that plugin authors will not support certain platforms? Sure, that might happen. But the nature of Lua libraries makes it easy for someone to release their own version for another OS. But in the modding community it's far more likely that you'll see a situation where the plugin author uses something like Windows, and just don't have the environment set up to ship macOS or Linux libraries. I'm sure they'd be able to collaborate with others on those systems to get it built. Many OBSE and SKSE plugins ended up open source, and modders like to collaborate.

Nothing should stop that from happening. In plenty of cases, that's desirable behavior. For example, someone might want to incorporate 3D Touch on iOS into the UI, with that dehardcoded. OpenMW very likely won't expose that os-specific feature, but a plugin can.

Other OSs can never have a similar feature? Android? A tablet or touch-screen-capable laptop running a desktop OS? It's never desirable to explicitly lock a feature to a particular OS, since there's nothing to say whether another OS will ever support something similar.

Attempting to force support for every platform isn't what you want.

Neither is assuming only a single platform can ever support something.

But in the modding community it's far more likely that you'll see a situation where the plugin author uses something like Windows, and just don't have the environment set up to ship macOS or Linux libraries. I'm sure they'd be able to collaborate with others on those systems to get it built.

I think you're over-estimating the amount of collaboration that modders would do. We'd see some, sure, but at least as a Linux user, I've well seen the amount of times people have offered to help support Linux for some Windows thing and getting a cold shoulder (if not being explicitly told no because they don't want to deal with Linux users complaining about someone else's port).

Not to mention, this isn't about just the OS, but the architecture too. Does the CPU support SSE4? AVX? AVX-2? Nothing says Linux is on an x86-based CPU, either. There are rumors floating around that macOS may be switching to ARM. You expecting all possible configurations someone may use to get someone to port such mods?

And with native code, who's to say what implementation details they may rely on. Can they hook OpenGL or some other external library OpenMW uses? Or even some internal component of OpenMW itself?

Nothing should stop that from happening. In plenty of cases, that's desirable behavior. For example, someone might want to incorporate 3D Touch on iOS into the UI, with that dehardcoded. OpenMW very likely won't expose that os-specific feature, but a plugin can. The fallback to the iOS library would be a lua file, which is basically a dummy module that reports a lack of the feature. Now, maybe the touch event pressure on Android won't suck, and someone might add it to that. Maybe someone will want to add it to desktop touch screens. But you'll never get every OS to have this feature. Attempting to force support for every platform isn't what you want.

Not a great example because I imagine, even porting OpenMW to iOS to be a technical and legal quagmire . But even if that wasn't the problem we are talking about a niche hardware capability that if I understand correctly just provides a different input method, and probably wouldn't be a requirement, for example, to join a multiplayer server. No reason that in such a circumstance you can't have it whitelisted.

But in the modding community it's far more likely that you'll see a situation where the plugin author uses something like Windows, and just don't have the environment set up to ship macOS or Linux libraries. I'm sure they'd be able to collaborate with others on those systems to get it built. Many OBSE and SKSE plugins ended up open source, and modders like to collaborate.

But it sounds like your concern is more that plugin authors will not support certain platforms?

Developers using a windows only library to make a brilliant, complicated (hard to remake) but popular mod, and have multiplayer servers spring around it, with no intention to support other systems, or collaborate with anyone, is a scenario very easy for me to imagine, and I think it's a good idea for us to go out of our way to disincentivise it. You get to be a dick to whoever you want, as long as you a re not breaking the GPL, but at the very least make the effort to fork the project and call it something else.

I provided a real-world example of how native extensions improved the capability of a professional game engine, while keeping the main code clean. You can disagree with the example all you want, it's not exactly hard to fathom other ones. The point should still be clear.

TES modders in general do love to collaborate (more than Chris would think -- please, come around to the Morrowind Modding Community Discord and see the conversations surrounding OpenMW outside of this bubble), to a point, but are generally stingy with their permissions. You'd never sell them on GPL. There's a reason modpacks are taboo. Half the time a new one comes up mod authors issue takedown notices and copyright claims. Which is fine, but not exactly FLOSSy.

Regarding native extensions, you'll never have 100% support everywhere, and that's fine. There's no entitlement or expectation for your Raspberry Pi build of Morrowind to be able to have touch pressure sensitivity with jerry-rigged hardware, and it's not worth limiting a game engine for the one guy that wants to do that. The solution? Don't install that mod, OpenMW will continue to work just fine (or as fine as it can work on a Pi).

I don't have anything real to add from the above posts. If the project's goal is to be a replacement for Morrowind's engine, blocking native extensions heavily cripples that goal. If the project's goal is to be a modern, open source game engine in general, it's kneecapping itself compared to any competitor. Sorry that everything might not always play 100% nice 100% of the time, but that's the nature of software, and 100% compatibility isn't practical across operating systems and devices.

If the project's goal is to be a modern, open source game engine in general, it's kneecapping itself compared to any competitor.

As far as modern open source game engines go, I think OpenMW is among the most accomplished and respected. With regards to open source Morrowind recreations, OpenMW has had many competitors and as far as I am aware they have all failed.

User safety and cross platform support are high in the projects goals, and that comes with the acceptance that there may be drawbacks. You can't please everyone.

The problem is, if I have to direct people to an engine fork that I've made to add features for my mod, then they're downloading a random exe anyway. This approach doesn't actually increase safety for most end users that are just going to be working down a list of requirements to play my mod.

Cross platform support is a valid concern, but the worst case scenario that all the cool mods only work on Android still leaves Linux/Windows/Mac users with the same mods they'd have without any native code support.

The problem is, if I have to direct people to an engine fork that I've made to add features for my mod, then they're downloading a random exe anyway. This approach doesn't actually increase safety for most end users that are just going to be working down a list of requirements to play my mod.

It has been said by others but the idea is for all good features that fit within the scope of the engine to be merged and made available. Now if a modder feels the need to fork the project in order to have a specific feature in their mod, either because they're hasty or because their idea is too wild to be merged, that is unfortunate, but hopefully a user downloading an entirely different executable would be a little more cautious with what they're getting into.

Cross platform support is a valid concern, but the worst case scenario that all the cool mods only work on Android still leaves Linux/Windows/Mac users with the same mods they'd have without any native code support.

Windows support at the expense of everything else seems also very likely. Walled gardens, especially if they are due to neglect/laziness as opposed to say hardware capabilities, are best avoided.

On the subject of crazy features, I can imagine an OpenMW fork with the purpose of bringing to life the Jvk1166z.esp creepypasta. I would consider that a very interesting project with every reason to exist. But it would be a bad idea to make it into a mod that runs on default OpenMW, since the power it would require of the user's computer is unacceptable, even though an unhinged Lua interpreter would potentially enable it.