Yesterday I quit the OBS Project maintainer team, and today I’d like to explain the full reasons why. And since not fully explaining my decision to prioritize my own health and sanity over a piece of software has made some people angry, this should clear things up a little bit.
While I’m thankful for the OBS Project team providing a software for free, I do not agree with the way they are running the project or the community. But let us take a trip
Down the Memory Lane
The year is 2016, it is July in a average summer for a coastal town like Wilhelmshaven. Someone on Reddit had asked for a native AMD Media SDK integration, and as I had looked up to the OBS Project at the time, wanted to polish my C/C++ skills, and promptly went to work. Around the end of July, I had a working plugin which could encode using AMDs actual physical hardware at much lower cost than WMF encoding had – 4k60 NV12 was possible at <10% CPU cost on an AMD FX 6350.
The plugin got better and better, and eventually became a part of OBS Studios core plugins, which meant it was included in the installer package of OBS Studio. With that came repeated complaints about submodules, and even more clashes. Eventually, it just became stress to even look at the project, and I simply stopped working on it as it stopped being fun.
At least that’s what it looked like from the outside.
How Not To Interact With One Another
In the beginning there was IRC, and the OBS Project had a two channels. I was mostly in the developer one, and that was apparently the wrong move. A few members found it funny to repeatedly make fun of me, or troll me, and saw no repercussions for it. As a result of that, I limited my interactions in IRC significantly to the point that the Forum and Github was the only way to reach me.
Then along came Discord, and with Discord came repeated tirades about something having too many files, about C++ being shit and Rust being gods gift to the masses, crashes that to date have no proof or crash logs but somehow have happened 100% of the time, and git submodules. Thinking back on it, I don’t know why I didn’t leave earlier in the first place.
And not only that, but in my time there I saw perfectly valid feature requests that would have helped the masses be called niche, people get banned for actually no reason, PRs closed without a reason (literally 0 comments) and further nonsense. And despite the teams claims to be open to discussion, they haven’t once discussed things with the people they banned. Though their behavior did net me a few paid commissions, so there’s that too.
Let’s go into detail about one of the issues, particularly the crashes that to date have no proof or crash logs.
Is a Program That Crashes Without a Crash Log Still Crashing?
Supposedly OBS Studio was crashing at startup for 99% of AMD users (according to some unnamed core team members) and I was at fault for that. Which was weird as I saw a decrease in new and existing issues after releasing newer plugin versions. So, as reasonable as I was trying to be, I asked that all further AMD crashes are directed to me.
This lasted for about 4 crashes, and then stopped happening. And not a single one of them was a startup crash, or caused by the AMD Encoder plugin. Three out of the four were crashing during recording after a GPU reset, and one was an outdated driver. So I pointed the users at the solution, the problems were fixed, and I heard no further about it.
At least that’s what I thought. Some time after that, I believe it was when I requested funds for a Vega card in order to find and fix issues with Vega, I was yelled at for fixing the issues users had. Anyone embedded their hand into their face yet? Now is the time to do that. I agreed to some quite ridiculous and insane restrictions, and did my best to do that.
Solution: Not Invented Here
Except I couldn’t because the OBS Project team had something to complain about in every single solution I suggested. Be it the amount of files necessary to compile, it being another submodule, or it simply changing code, there was something to complain about. No solution I suggested was truly accepted – except one, the not-invented-here one.
Yes, that is correct. Despite existing libraries already doing the work better than what I could come up with, the not-invented-here way won. So instead of reducing the work to maintain the code, the OBS Project team wanted to increase it. Still don’t have your hand embedded in your face? You have time to change your hands position still.
And if you need to embed your hand deeper into your face, there are some versions of OBS Studio that ship with ancient versions of the AMD Encoder because the OBS Project team “discovered” a new problem, and didn’t bother to tell anyone about it. Which ended up completely breaking user setups that worked before, and somehow that was my fault again.
The End of AMD Encoder
And with that history, you now have a better idea of why I left and what made me leave. It was not just one, but hundreds of problems, and all of it happened over the span of two and a half years. Two and a half years that I could have spent in a paid job, working on commisions for clients that actually care.
In the end though, I feel much better. A weight is gone from my shoulders, and a lot of stress is gone too – and I don’t want either of it back.
– Xaymar out.