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 » 05 Dec 2018, 14:57

raven wrote:
05 Dec 2018, 11:01
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.
So, basically, chances are that if VSG supports everything OpenMW needs, it would sacrifice some of Vulkan's performance improvements, did I get that right? Well, perhaps it could still improve OpenMW's performance. Of course, I realise that such a switch would inevitably require additional work, and the effort involved should obviously be considered when making such a decision. I am obviously a lot less knowledgeable about all the relevant technical details than the developers. I just wanted to bring up VSG as a possible way to improve performance, but if there is some better way to do this, that's great!
raven wrote:
05 Dec 2018, 11:01
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.
Hm... Maybe I am completely wrong, but doesn't NVidia driver work only with NVidia GPUs? If so, all the people who have AMD GPUs (and there are a lot of such people) won't benefit from it. As a matter of fact, I was under the impression that AMD's driver is awfully optimised for OpenGL, especially in comparison to its Vulkan optimisation. I suppose it's better to have OpenMW performing well on AMD GPUs, too, not only NVidia ones? Especially considering the general philosophy of OpenMW being fully usable on very different systems (cross-platform), which is incidentally Vulkan's philosophy as well.
If you were just using NVidia driver as an example of how optimisation for a specific API matters, I agree, it does matter a lot. Still, NVidia cards are also performing significantly better with VulkanAPI. I guess it all depends on how Vulkan Scene Graph will be utilising Vulkan possibilities, and whether it will support everything OpenMW needs it to.
psi29a wrote:
05 Dec 2018, 12:13
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
I absolutely agree that further optimisation isn't something that should delay 1.0, and I did mention it myself that VSG isn't ready yet for OpenMW to switch to it. Also, thanks for the technical explanation! I agree that even modern commercial games are often relying more on per-core performance of CPU, instead of utilising all the cores fully. That's why Intel CPUs are considered better for gaming.

TamrielCitizen
Posts: 22
Joined: 04 Dec 2018, 06:25

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

Post by TamrielCitizen » 05 Dec 2018, 15:33

charlieg wrote:
05 Dec 2018, 14:32
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.
See my reply to raevol:
TamrielCitizen wrote:
05 Dec 2018, 00:26
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.
charlieg wrote:
05 Dec 2018, 14:37
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.
I definitely didn't want to start a flame war (and I don't think one has started), and I hoped that the debate would be productive (and I don't think it's a bad debate so far). Actually, I still believe that my time wasn't entirely wasted, as my post contains some good points, introduces suggestions that the developers may choose to act on in the future and provides opinions that are also shared by other people. At the very least, I learned some technical details in the following discussion, and I think this discussion might lead to some good things in the future.
The best way I could contribute to OpenMW was to offer my thoughts, so I did that.

User avatar
drakovyrn
Posts: 62
Joined: 17 Feb 2017, 03:51
Contact:

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

Post by drakovyrn » 05 Dec 2018, 15:41

charlieg wrote:
05 Dec 2018, 14:37
TamrielCitizen wrote:
04 Dec 2018, 22:43
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.
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.
Careful, I've been keeping an eye on this thread, but nothing TamrielCitizen's said could be mistaken as cause to start a flamewar.

For the most part, everyone in participation has been patient and civil, and no one has criticized anyone... until you posted this.

Just be mindful that you don't cry wolf. There are times to shut down trolls. As it stands, "This ain't it, chief".

TamrielCitizen
Posts: 22
Joined: 04 Dec 2018, 06:25

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

Post by TamrielCitizen » 05 Dec 2018, 16:41

psi29a wrote:
05 Dec 2018, 14:44
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.
Well, as you noted yourself, people who decide to work on OpenMW are most often people who believe that their experience playing Morrowind would be better with OpenMW (at least eventually) than with Vanilla Engine (in your case, if I understood you right, playing natively on a non-Windows OS). There are reasons, however, why people may not believe their experience would improve. The same reasons that I discussed in my post at (perhaps excessive) length, the only difference being that these potential developers may not even believe those reasons could someday be in the past, as the OpenMW team didn't explicitly state (as far as I know) that they wish for OpenMW to eventually leave all those reasons in the past.

I think that addressing that in the FAQ is actually a good idea, and may actually help attract more Windows developers. Leaving reasons №1 and №5 in the past is, obviously, implied and getting rid of №2 is stated as a 1.0 goal. However, the OpenMW team's stance on №3 and №4 is more ambiguous, which is why I proposed additions to the FAQ addressing them, assuming of course, that it is indeed the developers' intention to leave those reasons in the past eventually.

Of course, there are also some people who get discouraged by their proposed changes being blocked as out of scope for 1.0, but this shouldn't be an issue post-1.0 anymore, I assume.
psi29a wrote:
05 Dec 2018, 14:44
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.
I see. Well, the ideal is unreachable by definition, which doesn't mean people shouldn't try approaching it as closely as possible. But is that ideal the same for the developers? I guess that's my main question and concern. If the OpenMW team agrees with me that leaving all those reasons (the ones I discussed at length) in the past is indeed the ideal, and wishes to approach that ideal as close as possible, you should probably state that more explicitly. That would be enough for me and for many others, including some potential new developers (maybe I myself could even become one in the future, assuming I have a bit more time someday).

User avatar
AnyOldName3
Posts: 1453
Joined: 26 Nov 2015, 03:25

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

Post by AnyOldName3 » 05 Dec 2018, 17:42

There's a lot of stuff that MWSE, MCP and MGE XE do that, in general, is really stupid, but (because they didn't have source access to the original engine or because the original engine does something really stupid) is the least stupid option available. OpenMW wants to achieve the best possible approximation of having not done anything stupid, so copying these features directly isn't the approach we're going to take. However, most of these things enable modders to do new things, and we aim to offer ways for modders to do any of these things, even if they need to redo some of their mods from scratch. Hopefully, because we won't have done anything stupid, it will be much easier to recreate mods from scratch with OpenMW than it was to create them in the first place.
AnyOldName3, Master of Shadows

User avatar
lysol
Posts: 1277
Joined: 26 Mar 2013, 01:48
Location: Sweden

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

Post by lysol » 05 Dec 2018, 19:12

drakovyrn wrote:
05 Dec 2018, 15:41
Careful, I've been keeping an eye on this thread, but nothing TamrielCitizen's said could be mistaken as cause to start a flamewar.

For the most part, everyone in participation has been patient and civil, and no one has criticized anyone... until you posted this.

Just be mindful that you don't cry wolf. There are times to shut down trolls. As it stands, "This ain't it, chief".
While I kind of agree that the original post was a bit long and had bit too little of the thought "wait, maybe these guys already thought about most of this", TamrielCitizen has been polite all the time, so I also agree with you fully that this was too harsh.

So TamrielCitizen, if anyone of us comes off as a bit short, don't take it personally. We've just dealt with a few "I know better than all of you guys, you should to it like this instead. Kthxbai I won't contribute any line of code whatsoever"-guys lately, so we're all a bit tired of dealing with that. So don't worry, as long as you don't start behaving like a dick or a know-it-all while suggesting stuff, you're welcome here. :)
Normal mapped texture replacers, exclusive for OpenMW:
My Nexus page

TamrielCitizen
Posts: 22
Joined: 04 Dec 2018, 06:25

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

Post by TamrielCitizen » 05 Dec 2018, 19:39

AnyOldName3 wrote:
05 Dec 2018, 17:42
There's a lot of stuff that MWSE, MCP and MGE XE do that, in general, is really stupid, but (because they didn't have source access to the original engine or because the original engine does something really stupid) is the least stupid option available. OpenMW wants to achieve the best possible approximation of having not done anything stupid, so copying these features directly isn't the approach we're going to take. However, most of these things enable modders to do new things, and we aim to offer ways for modders to do any of these things, even if they need to redo some of their mods from scratch. Hopefully, because we won't have done anything stupid, it will be much easier to recreate mods from scratch with OpenMW than it was to create them in the first place.
Maybe you could provide some examples of such stupid things, so that I better understand what kind of features you are talking about?

There is certainly no need to copy something directly if the same functionality can be enabled in a more sensible way. Features that affect gameplay can surely be implemented in a lot of different ways, what matters is whether the player is able to have the same effect in-game. I believe it's stated in the FAQ that the OpenMW team uses this approach to implement Vanilla Engine behaviour, and I fully agree with it. As for modding possibilities, if OpenMW eventually offers all those possibilities, albeit some of them in a different way, that's great! :)

I do believe, though, that minimising the amount of mods that would need to be rewritten is also important and should be one of the goals. I mean, if some mods rely on feature X from MCP/MGE XE/MWSE, and don't work in OpenMW, instead of immediately deciding "these mods rely on that tool's implementation of feature X, they all need to be rewritten, end of story", first considering whether it is possible to make them work in OpenMW without introducing something really stupid, and if it is, trying to achieve that, even if feature X itself is still implemented differently.

User avatar
ap0
Posts: 288
Joined: 11 Aug 2011, 18:47
Contact:

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

Post by ap0 » 05 Dec 2018, 20:51

At some point, we'll have to deploy a captcha about C++ trivia to prevent people with a lot of opionated ideas from posting passive-aggressive advices/rants I guess… Or maybe a bot that auto-closes with "OpenMW is open-sauce, we'll be happy to review your pull requests, thank you.".

TamrielCitizen
Posts: 22
Joined: 04 Dec 2018, 06:25

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

Post by TamrielCitizen » 05 Dec 2018, 21:05

lysol wrote:
05 Dec 2018, 19:12
While I kind of agree that the original post was a bit long and had bit too little of the thought "wait, maybe these guys already thought about most of this", TamrielCitizen has been polite all the time, so I also agree with you fully that this was too harsh.

So TamrielCitizen, if anyone of us comes off as a bit short, don't take it personally. We've just dealt with a few "I know better than all of you guys, you should to it like this instead. Kthxbai I won't contribute any line of code whatsoever"-guys lately, so we're all a bit tired of dealing with that. So don't worry, as long as you don't start behaving like a dick or a know-it-all while suggesting stuff, you're welcome here. :)
Well, I do realise that a lot of the things I mentioned is something the OpenMW team already thought about, although I also hope that I made some points that not everyone has considered. But the reason I had to make such a long post was that my main intention was to offer my view on what the OpenMW team should try to achieve in the future in a coherent way, representing the whole picture while paying attention to all the details and their interconnections and overall effect. I couldn't just start offering random, out-of-context and all-over-the-place thoughts; I had to make sure the post contained the whole thought process involved, presented my argumentation and provided appropriate context - basically, I was writing an essay.
Also, I usually have to choose between formulating my thoughts succinctly and making sure I don't miscommunicate. When I am trying to make a point, I generally choose the latter, which contributes to the length of my monologues/posts.

And thank you for the kind words! I am not an easily offended person, and although I was a bit sad when the first few replies to my post were a bit negative, I understand that there are people who are capable of irritating and frustrating someone enough to cause a negative reaction to something out of habit, and I don't take it personally. The length of my post also made people even more tired, of course (I did apologise in the beginning). But I think my non-confrontational nature (I always try to avoid any conflicts) may have helped to turn the discussion in a more positive direction. :)

TamrielCitizen
Posts: 22
Joined: 04 Dec 2018, 06:25

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

Post by TamrielCitizen » 05 Dec 2018, 21:19

ap0 wrote:
05 Dec 2018, 20:51
At some point, we'll have to deploy a captcha about C++ trivia to prevent people with a lot of opionated ideas from posting passive-aggressive advices/rants I guess… Or maybe a bot that auto-closes with "OpenMW is open-sauce, we'll be happy to review your pull requests, thank you.".
My post and the first few of my subsequent comments were in fact on pre-moderation before they were approved and actually posted, which I suppose is standard for new forum members. Also, if you thought my post was a "passive-aggressive advice/rant", I am sorry to hear that, but it was definitely not how I intended my post to be perceived. And of course, everything I wrote is just my opinion - hence why I included "IMHO" in the title.

Post Reply