Not on the same page

Sat 20 March 2021

The past 15 years have been a big journey… from really getting into Linux to learning the technological landscape, building skills, getting jobs… and also of course making Lutris! Since I made my full switch to Linux in 2005, I’ve had this ever growing dedication for the platform and the concept of Open Source surrounding it. This led me to join various communities, like LUGs, forums, chat rooms, conferences, meetups… While I did not always agree with the voices in those various communities, it still felt like home, mostly because of the human interaction it created. And however I might disagree with some opinions, it’s still enjoyable to share a meal, drinks and enjoy a good time. Not having physical gathering may have offered a different perspective but feeling of being out of touch with others had been here long before…

The disconnect I feel between what I want to deliver in what I build and what the users asks for is now too big to ignore. In some way, I already knew it would be the case before I even started Lutris. I knew that what I was trying to achieve wasn’t in line with how Linux users usually behave…

This is really simple really; Linux users love to tinker, the goal of Lutris is to remove this tinkering (or to have some heavy tinkering done upstream, so it’s not needed at an individual level). With that in mind, it’s easy to see how Lutris was labeled as a tool to help Linux newbies to install games and have the power users do their usual stuff on the CLI. The problem with tinkering is that it can only take you so far in terms of cohesive product design. Cohesion is one of the bigger problems about Linux, it has been for a while. When a community of users take pride that their system is “about choice” and everyone has a different opinion on what it is to build an OS correctly, it’s unlikely that this community would be united and go on the same direction.

I really get it, tinkering is fun. But when most people start to question the validity of the work of teams who ship operating systems, it’s hard to have a platform to build on top of. Linux, the kernel, is its own kind of beast. It’s stability is exemplary and allows to power most of the world’s electronic devices. But without the deep scrutiny that Linus and Greg K-H impose on incoming patches, I sometimes wonder what kind of shit show the kernel would become… Driving a large Open Source project goes hand in hand with a strong governance. Leaders of big Open Source projects would call themselves “benevolent dictators”, maybe indicating that dictatorship level of authority were necessary to keep the project in the right direction. Projects like Debian, Ubuntu, Python and Blender have become industry standards and also have or have had a strong and strict leadership. Without some very high level of stability, the whole Internet would start failing randomly and we’d all be having a pretty bad time. The world of desktop Linux, and specifically the gaming related one, is a jungle compared to the server space. It is somewhere, when asking for help, you hear hundreds of dissonant shouts simultaneously and probably end up starting a fight…

We’ve still come a long way regarding gaming on Linux. Vulkan changed everything. And how Valve shaped the gaming world on Linux, it also changed everything. Excluding multiplayer features which still pose a problem, we can expect any recent game to run on Linux without major issues. But other things don’t change, those things seem to be less on a technical level and more tied to the general lore that surrounds the Linux community. If your goal is to have a system that is about choice, then you have made the choice to not give me and other developers a stable foundation to build upon. This has been the topmost complaint given by game developers studios when they were at least considering porting their games to Linux. Not only desktop Linux doesn’t have a stable foundation at any given point in time, it is also very volatile and what is working on a system today, won’t necessarily work tomorrow on a future version of the OS. In some ways, It draws some weird similarities with the Javascript ecosystem, which also offers lots of choices and is very volatile… And let’s be fair, as much as some claim that Linux is “developer friendly”, it’s really not. If you’re a dev for GNOME, KDE, Systemd, PulseAudio or some other “unpopular” project around some crowds, you’re more than likely to have been handed some shit over the past few years. What if you have made unholy technical choices like using Java or Electron? This will inevitably attract the Linux cowboys yelling “Hey! You there! Yes, you. We don’t fancy your kind around here…”. It would even go as far as some people having talks during Linux conferences titled stuff like “programmers are evil” (and make it pretty clear during the talk that they aren’t entirely joking). No, I wouldn’t say that Linux is developer friendly, or at least its community isn’t. Yet, I wouldn’t want to do development on any other platform than Linux. I actually do, on OSX, and it’s a PITA, Macs are so poorly designed… but that’s another story…

One of the things you hear often in the Linux world goes like “you don’t need to be a developer to contribute to open source, you can also report bugs”. It turns out that having people reporting “bugs” while there no one to fix them creates more noise than it helps the project. Especially when users start treating the bug tracker like it’s their Amazon wish list. It ends up in a Hellraiser-like situation where your project is pulled apart by hooks in every possible direction… Because I care about the project and because there is a widening gap between where I want to drive the project and the feedback I receive from it, I have chosen to distance myself from certain aspects until a better solution can be found. I had given myself the goal of keeping the issue count on the Lutris bug tracker low. Because handling a higher number of tickets is just harder when development resources are so low and dilutes the real direction of the project into a huge blob of tickets. Being it’s own special kind of project, the client bug tracker also became a bug tracker for games that don’t work under Linux, broken Lutris installers and a help desk for those who have a hard time installing graphics drivers or wine. By simply unsubscribing from the Lutris bug tracker, I simply don’t get notified of new issues created. It avoids this problem of going through my email while still waking up and freaking out because some issue make me go What The Hell!? I like being able to read my email without having to freak out…

Lutris has become pretty big. It’s now included in the Debian and Ubuntu repositories, which now makes it available on all major Linux distributions. Shipping broken features is no longer an option at that point, and the QA process accompanying each release has been reflecting that lately. The next release of Lutris, version 0.5.9, is quite ambitious, as it should tackle some issues that prevented Lutris from playing nicely with Steam or other gaming service. It should also build upon a lot of concepts introduced in 0.5.8. Needless to say, this is one of the most delicate releases the project will ever have, with some major changes in the lower level aspects of the program. I’ve never been good working in a noisy environment (unless it’s self inflicted noise, like grindcore, or techno…), the work I will have to do requires either concentration by myself, or being able to discuss very precise subjects with others who are on the same page. Getting people on the same page has proven to be the most challenging aspect of driving a project, way above any technical issue.

Caring a lot about something, while also failing to convey the general vision I have and being subjected to this feeling of being pulled apart in every direction has driven me to be pretty pissed off whenever anything Lutris related would come up. That’s not really a good position to be in when driving the project. In addition to that, handling all of that “noise” is very time consuming and I would like to have enough time for other things in my life like learning 3D, music or planting random seeds from store bought fruits, which I think is illegal here. Don’t copy that jalapeno! Another thing I like doing is using the damn program I wrote. I just built a pretty sick gaming setup and with ScaLE being canceled this year, I can’t really show it… unless I make some Youtube videos? That would be nice with the time gained not having to deal with random Lutris stuff… It was probably silly of me to want the issue count low at all costs, but as I’ve said before, I have a hard time working in a messy/noisy environment… I can’t cook in a messy kitchen, I can’t code on a messy desk. Saying that I’m no longer the project manager, that I don’t have to triage issues, has helped a lot lately. If I want to maintain a healthy role as the architect and developer, I’ll have to drop that aspect of the project.

Position of Lutris project manager is open. I involves being able to sort through Github issues while knowing the general direction the project is headed and being able to differentiate which issues should be handled by Lutris and which are not our responsibility. I’m also not putting all my hopes on having that role replaced soon because project managers don’t usually materialize out of thin air. I built that project hoping that I would eventually get help from some more senior developers. Senior developers don’t appear out of thin air either. I’m not too worried. I dog food on an almost daily basis. If anything was insanely broken, I would go and fix it. But with Lutris itself becoming more stable, the issues keep getting weirder, and I don’t want to keep up with all the funky ways someone can break their Linux desktop by thinking they know better than OS engineers.

The desktop Linux community is mostly made up of people who have been bitten in all sorts of ways. A lot have been bitten by one too many BSOD, or flawed Windows Update. A lot have been bitten by broken upgrades. Broken software is all around us. Doesn’t matter if it is Open Source or not, broken software bites people and bitten people trust you less. I’ve shipped my fair share of broken code and I know that it led some to believe that Lutris is a broken POS. No matter what progress the software makes, it’s hard to gain the trust of users back. Want a better example than Lutris? Firefox. You get memes going like Firefox eats all your RAM or Firefox is slow and those memes stick, even if those aren’t even relevant today, on the current version. Next thing you know, Chrome is eating all the browser market share and Mozilla has to fire a bunch of people. Same with the Microsoft hatred. I get it, I read the Halloween documents and hated Microsoft before I was getting my Amiga 500… But if I keep looking at what’s happening, and why I was hating Microsoft to begin with… those delusions of world domination by Bill Gates and such… It is very clear that Microsoft is no longer in that position and it is very clear that Amazon is. Yet, the general consensus in the Linux community is a distrust of anything Microsoft while yet being pretty chill about AWS. Amazon is so far into this “Embrace Extend Extinguish” pattern that they have shaped the structure of the internet even for Microsoft, who is forced to follow their lead. This has forced Microsoft into becoming a meaningful contributor to Linux. But despite all recent efforts, desktop users only remember the BSODs…

Hating on Windows sure was fun as a meme for a while… But for a long time, between 1997 and 2005, I spent most of my time on Windows and experimenting with Linux as a side OS. When I decided to do the switch, I was motivated by all the bad things I would read about the upcoming Windows Vista but the real reason I switched was how it finally empowered me to control and master technology, which eventually led to construct my career around it. I initially did 2 years of architecture school before getting into computer studies. I’m now an architect of a different kind, but I still want to build things. As with a physical building, the bigger a software project gets, the more robust its foundations need to be. For a while, it was the perfect environment: small project, PyGTK was the hot tech pushed by Canonical at the time, you’d get online classrooms, the Quickly framework to get you started. Fast forward a few years later, almost no one does Python + Gobject code, Gtk 4 is here but still years away from hitting Debian stable so I can start using it, the client has entered all major Linux distros and requires stability. To have this stability then I must have this stability, which taking distance has proven helpful.

I have taken some distance from the project before, sometimes too much. But I don’t want to distance myself from the project anymore, only from a part of the lore that encompasses the Linux community. This is a pretty complicated situation to be in since I have no intention of leaving. Seeing plenty of projects having lots of open issues without even a comment helped be understand that doing constant support for a project never was a part of the open source “contract”. When you’re working on an open source project, “it works on my machine” is probably good enough with that little resources in development. While I’m basically ghosting the incoming Github issues or PRs, I remain open to talk about the future of the project. But if you are here to talk about how League of Legends has problems running on your Void Linux + i3 desktop, then I’ll just say “sucks to be you”.