Skip to content

Linux Gaming Explained

NayamAmarshe edited this page Aug 11, 2022 · 6 revisions

Ok, so I decided to write this because a lot of newbies struggle with Linux Gaming (I did too) so here's a post explaining everything in brief.

Linux

Linux is actually not an Operating System. It's a kernel (the core of an OS). Most people these days like to call operating systems based on the Linux kernel as just 'Linux'.

WINE

WINE started out as an acronym for Wine Is Not an Emulator. WINE converts the system calls made by Windows programs into Linux system calls. This enables us to run Windows programs on Linux-based operating systems.

WINE Prefix

It's just a folder that contains WINE data and your installed Windows programs. It's usually found in your home directory and is hidden with the name .wine. That folder will contain a folder named drive_c that acts like a C:\ drive. WINE lets you create multiple prefixes. Each prefix can have its own set of installed programs, dependencies and configuration. I personally just stick to the default prefix, it doesn't require any configuration and all my apps and games can be kept inside a single folder.

WINE Mono

WINE can convert Windows functions to Linux functions but sometimes, it's not possible. Windows uses something called a .NET Framework for applications, so WINE has created a .NET Framework of their own called WINE Mono. It's used to run Windows apps made with .NET Framework.

WINE Gecko

It's WINE's version of internet explorer. It is used for programs that display an HTML page.

Winetricks

It's a manager for WINE Prefixes (WINE folders). It lets you install things like DirectX, Visual C++ and more. It also lets you launch WINE settings and uninstall apps installed through WINE. Very handy utility.

Lutris

It's a game manager that uses several technologies to run games. Lutris is not just made for Windows games but also emulation. Lutris can help you run Windows games with different versions of WINE and you can easily switch between WINE versions for each game. You can even switch between multiple WINE prefix per-game.

Proton

Proton is a version of WINE made by Valve (the creators of Steam). Proton comes with several gaming related patches.

Proton-GE

It's a custom version of Proton with even more gaming related patches. So if Proton is WINE but enhanced, Proton-GE is Proton but enhanced. It's meant to be used with Steam. You can use an app called ProtonUp-Qt to install it. Proton-GE was made by GloriousEggroll an engineer at Red Hat organization.

WINE-GE

It's just like Proton but for non-Steam games. You can use the app ProtonUp-Qt to install it in Lutris. The GE in the name means it was made by GloriousEggroll.

FSYNC

It's a feature in newer kernels (enabled by default after v5.16) that lets you run games smoothly. Fsync is not available on many distros with older kernels, that's why we install the Xanmod Kernel.

Xanmod Kernel

It's a kernel (the core of the operating system) that contains drivers and hardware related configuration. Xanmod contains extra performance patches so that your computer can run faster (not guaranteed but still). Xanmod kernels also come with FSYNC enabled by default, that's why we install it for smoother gaming experience.

GameMode

It's a tool that can increase your system performance while playing games. You can use Lutris to enable Feral Game Mode option for better performance.

DXVK

Windows uses a utility called DirectX. DirectX is like a tool game developers use to make Windows games but DirectX is a Windows exclusive. There's something called Vulkan which is supported by most modern graphics cards and it's an alternative to DirectX. The good thing about Vulkan is that it's free and open source and works on Linux. That's why we use something called DXVK on Linux, It lets us convert DirectX 9, 10 or 11 functions into Vulkan functions that are supported by Linux in realtime. Since it's realtime, sometimes your games may lag due to shader compilation being done by Vulkan. So, if WINE converts Windows system calls to Linux, DXVK converts DirectX calls to Vulkan. DXVK is installed by default on Lutris, always use the latest version of it.

VKD3D

It's just like DXVK but for DirectX 12 games and apps.

DXVK-NVAPI

It's for RTX cards to use DLSS on Linux. Installed by default on Lutris.