Gaming on Ubuntu Desktop

Outdated packages important for gaming in Ubuntu 21.10

  • Lutris
  • Kernel
  • Mesa
  • Gnome

Packages that should be installed for gaming

  • mesa-utils
  • vulkan-tools
  • libegl1:i386

Missing packages for gaming

Discord updates have historically been an issue
https://github.com/snapcrafters/discord/issues/108
Last time the Discord snap broke - the maintainer decided to leave it completely broken for days and only update the beta channel.
I understand the want to test first, but the main package wouldn’t even start for days.

Settings - missing options

  • Mouse acceleration
  • Ubuntu Dock click-action minimize
1 Like

These should be easy:

  1. Offer the last Mesa. This won’t matter for people that use Ubuntu on servers of course as they will not touch Mesa/Xorg/Wayland, but for those on the desktop, it is really beneficial. Avoids a PPA.

  2. Offer the latest Wine/Wine Staging. Like Mesa, this is desktop gamer focused and would be nice to have the latest without a PPA.

  3. Offer the latest Lutris. Pop!_OS kinda does this already in their Pop_Shop, but it would be nice to have this once again… without a PPA.

  4. Should we have the latest kernel as an option to install as a package? Like linux-latest or something. I think System76 does this in Pop!_OS with their linux-system76 package.

3 Likes

This is somewhat related to gaming.

Whenever a user buys the latest and greatest hardware (usually GPUs), there’s some level of skepticism on whether or not the hardware works on Ubuntu. Here’s an example from Wendell from Level1Techs.

If memory serves, Radeon 6600XT was already supported on Ubuntu 21.04 when this video came out, but the ISO in Ubuntu’s website at the time is outdated (I remember asking about that here).

Another thought is that there has to be a solution that would automatically bring user to a software-rendered installer if the graphics driver isn’t detected. They won’t have to know that it’s software-rendered, and it’s definitely better than scratching their heads and wondering what went wrong.

Wish there’s an option in Ubuntu to have a rolling kernel. I get why it wouldn’t be an ideal to have it by default (IIRC, NVIDIA 470 didn’t play well with latest kernels initially and screwed Arch users), but if the latest kernels will help support AMD drivers, users should at least have the option. Ubuntu doesn’t have to make everything noob-proof, but it should try to smooth out the process, like installing the latest kernel if the current kernel doesn’t support a specific AMD/Intel driver.

It’d be nice if Ubuntu & the Snap team would work with companies like Discord to enable audio capture for screen sharing, and smooth out the update process so that if there’s a Discord update, it’d update it before launching it.

Thanks for opening up a forum on this topic and to GamingOnLinux for sharing it. Game development on Linux is something I’ve been attempting on Ubuntu 21.10 recently, having previously developed some jam-sized games using GameMaker Studio 2 and Unity on macOS and Windows respectively. Given Ubuntu has been my preferred Linux flavour since around 5.04, it’s exciting to see more investment in the concerns of gamers and gamedevs.

I’ve been toying with Steam and the most recent stable version of Proton, adding entries to ProtonDB and such to help out. I must say, the progress that has been made in a few short years is staggering.

That said, there are still some splinters in my daily experience. I hope these points provide some insight.

Installation of NVIDIA’s proprietary driver isn’t as simple as a couple of clicks.
Once installed via Additional Drivers, installation of NVIDIA’s proprietary graphics driver is poorly configured. To solve screen tearing, one needs to open up NVIDIA X Server settings and check the “Force Compilation Pipeline” boxes on all configured displays. This isn’t obvious to the user at all. In addition, their tool consistently fails to write the xorg.conf file due to a permissions error, forcing one to manually copy the file content, create the xorg.conf, paste it across and so on.

I understand it’s proprietary, it taints the kernel and whatnot. I suspect that because it’s proprietary, nobody in the community is able to fix these issues? Perhaps it requires a conversation and collab with NVIDIA?

Installation of this driver also breaks the pretty Plymouth startup. As such, having this essential driver installed feels like a hack.

Finally, when changing desktop arrangement settings, it’s not obvious whether I should be making those changes in GNOME’s Settings tool or NVIDIAs. I seem to have cobbled together a configuration that works having disabled my laptop’s onboard Intel GPU too, but it doesn’t feel right.

Which Hardware For An Optimal Gamedev Experience?
It would be very helpful to know, from the distribution themselves, what makes for a good gaming and/or game development hardware setup. I often hear that while NVIDIA “works”, AMD is actually the superior option since the drivers are said to be open source and included with the kernel. But then, I’ve also heard that you won’t get full Blender support without installing their proprietary driver. Does the proprietary AMD driver cause similar issues as NVIDIA? What of Xorg vs Wayland? The perils of fractional scaling! It’s all very confusing and none of this inspires confidence in the platform.

I wonder if perhaps there ought to be an effort to catalogue modern gaming desktop builds that are tested and scored by the community? Something like Logical Increments, so that I can trust that the hardware I’m buying will offer a first-class Ubuntu experience. Ubuntu/Canonical might also get some kickback for the affiliate links.

I’m familiar with Ubuntu’s Hardware Certification Programme, but that feels like something for large organisations deploying at scale for business, server and cloud purposes opposed to individual gamers and game developers. I think this filtered search says it all. I’d like to see links to purchasable Ubuntu gaming laptops and/or desktop hardware configurations. Take a look at Microsoft’s homepage for example. It’s very easy to buy a laptop with graphical grunt that you know will just work. Within a couple of clicks you’re on Dell’s purchase page.

On Package Management
One thing that grinds my gears is that I seem to be acquiring software from many more different sources these days. This is true of macOS and Windows too. The Linux space however historically set the expectation that the package manager carried everything one needed

I’m now thoroughly reliant on each of Apt (+ppas), Flathub, Snapcraft, downloaded .debs, binary tarballs and loose shell scripts.

I’m not sure whether this problem has a solution. But one thing I am certain of is that the package management situation on Linux has gotten more complicated. I think having Snapcraft include more of what’s available in Flathub, such as the GNOME Circle apps, would be a good start so that I don’t have to manage multiple stores.

Listing the proprietary engines in Ubuntu Software
You may be pleased to learn that Unity is now supported on Linux, and more recently YoyoGames’ GameMaker Studio 2 (in beta).

It would be nice to see these engines listed in Ubuntu Software in addition to the many open source engines. Regardless of what folks think about the nature of proprietary software, having it listed in the store communicates that Ubuntu is a viable platform for that given tool.

Flathub carries Unity Hub, as an example.

I’ve noticed that the indie-friendly Itch.io launcher is missing from Ubuntu Software too and would be a similarly nice addition.

…

Thanks for listening :slight_smile:

1 Like

Thank you for starting this discussion group. I would to take one step back and ask a simply question.
When you say ‘Linux’ what do you mean?
Do you mean a Linux distro like Ubuntu, Mint etc running bare metal on Intel hardware running a 64bit OS?
Or do you mean Ubuntu running on ARM architecture running 32bit OS?
Or do you mean running Ubuntu OS etc on a VMware or Virtualbox VM?
Must you have a separate GPU on your hardware to run Linux games.

Basically what do you need to run Games on Linux?
32bit or 64bit OS?
Intel/AMD or ARM architecture?
What GPU?
Ubuntu on VMware or Virtualbox?

There is no point setting up Steam if you don’t have the right hardware.

Perhaps a guide on hardware would help Linux gaming beginners.

Regards

I find Ubuntu is much better for gaming than other distros because the core system is very stable and it stays stable after upgrading just the gaming libraries, so big thanks to the maintainers.

People already mentioned the PPAs and Gnome but I also want to add this tip: the ananicy / automatic NICE daemon is indispensable for gaming and regular work. Makes the desktop visibly faster and prioritizes the known game executables.

For the non-Steam perspective, I recommend taking a look at the itch launcher and the issues on their github - they used to have a deb-package but now switched to their own installer. The app expects the system to already have wine and 32libs.

I have been pretty happy with gaming on Ubuntu 20.04LTs so far, steam proton is awesome. I dont really play the newest releases so it has been working well for me.
Online games are an issue due to anti-cheat and hopefully that improves.

Some things I would like to see improved:

  1. ALT-TAB for full screen games (as tridoxx mentioned above)
    I’m really used to that minimizing the games so I was like how the heck do I minimize it and open browser if i want to look something up while in game?
    The answer is already there, CTRL+ALT+down arrow or pg down to switch workspace.
    I just did not know that and needed to look it up, so maybe it can be communicated better?

  2. More mouse customization options. I can adjust sensitivity but I cant change the mouse scroll wheel speed. I have been using imwheel package to get around it and it works fine so far but would be nice to just change that easily in settings.

  3. Easy way to create shortcuts on desktop like right click send to desktop on windows. Steam and WINE add shortcuts automatically but its a chore to do manually for old games or indie games outside of steam that are just zip files with an exe. I know I can manage those games using Lutris and launch it from one place but still would be nice to have.

  4. Nvidia drivers. During Ubuntu install there is a checkbox to install 3rd party drivers if i remember right. I assumed that would install the nvidia driver but it did not. I needed to manually go into the “Additional Drivers” and select the driver. It was easy for me but I used ubuntu for a while now.
    I did not however know about the “Full Compilation Pipeline” setting that stevepdp mentioned above until recently.

I also use a bunch of gnome extensions and tweaks and as ah-86 mentioned, those can break. More customization option would always be nice. And more options for sound as well, if i remember right, getting surround sound to work using SPDIF was a challenge that I gave up on.

And lastly, not really Ubuntu specific but its what kept me from switching to linux full time. There is no good android emulation apps for games on linux. All i found were old and not really working well for new games. I know I can just use a windows vm with gpu pass-through to use BlueStacks but it’s a pain to set up. And all the good windows android emus fail to install using WINE and Proton which has been frustrating. Anbox Cloud sounds interesting but its more enterprise focused and not single user.

Thanks for reading.

1 Like

The biggest issue on Ubuntu (and Linux in general) is getting nVidia to work properly on laptops in all scenarios, i.e:

  • nVidia in on demand mode with a laptop screen connected to igpu
  • nVidia in on demand with dual screens, laptop screen connected to igpu and external connected through hdmi to nVidia (currently in this mode the desktop becomes very sluggish)
  • nVidia in on demand mode with dual screens all connected to igpu (internal screen directly and external screen through thunderbolt). Currently in this setup the screen mode keeps getting switched randomly.
  • The same setups above but with performance mode.
  • hot plug and unplug of external monitors.
  • standby works fine and is not affected by any of the scenarios mentioned above.

If all the above setups are addressed gaming on Ubuntu will be in a much better shape. In my opinion the random issues currently plaguing much of the above scenarios is the biggest obstacle for wider spread of Linux gaming.

1 Like

Partial reprise of my feedback on the desktop experience :slight_smile:

There are too many different ways to launch a game, every company has its own launcher, launching another launcher which maybe even launches a launcher again.
Most of these games need a compatibility layer like wine or proton to work, which complicates the process even further.
To get better fps and graphics you then add dxvk or vkd3d on top of it and still have to hope that the triple a games anti cheat and drm won’t break.

That is something clearly needing a better user experience.

  • A common opensource launcher with store that doesn’t require the official primary launchers as backend would help. Steam doesn’t play nice with other sources and is a closed source paket of enormous size.
  • Having directx support in mesa alongside vulkan and opengl to skip installing translation layers, would help. Microsoft could help here.
  • Nvidia binaries are annoying. Out of the box ubuntu should offer the best possible graphics performance.

Since hardware development and the development of compatibility layers is progressing rapidly, we might also think about some kind of “rolling release” packages.
GPU drivers, Mesa, Wine, Wine-staging and Proton would be suitable to get bugs fixed fast and better compatibility asap.
Might be out of scope for a distro with semi annual updates

Since games are as noosy as other applications, i think an optional firewall could come in handy.
If an app want to connect to the net or a new host prompt the more expierenced user and give us the options to only block a specific host&port, the app completely or give it free access.
Maintaining a local statistic about which hosts, apps,ports get the most incoming&outgoing traffic also can serve as a helper to fix analytics locally and missing TLS upstream.

Does the average gamer stick to the LTS releases or the semi annual releases?
Even with LTS the hardware , or more specific gpu release cycle should be well covered.
So a rapid kernel upgrade in my eyes is unneccessary

Hey folks, it’s great to see all these comments and the really positive level of discussion that’s going on. We’re getting to the point where I can’t really reply to all of them but I’m going to start consolidating each point of feedback into a spreadsheet to review with the team, keeping note of how many times different topics were mentioned.

I think the recent comments about hardware are particularly interesting, a ‘protondb for gaming hardware’ would be a really great community initiative. It’s a particular challenge for gaming when so many people roll their own PC rather than buying pre-configured. @stevepdp, that filtered search makes a fair point but is a little harsh as there are a number of other certified machines with nvidia gpu’s that don’t show up in the model name. We are looking at making that interface more easy to search/navigate separately. :slight_smile:

One frequent comment that surprises me is the request for a common game launcher. I would like to hear more about why that’s necessary. This situation of multiple launchers seems to be the same for Windows (and solutions like GoG Galaxy are not widely used), so is it just the additional hassle of Proton/Wine configuration on a per launcher basis that makes it worse for us?

5 Likes

@local-optimum We started a community project in Ubuntu Budgie discourse, where we are working on a special section of our Budgie-Welcome snap, completely dedicated to gaming. If you want to have a look at it, please use the edge version of the snap ubuntu-budgie-welcome on our flavour.

Quick preview of how it looks.

Now, I suspect that the welcome app won’t be very useful for Ubuntu Proper, but we are doing a lot of research and I am collecting all sorts of info, sources for apps, PPAs, snaps etc. So I gladly share it here. I hope this can be useful. Also everyone here is welcome to comment on our post and recommend useful tools we can add.

https://discourse.ubuntubudgie.org/t/community-project-ubuntu-budgie-gaming/5225

2 Likes

I have the feeling that the interaction between different executables in a launcher chain in combination with proton&wine has its own set of problems. Wiki pages tell people to rename executables and use options like “nolauncher” to get past it.
Maybe it is interprocess communication that causes additional trouble in the emulation layer.
Sure it is a hassle on Windows too, but if we can make the experience better in Ubuntu than it is on windows, that brings users over more often, don’t you think?

Galaxy is not a solution. It is just a layer on top of the problem that can’t solve it. It is nice to see your entire collection in one place but that is about it.
Also you would need an OpenSource Version to be a proper fit for Ubuntu. This means reversing stuff and putting man hours into coding something. Heroic&Legendary for the epic games store or mini galaxy for gog go in that direction.

Hardware DB, mhm isn’t that more external stuff like gamepads or keyboards/mice with additional keys and macro functions? GPUs with official vendor drivers are working quite well.

Need to make an environment mode switcher, as power manager.
Game mode (install apps, settings):

System level checker and modification:

  • gamemoderun (thanks to Feral Interactive)
  • special kernel (low input lag?)
  • power manager mode

Input/output device checker:

  • video driver
  • checking hardware acceleration
  • Vulkan, OpenGL support
  • benchmark pack
  • joystick, wheel (jstest-gtk)
  • monitor (brightness, contrast, gamma)
  • VR test
  • sound input/output test, echo/noise suppression

Game tools:

  • lutris (need easy mode)
  • stores: Steam, Humble, etc
  • mangohud
  • goverlay
  • OBS studio (need easy mode)
  • gnome casual games pack (Mahjongg, Mines, Sudoku, Aisleriot)

By analogy, make other modes with your own special settings and a set of programs + the ability to create your own modes:

  • office mode
  • web mode
  • audio mode
  • video mode
  • photo mode
  • custom mode
  • etc.

what is a “mode” ?
I can always create a desktop full of apps of one kind only.
If an application needs higher clockspeeds for cpu and gpu, the driver will take care of it and clock lower if the application is less demanding.
Are we talking about overclocking and unvervolting which also can be done in the bios/uefi settings?

A software OC tool for Ubuntu would be great for those who can’t overclock their unlocked CPUs (most Ryzen and Intel K-series CPUs) and GPUs from their motherboard, similar to MSI Afterburner and Intel XTU (proper kernel support for Alder Lake would be lovely, but guess that isn’t related to Ubuntu).

Most of the purely technical problems I’ve had with gaming on Linux seem to revolve around NVIDIA graphics card drivers, where the open source driver isn’t nearly as good as the proprietary driver performance-wise, but the proprietary driver can also be buggy and there’s no way to know what the bug is since, of course, it’s proprietary. Anything Canonical can do to either work with NVIDIA to help patch their proprietary drivers for Linux more quickly and efficiently, and/or to improve the performance of the proprietary NVIDIA drivers, would be great.

As for Steam, that’s all fine, but what about the games that aren’t on Steam and run in other game stores which don’t have a Linux client, like the EA Games store or Battle.net (Activision-Blizzard)? We have Lutris (free, functionally hit or miss), Crossover (paid, functionally works well on supported applications but many are unsupported), etc., and there’s no easy, integrated management platform to run these things. For example, Crossover can install the Battle.net client and run some of the games, but its database isn’t always current so it’s hard to know what is going to actually work before buying and trying it. So my second point would be anything Canonical could do to help streamline these different compatibility tools and get them working together, at least from the user’s perspective. If the idea is to help recreate a Windows-like experience on Linux, there needs to be ease of use and not 50 different tools people have to download to get their games to work. A unified, Ubuntu-based gaming client that can manage Lutris, Crossover, Steam, other game stores, etc. in a single and transparent client UI would be amazing.

Last thing, and this is related to #2, is the security element. If it’s a clean download from the source material, like via Steam or another major game store, there is minimal security risk. But in Lutris, for example, there seems to be a lot of custom script-writing and download choices. Who is auditing these for security? Most of us who use Linux do so in part for the security advantages, but it defeats the point to then download a bunch of unaudited or low-audited material. Even if it’s open source, that doesn’t mean enough people are actually really examining the code to make sure it’s safe. So anything in terms of helping to upscale the security of these non-native ports / compatibility layers which exist outside of the established game stores would be a big win.

1 Like

Because these games are non-native applications, the more different launchers you need to use the more layers of complexity and opportunity for things to break. This is particularly challenging when you’re combining things that are corporate-backed (e.g., Steam, Crossover) with things that are community-backed (e.g., Lutris) and they’re pulling from some common dependencies and others that may conflict. Creates a situation where the user can fix one problem in one platform and break something else in another. This is not the same as Windows because there, you’re having different launchers but they’re all running natively on their common OS.

That, and not necessarily knowing what is going to work before you purchase a game.

1 Like

Also, for gaming-centric hardware and driver compatibility it may be helpful to look at the work that System76 does and start incorporating those patches into upstream.

This is an issue when installing wine on Ubuntu 20.04

https://www.reddit.com/r/linux4noobs/comments/r3a0s4/problem_while_installing_wine/

https://www.reddit.com/r/linuxquestions/comments/qxs5qw/unmet_dependencies_error_while_installing_wine/

I have seen this issue many times.

Also, this issue exists on Linux in general:

https://www.reddit.com/r/linux4noobs/comments/qy3cog/how_do_i_use_dri_prime_on_exe_files/