Gaming en Ubuntu y Derivados

Uno de los mitos que se tienen de Linux es que no sirve para jugar, y esto ha sido verdad durante mucho tiempo, ya que solo podíamos disfrutar juegos nativos y de no tan alto presupuesto, aunque había excepciones, hay que admitir que si querías jugar, había que tener una partición con Windows.

Últimamente esto ha cambiado, porque, aunque aún no hay muchos juegos AAA nativos para Linux, si hay formas de que podamos jugar juegos modernos y casi con la misma facilidad de Windows.

En este post voy a indicar cuáles son las opciones que tenemos para jugar usando Ubuntu y sus derivados (Linux Mint, Pop!_OS, Kubuntu, etc), así que ya no habrá pretexto porque tus opciones de jugar en Linux se han incrementado.

Steam

Una de las formas más fáciles es usar Steam. El cliente de Steam es nativo para Linux y puedes jugar muchos juegos que están hechos nativamente para Linux, pero también está la opción de usar Proton.

Proton está desarrollado por Valve y trabaja a través de Steam Play para que los juegos desarrollados para Windows sean traducidos a un lenguaje que sea compatible con Linux, usa herramientas como DirectX Vulkan por lo que tendremos casi el mismo rendimiento que en Windows, (hay quienes dicen que en unos juegos mejor).

Pero hay que aclarar que no todos los juegos son compatibles con Steam, para saber qué juegos corren bien y cuáles tendremos un poco de problemas nos podemos guiar de Proton DB. En Proton DB tenemos una base de datos que nos servirá para saber qué juegos son compatibles, tenemos ratings para saber esto.

  • Native (Son juegos nativos para Linux)
  • Platinum (Corren perfectamente sin hacer modificaciones)
  • Gold (Corre perfectamente luego de hacer unas pequeñas modificaciones)
  • Silver (Corre el juego, con algunos problemas pequeños, pero en general se juega bien)
  • Bronze (Corre pero con problemas)
  • Borked (El juego ni siquiera empieza o es injugable)

Si te vas a la página, podrás ver que muchos juegos son Gold o arriba, y que los poco injugables generalmente son multijugador (como Destiny), pero antes de instalar cualquier cosa te recomiendo que visites la página para ver si tu juego corre bien.

Configurar e instalar Steam

Usar Steam en Ubuntu es muy fácil, solamente tienes que descargar el cilente de Steam en su página de internet e instalarlo. Si usas Pop!_OS es mucho más fácil, ya que viene en los repositorios, de hecho Pop!_OS tiene muy buen soporte para juegos.

sudo apt install steam

Una vez que tengamos instalado Steam y lo hayamos iniciado tenemos que activar Steam Play y Protón.

Una vez que lo actives, ya podrás empezar a jugar con Juegos como The Witcher 3, Skyrim y otros grandes títulos.

Lutris

Lutris es una biblioteca Open Source en la cual los usuarios suben scripts para emuladores y WINE para correr juegos que fueron hechos para Windows, en lo personal lo uso si hay algún juego que no está en Steam como Magic The Gathering Arena y World of Warcraft.

Para instalar Lutris en Ubuntu necesitas instalar Wine y las bibliotecas para x86.

sudo dpkg --add-architecture i386
sudo add-apt-repository ppa:lutris-team/lutris
sudo apt update
sudo apt install lutris

Una vez hecho esto, puedes empezar a buscar en la aplicación de Lutris por juegos e instalarlos.

De nuevo, si usas Pop!_OS, es más fácil, ya que solamente tienes que correr el siguiente comando

sudo apt install lutris

Usar Lutris no es tan sencillo como Steam, pero no debería haber tantas complicaciones, yo juego Magic y WoW sin problemas, pero a veces hay scripts que no funcionan, es cosa de leer las indicaciones que vienen al principio e instalar.

Aquí algunas capturas de que realmente estoy jugando en WoW

Targetas gráficas y Hardware

Obviamente Linux no hace milagro, para jugar los juegos más recientes habrá que tener una tarjeta que nos permita hacerlo, por ejemplo, para jugar en altos en 1080p puedes usar una NVIDIA GeForce GTX 1660Ti o 1660 super, si tienes una mejor tarjeta puedes aprovecharlo.

Igualmente las tarjetas de AMD son buenas y tienen buen soporte en Linux.

Si quieres usar tu targeta de NVIDIA a su máximo potencial, tienes que activar los controladores propietarios.

Si usas Pop!_OS, tienes que descargar el ISO que tiene los controladores de NVIDIA integrados para que ya esté todo configurado.

Sobre el CPU es bueno tener un iCore 5 de 8va generación en adelante o un Ryzen 5 de 2da generación, para memoria RAM con 16 GB es suficiente para todos los juegos.

MangoHud

Una de las cosas que me gusta hacer es tener un monitor para saber cómo está la temperatura del GPU y CPU mientras juego, así como también el porcentaje de uso, yo uso MangoHud para tener esas estádisticas

Para instalar MangoHud has lo siguiente, debemos instalar git para que sea más sencillo

sudo apt install git

Luego de instalarlo, descargamos MangoHud

git clone --recurse-submodules https://github.com/flightlessmango/MangoHud.git
cd MangoHud

Dentro de la carpeta de MangoHud corremos lo siguiente (deja que termine de ejecutar un comando antes de correr el siguiente)

./build.sh build
./build.sh package
./build.sh install

Una vez que esté instalado, debemos crear un archivo de configuración para mostrar lo que queremos mostrar, podemos copiar el que viene por defecto

cp /usr/share/doc/mangohud/MangoHud.conf.example ~/.config/MangoHud/MangoHud.conf

Abre el archivo

gedit ~/.config/MangoHud/MangoHud.conf

y copia y pega lo siguiente

### 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=

Hay varias opciones que puedes descomentar (quitar el # del comando) pero con este archivo que tenemos ya podemos ver la cantidad de RAM y CPU que se gasta asi como el porcentaje y puedes activar y desactivar con F11.

Ahora, para mostrarlo en los juegos de Steam, debes escribir lo siguiente en los parámentros de lanzamiento de cada juego.

mangohud %command%

A partir de proton 5.13, hay un error que no deja mostar MangoHud, para ello hay que editar el archivo <steam-library>/steam/steamapps/common/SteamLinuxRuntime_soldier/_v2-entry-point

gedit ~/.steam/steam/steamapps/common/SteamLinuxRuntime_soldier/_v2-entry-point

y poner lo siguiente despues de #!/usr/bin/env bash

shift 4
exec "${@}"

Para Lutris debemos ir a Opciones y tener habilidata la opción avanzada, y en opciones de sistema en la parte Prefijo de Comando, escribir mangohud

Y ya podrás tener MangoHud activado.

Con esta guía espero que puedas empezar a jugar en Linux y disfrutar del gaming.