The only way to replace Vanilla Engine (IMHO)

General discussion regarding the OpenMW project.
For technical support, please use the Support subforum.
TamrielCitizen
Posts: 22
Joined: 04 Dec 2018, 06:25

Re: The only way to replace Vanilla Engine (IMHO)

Post by TamrielCitizen »

raevol wrote: 04 Dec 2018, 21:10 The TLDR for this is that he wants the option to disable all non-vanilla features, and he's saying vulkan support would give us multi-core support.
Well, not quite. You are correct that I want OpenMW to have an option to disable all non-vanilla features, although you left out my emphasise on providing the player with an option whenever possible being, in my opinion, the best way to go forward, and the fact that I linked this with also implementing MCP/MGE XE features into OpenMW as optional behaviour.

I am not exactly saying that Vulkan support would give OpenMW multi-core support. I am saying that one of the possible ways to increase performance is switching to Vulkan Scene Graph when it is mature enough. Obviously, OpenMW does use multiple cores already, and I do know this, but it doesn't appear to do a good job of distributing the load between them equally, something which, as far as I know, the Vulkan API is really good at. Supposedly Vulkan is also able to move some of the load from CPU to GPU, which may be a very good thing for OpenMW, too.

And most importantly, my post is about eventually turning OpenMW into a true replacement for the Vanilla Engine, rather than just an alternative, to avoid the fragmentation of the Morrowind community. Actually, I think I managed to summarise the main point of my post quite well in the title.
TamrielCitizen
Posts: 22
Joined: 04 Dec 2018, 06:25

Re: The only way to replace Vanilla Engine (IMHO)

Post by TamrielCitizen »

Ravenwing wrote: 05 Dec 2018, 00:08 Not a dev, but I believe I am accurately representing them in the following.

The answer to the “vanilla+MCP+MGE XE+MWSE+mods” features question is almost universally: we either support or plan to support all features provided by those tools, but the implementation will probably not be identical as we are not bound by the same restrictions. This is also universally dependent on time and interest by existing and future developers. Some mods may not be compatible, but our responsibility remains to maintain compatibility with all mods that do not require 3rd party tools or engine bugs. If you believe a mod should be compatible under these conditions but isn’t, please file a bug report. Very popular mods that require MWSE may require a rewrite eventually, but it is hard to say at this stage and we try to do everything in our power to reduce the likelihood and resulting headache as possible.

As to options, we all love options. In general we will try to provide as many as possible. The main reason we might not is to prevent the code base from become unmanageable. More options sometimes increases the likelihood of bugs.
If eventual support of all those features is indeed planned, that's great (as long as these features can be disabled by those who dislike them). It's exactly what I needed to hear, especially after receiving a somewhat negative response to my post (I guess I had that coming, writing such a huge post - nobody likes walls of text, even if I tried to format it for more readability). I don't mind different implementations, as long as the player experiences the same result (that was mentioned in the FAQ, wasn't it?). :)

As for MWSE mods - wouldn't eventual LUA support allow to put current LUA files made for MWSE into OpenMW's LUA folder, and have them working? It may require some additional code to interpret MWSE's functions correctly, I guess, but don't you honestly think it's worth it? As for non-LUA MWSE mods, can't their support be enabled through LUA? I may be completely wrong about it, but doesn't MWSE's LUA already do that for some functions ("wrapping" them), including some functions in mwscript? Maybe NullCascade could clear up my confusion, if he happens to come across this thread. :?

Of course, it goes without saying that all of this depends on the developers' willingness to spend their time on it. That's why I'm trying to convince them that it is worth it.

Guys, I'll say it again, you do an incredible job, and the results are amazing, a huge thank you from me, and from the Morrowind community! I am just dreaming about a future when the results are even more unbelievably amazing, and making some suggestions about how to achieve that (IMHO, of course). :oops:

Yes, I get what you are saying about options making the code more complicated, and the bugs harder to fix. Shouldn't the git infrastructure, with all those commits and merge/pull requests help with that? I got the impression that it allows to efficiently trace anything that ever changed in a project, if one knows how to use it well (not me, obviously, so, again, I may be wrong). Also, couldn't you ask people to provide their config file, for example, when submitting a bug report to make it easier to reproduce the bug (using same options)? And in general, any change of code increases the likelihood of bugs, should it really stop developers from adding things? Again, I am not speaking about pre-1.0, I am speaking about the future. :D
User avatar
raevol
Posts: 3093
Joined: 07 Aug 2011, 01:12
Location: Caldera

Re: The only way to replace Vanilla Engine (IMHO)

Post by raevol »

Make it stoooooooop......
User avatar
psi29a
Posts: 5356
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: The only way to replace Vanilla Engine (IMHO)

Post by psi29a »

TamrielCitizen wrote: 04 Dec 2018, 22:43 I hope you don't actually mean me when you say "you", but rather in a general sense, as I have actually spent ~13 hours today making sure that everything in my post is as perfect as I can possibly make it and that I do not accidentally offend anyone. As I said, I am not a native English speaker, and I am also extremely introverted on top of that, meaning that I rarely communicate with anyone at all. Just in case I did somehow manage to say something stupid, I apologise. :(
I'm only speaking to any individual reading this that fits the descriptions listed. If you don't think you fall into this category, you're doing ok. :)

It is not about saying something stupid, it is how you say it and how you interact and deal with people. Being obstinate is a quick way to be asked to leave. Play by the rules, or leave us in peace. That's all we ask.

Seriously though, feedback is great. It is nice to hear back from the community that has high hopes of OpenMW. However we can't be everything to everyone and we have to pick our battles. Some times it is just easier to stop a conversation, ask someone to leave, so that we can go about doing what we love. The last thing anyone wants is to be treated like shit for working on something they love.

This goes to you as well, you shouldn't be treated like shit either for voicing your opinion.

You want to really help OpenMW and you don't know how to code? Help us test mods and report what doesn't work.

Mods that don't work on OpenMW usually indicate a problem in OpenMW. It is best to see this resolved instead of 'hacking around' OpenMW in a mod. The exceptions, of course, are mods that depend on 3rd party binaries or mods that exploit bugs. These mods will either be rendered obsolete anyway or will need to be re-written.

Are there things not in our FAQ that you think need addressing?
raven
Posts: 66
Joined: 26 May 2016, 09:54

Re: The only way to replace Vanilla Engine (IMHO)

Post by raven »

TamrielCitizen wrote: 05 Dec 2018, 00:26 I am not exactly saying that Vulkan support would give OpenMW multi-core support. I am saying that one of the possible ways to increase performance is switching to Vulkan Scene Graph when it is mature enough. Obviously, OpenMW does use multiple cores already, and I do know this, but it doesn't appear to do a good job of distributing the load between them equally, something which, as far as I know, the Vulkan API is really good at. Supposedly Vulkan is also able to move some of the load from CPU to GPU, which may be a very good thing for OpenMW, too.
Vulkan as such does not do anything. It is a toolbox. It gives you more control at the price of having to handle a lot of "low level" details yourself. You have to write the actual code to make it fast. And this can be a nontrivial task, especially when you want to plug it in into some game that was designed decades ago without any regard for multithreading etc.

To get the maximum out of Vulkan you have to optimize your rendering code for your specific use case. Vulkan Scene Graph will be an abstraction on top of Vulkan. Depending on the use cases it supports, it will have to compromise speed for flexibility.

Nvidia OpenGL driver is for example pretty optimized internally. It is using threading to run the GPU as asynchronously as possible. So it will be very fast assuming you avoid certain OpenGL calls to stall it. It is not a given that by simply switching to Vulkan you'll get more speed.
User avatar
psi29a
Posts: 5356
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: The only way to replace Vanilla Engine (IMHO)

Post by psi29a »

Vulkan Scene Graph is also not a drop-in replacement to Open Scene Graph, so this is yet more work. VSG is not yet ready and we have work in other areas that need to get done first, so this is a post-1.0 thing

Btw... threading and being asynchronous are not the same thing, typical asynchronous applications are single-threaded (single core). Async is a promise of work, fire and forget, and you poll the service/application to see if the work is done to get the result. So while you're waiting for the promise, you are free to do other things, then check back on that promise. This all happens in one thread.

Having multiple threads means that you can off-load work to other threads while your main thread holds all the dice. Every once in awhile, your main thread checks on the other threads for any work completed or to distribute more work.

This is why many people observe OpenMW nearly 100% on one core, that's the main thread that is always working. The OS will schedule the other threads to run on whatever core it pleases, sometimes this is on the same core. We don't have control over that, that is the OS choice. In theory, the OS, should be smart enough to put threads on separate cores. Sadly with hyper-threading, shit hits the fan because two threads can operate on one core causing performance to suffer because the OS thought it was a good idea to put the main thread on logical cpu0 and physics thread on logical cpu1, however logical cpu0/cpu1 is really just cpu core 0. It happens with AAA titles as well.
TamrielCitizen
Posts: 22
Joined: 04 Dec 2018, 06:25

Re: The only way to replace Vanilla Engine (IMHO)

Post by TamrielCitizen »

psi29a wrote: 05 Dec 2018, 10:14 It is not about saying something stupid, it is how you say it and how you interact and deal with people. Being obstinate is a quick way to be asked to leave. Play by the rules, or leave us in peace. That's all we ask.
Well, by "stupid" I meant mostly some bad choice of words that could have some double meaning or unintended tone and may look offensive to a native English speaker. And as I rarely communicate in general (not just in English), I may be formulating my thoughts badly, too. :oops:
psi29a wrote: 05 Dec 2018, 10:14 You want to really help OpenMW and you don't know how to code? Help us test mods and report what doesn't work.
I do want to help OpenMW, and I hope that someday I may actually have time to contribute in other ways, maybe even with the coding itself (I actually do have a bit of experience writing simple standalone C programs, and I'm planning to learn writing more complicated ones in the future, although I've never used git infrastructure for it), but in the immediate future I don't really see how I could add another task on top of the pile of those I am already committed to doing. I always take my responsibilities seriously. Also, I am not on my main computer currently, and the one I am using right now doesn't even have Morrowind installed (I should probably try finding my old CDs). :(

I managed do dedicate yesterday to what I think is the best way for me currently to make at least some contribution to OpenMW, considering my overall skills and available time, but that means I'll have even less free time in the coming days if I am to manage everything I have to on time. Planning is actually something I am usually quite good at, managing to focus both on the general picture and the details, including their interaction and overall effect, which is why I think my post may have some value to OpenMW.
psi29a wrote: 05 Dec 2018, 10:14 Mods that don't work on OpenMW usually indicate a problem in OpenMW. It is best to see this resolved instead of 'hacking around' OpenMW in a mod. The exceptions, of course, are mods that depend on 3rd party binaries or mods that exploit bugs. These mods will either be rendered obsolete anyway or will need to be re-written.
I agree that Vanilla Engine bugs shouldn't be copied, but I also realise that people may have different definitions of a "bug". Basically, my opinion is that if there are people arguing (as in, actually presenting reasonable arguments) that a certain Vanilla Engine behaviour is a feature, not a bug, such behaviour should be made possible in OpenMW. I am mostly speaking about gameplay mechanics here. For example, unique gameplay mechanics of Abilities, which I actually relied upon myself in one of my half-finished mods. See my comment in the forum thread about Issue #1751 for details.

And by the way, I bring to attention there that those mechanics also apply to Skills, not only Attributes. I didn't see anyone else mention it yet, so I hope it won't end up being overlooked. :!:
Also, shouldn't eventual implementation of LUA allow mods depending on MWSE work in OpenMW?
psi29a wrote: 05 Dec 2018, 10:14 Are there things not in our FAQ that you think need addressing?
The FAQ is definitely a lot better now than it was a year ago. I think maybe there should be an entry explaining what you hope to eventually achieve with OpenMW in the context of playing Morrowind with it. As in, basically, address those reasons I am talking about in my post that people may have for not switching to OpenMW.
Saying that you plan to eventually implement all the features of MCP/MGE XE as an options, while also giving an option to configure OpenMW to behave exactly like the Vanilla Engine (most importantly, in terms of gameplay mechanics) is very important if you do indeed plan on it (I hope).
If eventual LUA implementation will allow MWSE mods to work in OpenMW (which I believe is absolutely worth potential effort required to make it happen), it should be mentioned, too.
charlieg
Posts: 50
Joined: 30 Jun 2015, 14:17

Re: The only way to replace Vanilla Engine (IMHO)

Post by charlieg »

raevol wrote: 04 Dec 2018, 21:10 The TLDR for this is that he wants the option to disable all non-vanilla features, and he's saying vulkan support would give us multi-core support.
Da real MVP right here. That was a lot of text for so little meaning.
charlieg
Posts: 50
Joined: 30 Jun 2015, 14:17

Re: The only way to replace Vanilla Engine (IMHO)

Post by charlieg »

TamrielCitizen wrote: 04 Dec 2018, 22:43I have actually spent ~13 hours today making sure that everything in my post is as perfect as I can possibly make it and that I do not accidentally offend anyone.
Whilst it's not for me to tell you what to do with your time, you might consider 13 hours writing a rather unhelpful forum post designed to spark non-productive debate and convince people to see the world from your POV as, well, a waste of 13 hours.

Just think what you might have been able to do in that time:

Perhaps you might have worked out how to download, compile OpenMW and learn a bit more about it's internals.

Or you could have worked out how to fix your favourite mod to work on OpenMW.

Or you could have investigated how to create your own mod.

Or you could have started learning to program.

Or... <many other productive things>.

Instead you invested 13 hours of your time in trying to start, in essence (if not intention), a flamewar.
User avatar
psi29a
Posts: 5356
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: The only way to replace Vanilla Engine (IMHO)

Post by psi29a »

TamrielCitizen wrote: 05 Dec 2018, 14:02 The FAQ is definitely a lot better now than it was a year ago. I think maybe there should be an entry explaining what you hope to eventually achieve with OpenMW in the context of playing Morrowind with it. As in, basically, address those reasons I am talking about in my post that people may have for not switching to OpenMW.
Saying that you plan to eventually implement all the features of MCP/MGE XE as an options, while also giving an option to configure OpenMW to behave exactly like the Vanilla Engine (most importantly, in terms of gameplay mechanics) is very important if you do indeed plan on it (I hope).
If eventual LUA implementation will allow MWSE mods to work in OpenMW (which I believe is absolutely worth potential effort required to make it happen), it should be mentioned, too.
If people want to play Vanilla Morrowind or Morrowind with 3rd party plugins, then let them be. We are not here to convince people to use something else that prefer. That's not our job. We're not the inquisition, turning or burning people. ;) If a majority of people have Windows and said majority already have something they like, they why should they switch? They already have Morrowind.exe

The reason why I and others wanted to work on OpenMW is because we wanted to play Morrowind on Linux and/or MacOS natively. So a majority of the total labour that has gone into OpenMW is in fact not done for WIndows, though we have tried our best to keep Window as a target platform. The more windows developers that actually want to contribute and help, how much better OpenMW is going to be on Windows. It is just a fact that not many windows developers have heard the call to work on OpenMW which is a shame.

My question is: Why is that? Possibly because Windows users already have Morrowind.exe and are content with that. If they weren't, then we'd see more developers using windows.

We won't implement all the features of these 3rd-party programs because they are limited/focused on Morrowind.exe, they are things that are already in or yet to be in OpenMW. Not all mods made for MWSE will be compatible with OpenMW. That is fragmentation we can't avoid. We are not going to shoe-horn in Morrowind.exe's old-cruft into OpenMW. For example: MWSE exposes Morrowind.exe 's scenegraph. This looks totally different then our scenegraph. Mods that depends on the former's scenegraph will just not work with OpenMW's, even if the mod uses Lua. The best the mod author can do is then re-work their mod to work OpenMW's scenegraph as well.
Post Reply