NullCascade wrote: ↑06 Oct 2018, 02:28
Every serious game engine does this
Similarly, every serious game engine provides its source to clients who can edit the engine directly to their needs (and most do), and care nothing for backwards compatibility. As long as the client can produce a working game with that version, that's all that matters.
How many horror stories I've heard about a game that uses a particular version of a particular engine, there's a problem that was fixed in the latest version, but they can't update because the engine changes are incompatible with their work. Ark uses a version of Unreal Engine that has issues on Linux with OpenGL, missing shader features and performance problems, things which have been improved or fixed in newer versions of the engine but the game can't update its engine. An indie TES-like open world game called Frontier used a version of Unity that, it was discovered during development, had a big problem with the lack of streaming resources. Later versions provided the necessary capabilities, but the dev couldn't update to that version without redoing a significant amount of work. Kingdom Come had a planned Linux version, but it was shelved because the version of UE they used had problems on Linux and they couldn't easily update to a fixed version. A number of games for the Nintendo Switch ended up with missing features or performance problems because they used a version of Unity or Unreal Engine that hadn't yet been fully optimized for the system when they started development, but they couldn't update during development to get feature and performance improvements.
Is that what we want for mods?
Those engines are designed to be everything and the kitchen sink. They have financial incentives to work just as well as a first-person corridor shooter as a third-person battle royale, as an isometric party-based RPG, as a first-person open world adventure game. As a volunteer-driven hobbyist endeavor, there is no way OpenMW could do that, native plugins or no (in fact, native plugins will split and reduce what workforce is available). While OpenMW will be designed to be usable for non-Morrowind games, the engine is still going to be designed around Morrowind-like games.
What do Oblivion, Skyrim, Minecraft, Terraria, and other modders do? They assemble common code, which doesn't necessarily have anything to do with OpenMW itself, in common libraries that they can share.
Modding Minecraft is so easy, it requires layers of mod managers (ones that even have to inject themselves into the game) to get everything to play nice, which causes performance and stability problems, and mods have to be constantly updated with new versions of the game. Oblivion and Skyrim mods are so stable, too.
Incidentally, the Doom3 engine allows native code plugins, yet the two biggest mods for it (Edge of Chaos and The Dark Mod) maintain their own source ports and don't work on any others, which also support native plugins.
Conversely, with an engine like GZDoom, I have very little to worry about. Everything works just as natively regardless of platform, I never have to be concerned with if that mod I just head about is "for me"... it's a mod for GZDoom, I have GZDoom, it'll work. The risk of any mod breaking with an update is extremely low. I can update the engine or my system right now and not worry about the Doom64 or Castlevania or Half-Life TCs failing. If I want I can take a nostalgia trip and load up mods from 25 years ago, I don't have to be concerned about if it's still going to work. And if I do manage to run across something doesn't work, I can report it to the engine devs and it can get fixed.