Is Linux support still needed nowadays, or is Steam OS good enough?

https://lemm.ee/post/59494518

Is Linux support still needed nowadays, or is Steam OS good enough? - lemm.ee

Hey there! I’m a solo dev working on a sci-fi grand strategy game (I didn’t manage to find if self-promo is allowed so I’ll keep the name for myself). I was updating my planning and started to think: since my game will be published on Steam, it will be playable on Linux using Compatibility Mode even if I don’t specifically target Linux itself. I myself play on an Ubuntu and this allows me to play almost every Windows game (old ones are more capricious, but recent ones are ok). So I’m wondering, is there really an advantage to have native Linux support nowadays? As a solo dev, the thing I lack the most is time. The days/weeks/months it would take me to add it and fix all the probable bugs it entails could be used to improve the game itself or add features instead for example. On a more general note, what do you other Linux players expect from a Linux game?

Never saw the Steam OS. Don’t see a reason even to figure out what that is. And surely I won’t install that.

Yes, a native version is always welcome. Wine/proton/dosbox/whatever sometimes work, sometimes not. Mostly just a pile of bugs.

You actually don’t need to install or touch the Steam OS yourself. If you use Steam you can just enable Compatibility Mode in the settings of your non-Linux (or even Linux-compatible) games and it will use Proton to run them.

I’m trying to gauge where is the line between “always welcome” and “needed” though. From my own experience and the ones I’ve heard around Proton works well (sometimes even better than native builds as others have pointed out), and if it’s the general consensus, spending more time on the game itself and not have a linux version is better for my players and for me.

Oh, so that “OS” is just a bundle of compatibility libs. Ok.

I see your point, but check at least Wine compatibility if you’re unwilling to bother with the native version.

They make an OS too, which is for example running on their Steam Deck portable gaming platform, but nobody has to use it specifically :)
Native is always better, but Proton (what’s used by steam OS to run windows games) has worked for me for every title I’ve tried… Sometimes graphics settings can be inconsistent, but I’d say it’s a pretty safe bet if you’re using an established engine it will just work with Proton

That is my experience too, I guess some Linux builds are just poorly optimized in comparison to the Windows ones.

Valve’s engineers did a wonderful job with Proton honestly

Steam Deck and Linux desktop user here.

I wouldn’t prioritize a native Linux binary if I were you. For some of my games that have a native Linux version, I still run the Proton compatibility version instead because it runs better. Proton is insanely well-optimized and adapted to Linux desktops, your own code will have a hard time competing with that.

Just make sure to pick an engine / tech stack that works well with Proton and find one or more testers who run SteamOS or another Linux distribution.

As a personal anecdote, recently I installed a co-op videogame on my Linux Steam machine and I couldn’t get past the main menu, I wasted quite a bit of my own and my friend’s time before realizing it was a bug in the Linux build. After reinstalling the Windows version through Proton everything worked flawlessly.

Please don’t publish a Linux build unless you plan to test and maintain it.

Yeah I had a similar experience with Paradox Games, where the native build delivers very poor performance over the Proton-run version. It seems to be the consensus. If I don’t receive other real counterpoints I’ll follow your advice.
I never noticed that, I put in probably 2k hours in Eu4’s native Linux version, guess I should change over to proton lol
Haha maybe EU4 is good though, it happened to my with Vicky 3.
I see this with things on Itch.io a lot. I think there’s some engine that has an option to export a Linux distribution of the game, so they ship that without testing.
Yup. Usually not as well optimized either, if you do get it to work.

Yeah I agree, it’s honestly impressive how well it works. As soon as I have the possibility I’ll take a Steam Deck and try to make my game compatible with it, I’m sure if I manage to make it work on it that should eliminate 90% of Proton compatibility-related bugs if I don’t make a native build.

I’m still seeking for answers from people for whom it doesn’t work well or who have bad experiences with it, because I’m sure there are cases where it doesn’t work

I had some bad experiences with wine/proton, especially on older hardware there are sometimes wierd bugs that are very hard to reproduce. For example I couldnt play starfield for about a year because most textures were missing. No idea what was causing it. After a year it suddenly worked. Generally if you check protondb for any game you will find that a few people have crazy bugs, even if everyone else says that it runs perfectly. I think I dont have a single game in my library that has a “Platinum” compatibility rating.

I think it boils down to how would you prefer to support linux players: By fixing bugs in your port, or chasing after bugs in wine/proton. The negatives of native ports that other people have raised are because many (larger) developers make the initial linux port, and then forget about it. Civilisation 6 for example has a good linux port. Yay! But they stopped updating it years ago. Many bugs were never fixed, and linux players dont even have access to the newest dlc! Compare it to running Civ 5 in wine. Things mostly work, exept mod support. Most mods just dont work. Who knows why.

I think native ports may have become easier nowadays too, because of the steam runtime. Steam can run linux games in their flatpak-like runtime, so ideally you only have to support that.

If you are planning on open sourcing your game then a linux port would be very appeciated for packaging reasons. Other than that, your preference.

docs/container-runtime.md · main · steamrt / steam-runtime-tools · GitLab

Version-independent Steam Runtime container and diagnostic tools, including steam-runtime-system-info diagnostic tool and pressure-vessel container launcher. Report issues and feature requests to

GitLab
Half of the games with a native build I’ve tried didn’t even launch. With Proton they all work perfectly.

I prefer a working Proton build over a untested broken native build. If you can’t afford the time to test the Linux builds, go ahead and just rely on Proton.

Testing on Steam Deck so it can be verified probably does make sense from a marketing standpoint though. Mostly checking that controls work, graphic settings are not too demanding by default and font scaling works properly.

I think it’s what I’ll do indeed. And for the Steam Deck I intend to make the game fully compatible with it as I’ve read a lot of time how it enabled people with otherwise few opportunities to play to get a bit of “me time”. Being a dad I empathize a lot with that struggle haha
I’ve heard that Steam provides some guidelines to get your games to work well with Proton. I’m not able to find them but maybe they’re behind a developer portal or something.

Yes that seems to be the consensus in the end. Thanks for your answer :)

For the docs I’ve found this for Proton common issues: partner.steamgames.com/doc/steamdeck/proton?l=eng… And this for Steam Deck compatibility: partner.steamgames.com/doc/…/recommendations I’m sure there are other resources, but if someone finds the thread later and needs a starting point, here they are

Steam Deck and Proton (Steamworks Documentation)

Thank you for sharing your findings, those are interesting reads. Good luck with the development. I signed up for theailing list out of curiosity.
You’re welcome, thank you, and welcome aboard :)

Should Vale release a general Steam OS and folk move away from Windows en masse it’s probably going to be worth it. Proton does a great job but a tested and supported Linux build will be better. Some solos do it, but I think it is more based in ideology rather than necessity.

Your time and effort as a solo is going to be limited though, testing and supporting a Linux build is going to be work, and if you want to keep things closed source you are not going to be able to leverage the community in the way open software does.

There might be steps you can take to be more compatible with Proton and/or Steam Deck, which probably would be a good idea, and give you much more effect for your time spend.

I personally am fine with Proton, the native Linux build usually doesn’t work as well as the Windows one because devs don’t usually care because of smaller market share (or don’t have the time as is often the case with indie studios).

What’s the name of the game? I’ll add it to my wishlist if it sounds like something I’d enjoy.

Also, if I may ask, do a GOG release, I do 90% of my gaming there.

Proton it will probably be then :) The game is Uncharted Sectors, I don’t have a Steam page public yet, but you can subscribe to the mailing list if you are interested (uncharted-sectors.com)

I’m not that familiar with GOG, I’ll take a look at it. Does it have a similar Linux compatibility layer? Because if not I do need to make a native build then

Uncharted Sectors

A grand strategy sandbox

Uncharted Sectors

Proton is usable even without Steam, you simply publish the Windows version only and people will figure it out. If you make sure it works with the Steam Compatibility layer (Proton), it’s easy to run anywhere on Linux.

For GOG the easiest would be Heroic Games Launcher which also uses Proton.

Nowadays I view Windows as a gaming layer that has been bolted on the great Borg mothership that is Linux in the form of Wine or Proton in route to the goal of Total World Domination.

A bit like Embrace, Extend, Extinguish but in reverse, if you will. So it’s fine.

Linux native games are great as long as the engine is open source. If it’s closed source, it will eventually stop running on up-to-date distros some time after the developer stops updating it. For closed source games, it would be better to develop for excellent wine/proton compatibility so the game will continue to be playable long after it stops getting updates.
Good point indeed. Thanks :)
Closed-source games should be packaged including their dependencies (e.g. like an AppImage or whatever) rather than relying on OS-provided libraries.
Will you only publish it on steam? It would be great to have games available on other platforms like GoG too.
The initial goal was Steam but it looks like some people prefer GOG so I’ll study that possibility too :)
Nice! Looking forward to the release. I'm sure there's a gamedev community on lemmy where you can talk about the development of the game and announce when it has been released and where!

Glad to count you aboard then :) don’t hesitate to subscribe to the newsletter (uncharted-sectors.com) to be informed. It also registers you to have an access to the closed beta

I’ve found some communities on Lemmy indeed, I’ll share progress when I’ll have interesting things to show

Uncharted Sectors

A grand strategy sandbox

Uncharted Sectors
Id love a native Linux binary, but if you aren’t going to maintain it long term after release so something like a glibc update doesn’t break it then proton compatibility is probably better. What tends to happen with native games is they get released and sit basically unsupported until they just stop working.
Are brains still needed, or is a pocket calculator good enough?
I think the only big benefits that come from having a native Linux port is performance, and compatability (in case running through wine / proton didn’t work.) Other than that I can’t think if anything else.

The days/weeks/months it would take me to add it and fix all the probable bugs it entails could be used to improve the game itself

Making a game multi-platform is improving the game. Massively.

The high level of skill required to write multi-platform games is why most studios don’t bother: Windows developers are a dime a dozen but skilled multi-platform developers are rare. Have you got what it takes? Do you have the cojones to step up your programming game? Or are you happy to wallow in the slop with the rest of the Windows game developers?

Also, remember that Linux isn’t the only POSIX OS. If you do your porting right, you get to support a shed load of other OSes for very little.

I find that native clients are almost always a worse experience than running through Proton. Cursors not hiding or not appearing, inability to adjust certain graphics/display settings, and, rarely, worse performance than through Proton (including not actually managing to init).

That said, Proton has its own irritating quirks. Try turning off mouse acceleration in Skyrim on Linux for instance. Have to use protontricks to find the appid, then you have to nav to it in any of the locations that it could be found (depending on flatpak, native, etc.), and then you have to sift through the prefix to find the bloody INI that has the setting to toggle.

But as an indie dev, you should do whatever makes less work for you so you can do more with your time. If supporting native Linux will increase your workload and detract from work on the game itself, then simply don’t support it. Just make sure that your Windows builds work via Proton.

If you yourself use/are familiar with Linux and willing to actually test and polish your Linux version to the same standard as your Windows version, then a native Linux version is always appreciated.

However these days, it’s probably not necessary and a lazy afterthought Linux version is like a bad console port, and because we DO have the option to run the Windows version, it’s probably worse than no Linux version at all.

So it really depends on your personal feelings towards Linux, and nobody’s going to judge you for not providing a native version you can’t personally test and support. That’s why we have Proton.

Agreed. Targeting handhelds with good controller support and also no DRM (or at the least, Proton friendly) is more important to me as a consumer than a native Linux version.

I use Bazzite, which is literally designed for gaming (pretty much steamOS), and more often than not, the Windows version with proton works better than the native Linux runtime.

It’s not the OS, it’s the game.

Yes. It’s still needed. Mostly because not everyone using Linux is using a controller or other peripheral input device that just works natively (look at non-steam os handhelds and Bazzite for instance). On smaller screened devices, menus and keyboard specific options can be problematic regardless of other compatibility features.
Please publish to GoG as well. I want to support sites that are DRM free. Also I think it’s smart to give native Linux support to show the industry that Linux is important rather than rely on compatibility tools that may or may not work well for any given game or setup.
I didn’t know there was such a demand for GOG. Thanks to this post, your and others’ answers, it’s on my radar now :)

In the past they had the Hitman game of the year edition which had DRM baked in, but they eventually removed it after some pressure, however there is a maintained list on their forum:

www.gog.com/forum/general/…/page1

Most of it is for cosmetic things which you may feel is not a big deal, but if you read a little deeper you’ll see there are more nefarious games on there.

DRM on GOG: list of single-player games with DRM, page 1 - Forum - GOG.com

Download the best games on Windows & Mac. A vast selection of titles, DRM-free, with free goodies, and lots of pure customer love.

GoG isn’t DRM free anymore

And a game on Steam doesn’t have to have DRM if the developer doesn’t integrate the DRM feature from SteamWorks API

DRM or not this is straight from Steam, you don’t own what you “purchase”. This isn’t consumer friendly:

Steam Subscriber Agreement

  • REGISTRATION AS A SUBSCRIBER; APPLICATION OF TERMS TO YOU; YOUR ACCOUNT, ACCEPTANCE OF AGREEMENTS
  • B. Hardware, Subscriptions; Content and Services

    Valve or third-party video games and in-game content, software associated with Hardware and any virtual items you trade, sell or purchase in a Steam Subscription Marketplace are referred to in this Agreement as "Content and Services;"

  • Licenses
  • A. General Content and Services License

    “The Content and Services are licensed, not sold. Your license confers no title or ownership in the Content and Services.”

    I would like to learn more about DRM on GoG if you wouldn’t mind sharing.

    In the past they had the Hitman game of the year edition which had DRM baked in, but they eventually removed it after some pressure, however there is a maintained list on their forum:

    www.gog.com/forum/general/…/page1

    Most of it is for cosmetic things which you may feel is not a big deal, but if you read a little deeper you’ll see there are more nefarious games on there.

    DRM on GOG: list of single-player games with DRM, page 1 - Forum - GOG.com

    Download the best games on Windows & Mac. A vast selection of titles, DRM-free, with free goodies, and lots of pure customer love.

    I appreciate the link and heads up

    Sigh… this is exactly the sort of developer decision people were worried about when Proton first came out, and why some Linux users were opposed to it. Obviously in retrospect the benefits of Proton have been worth it, but those folks wouldn’t be wrong to say “I told you so.”

    My take on it is that if you’re not developing Xbox-first (which would imply using DirectX etc.) you should pick libraries that give you cross-platform compatibility “for free” to begin with. It has to be part of the plan from the beginning (and integrated into your build/test pipeline, etc.); writing the whole game for Windows first and then trying to add Linux support after the fact is a fool’s errand.

    This is a good take… You can tell when newer (usually indie) games were built on OS-agnostic engines; you can’t really tell the difference between the Linux runtime and proton.

    Otherwise, proton is often better.

    Well, I’m using Godot which can target all three big OS, though clicking on the export button and actually supporting a platform is not the same.

    In the end I think I’ll try to make builds for all OSes and have testers for each platform, and estimate the viability of the builds from the amount of bugs they give me back.

    In the end I think I’ll try to make builds for all OSes and have testers for each platform, and estimate the viability of the builds from the amount of bugs they give me back.

    Don’t forget to consider the possibility that getting more bug reports from Linux users doesn’t necessarily mean the Linux version is more buggy, but instead that Linux users may be better at finding bugs or more willing to report them.

    if a bug arises from using proton, it would cause the same issue for users that are forced to use proton.

    just click the button that builds for linux. buuld for as many platforms as you can. if you cant fix all of the bugs due to time, then you’ll become a better programmer for your next game and not make thise same mistakes <3

    Well, it’s not a quick game made in 3 months and then I go on to the next. I fully intend to support it and give my players the best experience I can. So it’s not as simple as “click the export button”, I have to actually commit to support the builds.

    Its about practicality.

    Even big studios cant handle supporting a native linux version and having it run well while supporting windows versions… which usually ends up with people running the windows version via proton over the native version (Looking at you, Cities Skylines, Truck Simulator games, and more)

    So I would say take the easy route and develop for windows with checks to make sure it runs okay in proton, probably a lot less headache and effort than trying to create a seperate native linux codebase.

    Agreed.

    I’m a big Linux guy but you have to make compromises in this universe. Proton is amazing and should be the goal for most developers.

    I only purchase native titles, because native support means support.

    Ideally you should be writing your code to be as portable as possible, in an engine that offers top-notch cross-platform support.