Hacker News new | ask | show | jobs
by evh 1707 days ago
There's also a fork with multiplayer support (to an extent): https://github.com/TES3MP/openmw-tes3mp

OpenMW is great, played it a lot a couple of years ago. I love when games get future-proofed like this. See also the various Quake and DOOM source ports, although those started from id Software releasing their engines under the GPL so had an easier start.

2 comments

The fork is great, but the main developer is incredibly hostile to contributions (i.e. very, very rude and combative for absolutely no reason). If you are thinking of contributing, keep that in mind - it's not you.
In defence of the maintainer. With this sort of project there is a real possibility that there is 1 person in the whole world who will keep the thing alive. If that person happens to have particular standards for what code looks like then good luck to them.

Perfect is the enemy - the active and vigorous enemy - of good when it comes to OSS maintenance.

If you alienate everyone who is excited to contribute, you make sure there is one person in the whole world keeping it alive :)

I don't think it's so rationally motivated. The conversation was so fundamentally illogical I must conclude it was purely emotional.

You're not "everyone", you're just someone who didn't read the contribution guidelines in the readme and still feels like complaining about it to this day.
If you are thinking of contributing, you should at least read what it says in the readme instead of pretending that not reading the readme was unfairly held against you:

"For code contributions, it's best to start out with modestly sized fixes and features and work your way up. There are so many different possible implementations of more major features – many of which would cause undesirable code or vision conflicts with OpenMW – that those should be talked over in advance with the existing developers before effort is spent on them."

Any public examples?
No, I got yelled at (for asking which issues were not picked up yet and then saying I'd pick one up) in private. I'm definitely not the only one.
This is incorrect. You decided you were going to do a unilateral implementation of a feature without discussing it at all. It was an anti-collaboration mindset from you.
You were so rude to me and so unwilling to actually discuss things like an adult I eventually resorted to blocking you on Discord. I talk to an incredible amount of people on there and you are one of maybe two people I've ever had to block. I recognise that there was an avenue where I could have placated you, this is after all possible with every human being. That said, what you accused me of and what you apparently continue to accuse me of is just not reasonable and I'm afraid we will never see eye to eye on this.

Edit: To actually respond to what you are saying: I came into your server and asked if someone had already picked up an issue. When it was clear this was not the case, I said I would give it a shot. Because you were the way you were to me, I never felt like I should contribute my patches upstream (which I did end up writing). That is a shame and a loss and all you had to do to avoid it was approach me with a positive and tolerant mindset, like I tried to do with you.

You never came to the TES3MP server at all. You came to an unofficial server for Lua scripters and decided to tell everyone you were changing the C++ code to add combat events as you wanted even though the combat system was being redesigned at the time to use different packets. You had never spoken with a TES3MP developer before and ignored the readme's contribution guidelines, which simply asked you to start with one of many smaller possible issues instead.

If your idea of a "tolerant and positive mindset" is to immediately try to get scripters to follow a derailment of the plans of a project you have never contributed to and then keep complaining much later that you were told not to do this, it's safe to say the project is better off not having to deal with that.

You're rejecting this person without giving them a chance. "You're wrong" "You did something bad" "You have the wrong mindset". There is no room to be correct. There is no room for a bilateral implementation of a feature. There is no room for a collaboration mindset.
I only rejected his out-of-the-blue implementation of something that already had very different plans around it. There is room for whoever doesn't disregard what the readme says:

"For code contributions, it's best to start out with modestly sized fixes and features and work your way up. There are so many different possible implementations of more major features – many of which would cause undesirable code or vision conflicts with OpenMW – that those should be talked over in advance with the existing developers before effort is spent on them."

Direct for sure, but not rude.

Someone want a modification to be merged and push a lot of template code giving a 3 line PR explanation.

This kind of situation comes often in OSS, specially in C++ project and I wouldn't be surprised if OMW had a lot of PR like this.

With this kind of PR, the maintainer have to go into each line and try to understand what the point because the original author didn't explain that much + it's C++ template and not everyone like that.

This is not a excuse to be arsh or anything, another option would have been to put a tag "need clarification" and let the PR in a hole and force the author to motivates its modifications.

Not just a simple template, a template template, which is certainly quite obscure.
I see a discussion but it's not too harsh to me. Do you come from a Western country? People coming from Western countries tend to be more demanding about discussion friendliness sometimes for my experience
I agree. There are also huge individual differences. I have a military background and we generally don't "gift wrap" our feedback. "This bad because X" is constructive, helpful and to the point, and it doesn't mean that the person receiving the feedback is incompetent. Some people seem to take it that way.

Accepting failure is integral to learning and growth, but a key part of that is identifying the weak points and learning from them.

Edit: s/gift wrap/sugar coat

Contrary to both your comment and the parent's, one of the project's developers (not sure they are the main developer, but one of them) admitted in the referenced pull request that they were too harsh in their response to the contribution:

> Now I am rereading my first comment an see that it is too rude. I am sorry for that. I was in a bad mood when wrote this.

Yep and he apologized as you noticed, so I can't see anything too frightening to me.
What countries would be less friendly in your experience?
Let me clarify that I'm not talking about countries and people, I'm talking about language. For example, English language puts "please" every time you are telling someone to do something, in my language (Italian here), you don't do that. If you are not a good English speaker (like me), you suddenly become someone who gives commands to other people in a rude way.
I'm not GP, but many Asian cultures apparently have a much more blunt culture than many "western" countries.
I thought the parent comment up the thread was referring to the multiplayer fork rather than the main codebase but I could be wrong
I was referring to the multiplayer fork, yes
I… don’t see anything wrong with that discussion?
not to mention petrmikheev isnt even the main developer, let alone the lead of openmw, psi29a is.
Yep, agreed. I decided to make a private branch on gitlab, update it to the latest OpenMW .47 build and since then fix quite a number of breaking bugs as well. I originally was motivated to do this for my own players but unfortunately don’t feel welcome to bubble the contributions back up. Pity really, but this is now a hard fork from tes3mp (although I plan to open the fork at some point with a new project name).
There wasn't anything rude or combative in asking you to allow TES3MP to catch up with breaking changes in OpenMW one at a time, especially considering you had never interacted with anyone from TES3MP at all.

Your attempt to take in many breaking changes at once resulted in what you yourself called an unstable and "truly hacky" build.

Consider why you feel the need for such hard unilateralism in your approach before you complain about others.

Ok, well, that isn’t even close – I offered a link to my own public repository for other people if they wanted to bring their binaries up to .47. It wasn’t a PR. The current version of tes3mp has bugs that make the game unplayable and is way long in the tooth - 3 years since a release.

But anyway - not interested in drama. My branch is up to speed, many bugs fixed and we're having a blast.

Peace and I wish you well with your tes3mp efforts.

Most of those bug fixes and complicated updates towards 0.47 were done by me on the work-in-progress branch, but you're pretending it's your credit somehow just because you took my unfinished work before I could do a release of it (mainly due to COVID-related problems).

If you're not interested in drama, perhaps you shouldn't start it so needlessly.

Also, nice edit to your comment. Here's what you said originally:

https://i.imgur.com/PGszuuE.png

example? I cant think of anyone especially combative working on openmw
I was talking about to the fork, which is referring to the multiplayer fork. The openmw team is great and I have only good things to say about them.
You've never contributed to OpenMW. If you tried the same kind of unilateralism regarding features with them, they wouldn't appreciate it either.
i can highly recommend tes3mp! i did a playthrough with some friends early in the pandemic and it was a lot of fun, a really great way to re-experience an amazing game.

granted there are some limitations you have to be willing to overlook to enjoy the game .. mainly around questing and syncing since all players share the same quest ledger. for example (SPOILER) when curing myself of corpus my character received the cure and attribute buffs but my teammates did not. in the main story line these sync issues are infrequent and were manageable, but at times got especially bad in the DLC -- be prepared to hop in to the command line a lot to revive quest givers, update the journal, acquire items, alter stats.