Gaming on Ubuntu Desktop

If you’re playing Steam games, just use Steam to modify your buttons.
If you’re not playing Steam games, use AntiMicro. I’ve used that for playing k&m-only MMOs with my Xbox controller.

1 Like

And there is the next one (more about expected user experience): https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/1767431

Well making ubuntu or a version of ubuntu have immutable root filesystem or at least give concrete desktop support for immutable filesystems(so it can be implemented by flavours) the best example of that for desktop gotta be fedora silverblue. This will help in making OS dumbproof and secure. Plus would make a easier story to fastwr upgrading of kernels drivers and mesa

Thank you very much!

Please don’t forget the gamepad problem is latency and inputlag related!

Please also consider offering alternative kernels that focus on speed (low latency and with high responsiveness) that will favor game’s inputlag.

Thank you!

Hi, as i recently started to using Arch base after five or six years of Ubuntu base usage; i will just be listing what Ubuntu base suffers that usually makes gaming somewhat harder ( in a way that needs tinkering ) which some of the listed issues are also valid for Arch base too but most of them are Ubuntu specific:

  • Multilib is a nightmare on Ubuntu. Sometimes there is a need arises that tempts user to try a patch for Wine that is not upstream but needs feedback etc. On Arch there is no problem with multilib, on Ubuntu building Wine is a painful effort and for some users basically impossible.

  • Ubuntu base has outdated drivers. I appreciate the idea behind it but most of the times having outdated drivers doesn’t mean they have less bugs. Instead of less bugs, you only have old and known bugs which are fixed in upstream. I didn’t see in any circumtances Ubuntu/Debian maintainers fixing an issue with Mesa version they shipped either so that concept is just faulty.

PS: Maybe it is necessary for Nvidia prop driver to be slow on updates ( 495 driver is a mess as of right now) but most certainly not needed for Mesa.

  • Old kernels. If you have a relatively new hardware starting with Ubuntu base is just pain for newcomers. They need to obtain newer kernels via various methods and linux-firmware too.

  • VLK libs are not included by default. For both NV and Mesa. A huge chunk of Linux gaming relies to Proton/Wine these days. Which plausible experience with them is granted with usage of DXVK/vkd3d-proton, Vulkan based translation layers that are responsible for D3D 9,10,11 and 12.

  • Keeping third party/community based gaming sources up to date by default. For example, Lutris. That is usually a great source for people who doesn’t want to touch Wine manually but rather prefers scripts in there to do the job for them, override necessary components , which that they have very little chance to observe what that specific app needs; because it needs a somewhat constant following of Wine issues and needs an understanding of what are the downfalls in general.

Just provide Lutris stable releases in time, rather than forcing people to use a PPA.

  • Not sure if that is changed recently but when i used some non LTS ubuntu bases; their ffmpeg was not compiled with NVENC support while LTS base ffmpeg was. If that is a choice rather than a mistake, it is a bad one.
3 Likes

Well… To be clear, we have to understand exactly which is the goal. If the goal is to make the standard ubuntu more game-friendly, there are few things that can be done, if the goal is to rise a game-oriented flavor, than many interesting things can be done.

  1. let the user have a tool to install a steamos-like session (I replaced steamos installing steamcompmgr and the modeswitch inhibitor in the past, I got a cool console experience ). Nowadays, this should be done with something like gamescope at boot, avoiding to launch the DE and having a console-Like session.

  2. a rolling release is a better solution. The kernel get frequent game patches, drivers evolve quickly, pipewire and wayland evolve quickly. Don’t stick with a 6 month release plan. It’s not enough stable and not enough quick.

  3. one of the most annoying problems of ubuntu is that gnome shell tries many times to get the focus with its boring notifications. I switched from ubuntu to kubuntu and notifications went out. A point in favor of kde.

  4. about the DE, kde is rising and surpassing gnome as features, speed and evolution. Valve too is actually funding kde.

  5. latency is a thing. I have a lot of latency even with cabled pads (steam controller too). Probably some efforts have to be done in compiling.

  6. the gamer flavor should have dedicated repos.

@sergio-tarsiero let’s not get too carried away! It’s definitely interesting to consider what a game-oriented flavour might be but for now I’m thinking about what we can do to be more game friendly with current Ubuntu. I think there are probably three areas that are particularly useful in the short, medium and long term:

  • Short term: guides, tips, workarounds to getting started gaming on Ubuntu currently - what do new users need to do that they probably don’t know about?
  • Shortish-medium term: fixes and updates to improve the experience, remove some of the above friction
  • Longer term: new features, apps, game-oriented options in settings/installs to make a really compelling experience

Let’s build a backlog that we can gradually work through over time, starting with the lowest hanging fruit to help us prioritise gaming alongside our other engineering goals. :slight_smile:

3 Likes

Controllers like the Dualshock 4 can cause issues with sound.

Plugging in a Dualshock 4 in Ubuntu 21.10 causes the audio output and input device to switch to the Dualshock 4.

I don’t see any solution in the default sound settings other than manually switching the output and input every time I plug in the controller.

Using Pavucontrol you can set the audio profile of the Dualshock 4 to “Off” to fix this issue.

The main issues with Ubuntu Desktop:

  1. Gnome Desktop Environment requires many unofficial Gnome extensions + Gnome Tweaks to be customized. That is something painful to do even for an average Linux user. Also, Gnome extensions breaks with every point update, and you have to wait for a new update for these extensions to work again.

  2. Mesa drivers are outdated, and you have to add a PPA to update the drivers.

  3. Linux-firmware, and Linux kernels are outdated as well, so if you own an AMD GPU, the gaming experience may be downgraded.

  4. WINE, and Winetricks are outdated, and both are required for gaming outside of Steam.

  5. FAudio, and VKD3D dependencies required by WINE are either outdated or not available at all, and you have to use PPAs, or you will not be able to install wine.

  6. MangoHud, vkBasalt, and GOverlay are only available on Ubuntu by an outdated PPA.

  7. 32bit packages are disabled by default, so you can not play any 32bit Windows games or Native 32bit Linux games out of the box.

  8. 32bit mesa-vulkan-drivers are not installed by default, so you can not run any 32bit Windows game on Ubuntu.

  9. Vulkan-loader is outdated.

  10. If you use a laptop, the iGPU is used by default, especially with OpenGL games. Also, the screen will be turned off while gaming, because wine does not inhibit power management while running full-screen applications, or receiving input from a controller.

  11. Achieve Manager is the default application to open .exe extension on Ubuntu Desktop.

  12. If you want to use any environment variable or pass a Windows command-line argument to a Windows executable, you need to use the terminal.

  13. If you want to use any environment variable with a native Linux game, you need to use the terminal.

  14. Most native Linux games use .sh extension, which is opened by the text editor by default on Ubuntu Desktop.

  15. Pipewire offers better compatibility for Bluetooth headsets, and low audio latency in general, but it is not available on Ubuntu Desktop yet.

  16. RetroArch, Heroic Games Launcher, and Lutris are only available to be installed on Ubuntu Desktop by a PPA, or by a Debian package.

  17. Ubuntu Desktop has no settings for the controllers.

I think what will help with most of these issues is having one official PPA for all packages that needs to be updated for gaming, and to be available to enable from Software Sources.

3 Likes

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