DEV Community

Giovanni Cortés
Giovanni Cortés

Posted on • Originally published at giovanni.codes on

Gaming on Ubuntu and Derivatives

One of the myths that we have about Linux is that it is not good for gaming, and this has been true for a long time, since we could only enjoy native games and not so high budget, although there were exceptions, we must admit that if you wanted to play , you had to have a partition with Windows.

Lately this has changed, because, although there are not many native AAA games for Linux yet, there are ways that we can play modern games and almost as easily as Windows.

In this post I am going to show you what are the options that we have to play using Ubuntu and its Ubuntu based distros (Linux Mint, Pop! _OS, Kubuntu, etc), so there will no longer be a pretext because your options to play in Linux have increased.

Steam

One of the easiest ways to play games in Linux is Steam. The Steam client is native to Linux and you can play a lot of games that are made natively for Linux, but there is also the option to use Proton.

Proton is developed by Valve and works through Steam Play so that games developed for Windows are translated into a language that is compatible with Linux, uses tools such as DirectX Vulkan so we will have almost the same performance as in Windows.

But not all games are compatible with Steam, to know which games run well and which ones we will have a bit of problems we can use Proton DB. In Proton DB we have a database that will help us know which games are compatible, we have ratings to know this.

  • Native: (They are native games for Linux)
  • Platinum : (They run perfectly without making modifications)
  • Gold : (Runs perfectly after making a few minor modifications)
  • Silver : (Runs the game, with a few minor issues, but generally plays well)
  • Bronze : (Runs but with problems)
  • Borked : (Game won’t even start or is unplayable)

If you go to the page, you will see that many games are Gold or above, and that the little unplayable are generally multiplayer (like Destiny), but before installing anything I recommend that you visit the page to see if your game runs well.

Set up and install Steam

Using Steam in Ubuntu is very easy, you just have to download the Steam client from its website and install it. If you use Pop! _OS it is much easier, since it comes in the repositories, in fact Pop!_OS has very good support for games.

sudo apt install steam
Enter fullscreen mode Exit fullscreen mode

Once we have Steam installed we need to start the application, now we have to activate Steam Play and Proton

Once you activate it, you can start playing games like The Witcher 3, Skyrim and other great titles.

Lutris

Lutris is an Open Source library in which users upload scripts for emulators and WINE to run games that were made for Windows, personally I use it if there is a game that is not on Steam like Magic The Gathering Arena and World of Warcraft.

The easiest way to install lutris is thought the repositories

sudo apt install lutris
Enter fullscreen mode Exit fullscreen mode

If there is not Lutris in your repos, you need to add the apt-repository

sudo dpkg --add-architecture i386
sudo add-apt-repository ppa:lutris-team/lutris
sudo apt update
sudo apt install lutris
Enter fullscreen mode Exit fullscreen mode

Once done, you can start searching the Lutris app for games and installing them.

Using Lutris is not as simple as Steam, but there shouldn’t be so many complications, I play Magic and WoW without problems, but sometimes there are scripts that don’t work, it is a matter of reading the instructions that come at the beginning and installing.

Here are some screenshots that I am actually playing in WoW

Graphics Cards and Hardware

Obviously Linux does not make miracles, to play recent games you will have to have a graphic card that is capable to play games in high resolution, for example, to play high in 1080p you can use an NVIDIA GeForce GTX 1660Ti or 1660 super, if you have a better card you can take advantage of it.

Also the AMD cards are good and have good Linux support.

If you want to use your NVIDIA card to its full potential, you have to activate the proprietary drivers.

If you use Pop! _OS, you have to download the ISO that has the NVIDIA drivers integrated.

Regarding the CPU, it is good to have an iCore 5 from 8th generation onwards or a Ryzen 5 from 2nd generation, for RAM with 16 GB it is enough for all games.

MangoHud

One of the things I like to do is monitoring the temperature of the GPU and CPU while I am playing, as well as the percentage of use, I use MangoHud to have those statistics

To install MangoHud do the following, we must install git to make it easier

sudo apt install git
Enter fullscreen mode Exit fullscreen mode

Inside the MangoHud folder we run the following (let it finish executing one command before running the next one)

./build.sh build
./build.sh package
./build.sh install
Enter fullscreen mode Exit fullscreen mode

Once it is installed, we must create a configuration file to show what we want to , we can copy the one that comes by default

cp /usr/share/doc/mangohud/MangoHud.conf.example ~/.config/MangoHud/MangoHud.conf
Enter fullscreen mode Exit fullscreen mode

Open the file

gedit ~/.config/MangoHud/MangoHud.conf
Enter fullscreen mode Exit fullscreen mode

And copy paste this code

### MangoHud configuration file
### Uncomment any options you wish to enable. Default options are left uncommented
### Use some_parameter=0 to disable a parameter (only works with on/off parameters)
### Everything below can be used / overridden with the environment variable MANGOHUD_CONFIG instead

################ PERFORMANCE #################

### Limit the application FPS. Comma-separated list of one or more FPS values (e.g. 0,30,60). 0 means unlimited (unless VSynced).
# fps_limit=

### VSync [0-3] 0 = adaptive; 1 = off; 2 = mailbox; 3 = on
# vsync=

### OpenGL VSync [0-N] 0 = off; >=1 = wait for N v-blanks, N > 1 acts as a FPS limiter (FPS = display refresh rate / N)
# gl_vsync=

################### VISUAL ###################

### Legacy layout
# legacy_layout = false

### Display the current CPU information
cpu_stats
cpu_temp
# cpu_power
# cpu_text = "CPU"
# cpu_mhz
# cpu_load_change
# cpu_load_value
# cpu_load_color

### Display the current GPU information
gpu_stats
gpu_temp
# gpu_core_clock
# gpu_mem_clock
# gpu_name
# gpu_power
# gpu_text = "GPU"
# vulkan_driver
# gpu_load_change
# gpu_load_value
# gpu_load_color

### Display FPS and frametime
fps
# fps_sampling_period=
frametime

### Display loaded MangoHud architecture
# arch

### Display the frametime line graph
frame_timing
#histogram

### Display the current system time
# time

### Time formatting examples
# time_format = %H:%M
# time_format = [%T %F]
# time_format = %X # locally formatted time, because of limited glyph range, missing characters may show as '?' (e.g. Japanese)

### Change the hud font size (default is 24)
font_size=24
# font_scale=1.0
# font_size_text=24
# font_scale_media_player = 0.55
# no_small_font

### Change default font (set location to .TTF/.OTF file )
## Set font for the whole hud
# font_file=

## Set font only for text like media player metadata
# font_file_text=

## Set font glyph ranges. Defaults to latin-only. Don't forget to set font_file/text_font_file to font that supports these.
## Probably don't enable all at once because of memory usage and hardware limits concerns.
## If you experience crashes or text is just squares, reduce glyph range or reduce font size.
# font_glyph_ranges=korean, chinese, chinese_simplified, japanese, cyrillic, thai, vietnamese, latin_ext_a, latin_ext_b

### Change the hud position (default is top-left)
position=top-left

### Display the current CPU load & frequency for each core
# core_load

### IO read and write for the app (not system)
# io_read
# io_write
# io_stats

### Display system RAM / VRAM usage
ram
vram

### Display MangoHud, engine or Wine version
# version
# engine_version
# wine

### Disable / hide the hud by default
# no_display

### Hud position offset
# offset_x=
# offset_y=

### Hud dimensions
# width=
# height=
# table_columns=
# cellpadding_y=

### Hud transparency / alpha
background_alpha=0.5
# alpha=

### Color customization
# text_color=FFFFFF
# gpu_color=2E9762
# cpu_color=2E97CB
# vram_color=AD64C1
# ram_color=C26693
# engine_color=EB5B5B
# io_color=A491D3
# frametime_color=00FF00
# background_color=020202
# media_player_color=FFFFFF
# wine_color=732010

### Show media player metadata
# media_player
# media_player_name = spotify
# media_player_order = title,artist,album

### Specify gpu with pci bus id for amdgpu and NVML stats.
### Set to 'domain:bus:slot.function'
# pci_dev = 0:0a:0.0

### Blacklist
# blacklist =

################## INTERACTION #################

### Change toggle keybinds for the hud & logging
toggle_hud=F11
# toggle_fps_limit=Shift_L+F1
# toggle_logging=Shift_L+F2
# reload_cfg=Shift_L+F4
# upload_log=Shift_L+F3

################## LOG #################
### Automatically start the log after X seconds
# autostart_log = 1
### Set amount of time in seconds that the logging will run for
# log_duration
### Set location of the output files (required for logging)
# output_folder = /home/<USERNAME>/mangologs
### Permit uploading logs directly to FlightlessMango.com
# permit_upload=1
### Define a '+'-separated list of percentiles shown in the benchmark results.
### Use "AVG" to get a mean average. Default percentiles are 97+AVG+1+0.1
# benchmark_percentiles=
Enter fullscreen mode Exit fullscreen mode

There are several options that you can uncomment (remove the # from the command) but with this file that we have we can already see the amount of RAM and CPU that is used as well as the percentage and you can activate and deactivate with F11.

Now, to show it in Steam games, you must type the following in the launch parameters of each game.

mangohud %command%
Enter fullscreen mode Exit fullscreen mode

I will change the picture for the english version

For Lutris we must go to Options and have the advanced option enabled, and in system options in the Command Prefix part, write mangohud

And now you can have MangoHud activated.

With this guide I hope you can start playing on Linux and enjoy gaming.

The post Gaming on Ubuntu and Derivatives appeared first on Giovanni Codes.

Top comments (0)