People new to Linux and especially Linux Gaming are often asking what kind of rig is the best to play games on Linux. That’s a very good question actually, since the variables are not the same as in a Windows environment. It’s a little more complex as well. But the short, no-bullshit answer can be captured in bullet points (updated Jan 2017):

For most multi-platform games, Windows performance is still higher than Linux’s. Be aware of that.

CPU wise, prefer Intel i3, i5 or i7 versus AMD alternatives: single thread performance matters much more than the raw number of cores.

For most games an i7 CPU do not bring much FPS advantages, so if you want to save money a fast intel i3 or i5 CPU is a good option still.

If you have a mid to high-end GPU card, most games should run great on Linux anyway (as in, Full-HD, 60 FPS).

Intel’s integrated GPU performance is low so don’t expect too much, whether on Windows or on Linux.

GPU Drivers on Linux are continuously improving for both AMD and nVidia, while nVidia is still ahead in performance/cost.

At this stage, it is still better to stick with a nVidia card if all you care about is performance.

Laptops with hybrid GPUs may not work as expected – there is no perfect solution and many users have issues to get them working.

The recent GTX1070 (released in June 2016) is one of the best cards available, price/performance wise and the latest nVidia proprietary Linux drivers support its functionalities. A good, intermediate budget choice would the GTX1060 from nVidia. (This replaces our prior recommendations for a GTX970 and GTX960).

If you ONLY care about gaming, the truth is Windows is the still best choice out there on your PC – more games, better performance you can rely on – this is the reality for now. But things are changing bit by bit, more and more games support Linux, and unless you really need a specific Windows game that’s not available on Linux, there are more than enough games (see our recommended games list if you are not convinced) to spend a ton of time on Linux, and enjoy all the benefits of a Linux desktop at the same time.

Early 2017 Configuration

This is the case of a entry level configuration, based on available prices in the US. You can get away with a solid entry level gaming machine for less than 500 USD if you want, by getting a cheaper graphics card (nVidia 1050 Ti for example) and a slightly older i3 processor or even the Pentium G4560 which is almost as powerful as an i3 but really, really cheap (pc parts picker list)

CPU: Intel Pentium G4560 3.5GHz Dual-Core Processor ($70.98 @ Newegg)

Motherboard: *Gigabyte GA-B150M-DS3H Micro ATX LGA1151 Motherboard ($70.88 @ OutletPC)

Memory: *G.Skill Aegis 8GB (2 x 4GB) DDR4-2400 Memory ($52.99 @ Newegg)

Storage: Western Digital Caviar Blue 1TB 3.5″ 7200RPM Internal Hard Drive ($49.33 @ OutletPC)

Video Card: Zotac GeForce GTX 1050 Ti 4GB Mini Video Card ($138.99 @ SuperBiiz)

Case: Deepcool TESSERACT BF ATX Mid Tower Case ($38.99 @ SuperBiiz)

Power Supply: *Corsair CXM 450W 80+ Bronze Certified Semi-Modular ATX Power Supply ($54.99 @ Jet)

Total: $477.15 (include shipping, taxes – 6 Feb 2017)

Our below config goes for even better performance if you can spend close to 600 dollars. Obviously you can go and spend way more if you wish, but this shows that you can actually get a lot of power for a reasonable amount of money. PC gaming is not for the 1% only (January 2017: PCPartPicker part list).

Note that this is the very first time that we include a non-nVidia card in our recommended config. At this price-point you can either go with the 1060 from nVidia or the RX480 from AMD and you should probably expect similar performance profile – and depending on the game the RX480 may perform better if they have a Vulkan renderer for example.

CPU: Intel Core i3-6100 3.7GHz Dual-Core Processor ($109.99 @ SuperBiiz)

Motherboard: *MSI B150M PRO-VDH Micro ATX LGA1151 Motherboard ($66.99 @ SuperBiiz)

Memory: *G.Skill NT Series 8GB (2 x 4GB) DDR4-2400 Memory ($51.99 @ Newegg)

Storage: Western Digital Caviar Blue 1TB 3.5″ 7200RPM Internal Hard Drive ($49.55 @ OutletPC)

Video Card (Option 1): EVGA GeForce GTX 1060 3GB 3GB GAMING Video Card ($194.99 @ B&H)

Video Card (Option 2): Asus Radeon RX 480 4GB Dual Video Card ($197.99 @ SuperBiiz – add 3 dollars to the total config cost)

Case: Deepcool TESSERACT BF ATX Mid Tower Case ($34.99 @ SuperBiiz)

Power Supply: *Rosewill Capstone 550W 80+ Gold Certified Semi-Modular ATX Power Supply ($59.99 @ Newegg)

Total: $568.49 (Prices include shipping, taxes, and discounts when available)

Of course, if you have more means, you’d probably want to bump up your CPU for a i5 instead, and change your graphics card for a nVidia GTX1050 or 1060 instead (1070 if you can afford it). I’d recommend you check in details what games you absolutely want to run well and see if the hardware you are looking for is able enough.

Now, for the more detailed answer on the hardware front.

API Differences

Windows usually relies on DirectX for the display of stuff on the screen. DirectX is a proprietary API from Microsoft, which makes it easy for developers to write games for Windows. Developers do not need to know the hardware target, and can therefore write games in a unified manner. The GPU driver is the piece of software from the manufacturer that translates DirectX API calls to a code understandable by the hardware. How well and how fast this is done depends a lot on the driver quality.

In a Linux environment, DirectX is not available, since it’s a proprietary technology from Microsoft. The equivalent is OpenGL. OpenGL is, as its name suggests, open, and is therefore used in many devices and environments. Games on OSX also use OpenGL, but the display interface in Linux (X) is different. Just like for DirectX, in order to translate OpenGL calls to hardware instructions, drivers are needed. When comparing the performance of a game in Windows versus the same game running on Linux, you should be aware that there are several factors that may be at play:

OpenGL vs DirectX: Programmers experienced with DirectX may be unaware of the best ways to optimize their OpenGL calls to get good performance.

Drivers quality: while we lack 100% comparable benchmarks, it seems that even the best OpenGL drivers on Linux are a little slower than the best DirectX drivers on Windows. This may not be the case anymore for nVidia, but may still be the case for AMD.

You need to take the above claims with a grain of salt, since Valve has been able to demonstrate higher performance on Left 4 Dead 2 on Linux vs Windows back in 2012, after several rounds of optimization. So faster overall performance, even with OpenGL, may be achievable, but that’s not just what we see currently in most games being released and sold for Linux.

On the drivers’ side, there are both open source and proprietary drivers to support AMD, Intel and nVidia. Open Source drivers are either only supported by the community, or a shared effort with the manufacturer of the GPU cards.

Free Software Drivers

FOSS drivers work via libDRM (Direct Rendering Manager), a subsytem of the Linux kernel to interface with the different video cards. There are versions of LibDRM for each GPU type, intel, nouveau (for nVidia) and radeon (for AMD cards). This libDRM then plugs into another set of libraries, Mesa. LibMesa implements the OpenGL API used in the games. LibMesa used to be late in terms of features compared to proprietary drivers, however, it now supports most features of OpenGL 4.5 in its latest version. Note that depending on your hardware features, you may be limited, regardless of your mesa version, to a specific OpenGL version (Intel HD3000, for example, cannot support OpenGL higher than 3.3).

Game Controllers

For mouse-driven games, you will need a mouse and a keyboard, and most mice will work just fine. I was reminded by one of our readers that Roccat mice are pretty good gamer-focused mice with additional buttons which work well with Linux (there are configuration tools available on most distributions, even if Roccat does not officially advertise Linux support). For other brands, note that some specific mice with extra buttons may not work as well since they may require specific drivers to be recognized. Better to ask around/check online before purchasing one if you are not too sure.

Now, if you want to use a Gamepad, the most reliable option for games nowadays is to get a Xbox360 gamepad. There are several reasons for that:

It is an excellent controller, period.

It is recognized automatically on most Linux distros

A number of games actually REQUIRE it.

The last point is important. The Xbox360 controller uses a protocol called X-input, which maps buttons triggers and other controls in specific places. The Y button will always be the top button, for example. This makes it practical for game developers, as they don’t have to think about configurations where the Y button may be in a totally different position on the pad.

Non-Microsoft gamepads usually use a different protocol called D-input, for which there is no standard. Button1 could be literally anywhere on the pad, which makes it very hard for game developers to provide good defaults. A gamer using a D-input controller should therefore remap controls every time they start a game for the first time. So, if you don’t want to have any issues, a Xbox360 pad (wired or wireless) is an easy decision.

This being said, you should also consider other options, such as the Steam Controller that was released by Valve in late 2015. It’s an unusual controller since it features two large trackpads, but it works well with many games, including FPS (nothing beats a mice and keyboard, but if you play from the couch the Steam Controller is as good as it gets).

You may want to check out our impressions of that controller before buying one. One more thing, at this stage most distros also support that controller outside of Steam (kernel support started from 4.3).

Finally, the Dual Shock 4 from Sony is actually a very decent controller as well, and if you follow the instructions in this tutorial (ds4drv), you’ll be able to use just like the Xbox360 controller in most games.

Note that the Dual Shock 4 requires bluetooth to connect so you will need to have bluetooth connectivity (either integrated, or via a USB dongle) to make use of it.