Compatibility of controllers for PC games
Short answer:
XBOX 360 controller or XBOX ONE controller
.
Why:
These are officially supported by many new PC games that are designed for them (that's called the XInput API), so no configuration needed, not even remapping buttons. (Super easy).
Where not officially supported, it's still recognised as a windows DirectX controller, so any windows game will support it, (as long as it supports joysticks/joypads and is no older than 1995 or so). You may have to re-map buttons, or even fiddle with config files, though. (Easy enough).
Where there is no/broken joystick support, you can use a utility that turns control pad commands into key presses and mouse movements like xPadder. (Do-able).
It's a pretty well-built controller. 3rd party controllers are almost never as accurate, responsive and comfortable as the ones that ship with the major consoles.
Any controller you can buy for PC can do 2 and 3, but not necessarily 1 and 4 (Note: there are a few other controllers that also support XInput, so games recognise them just like the 360 controller). I have the pc dongle and wireless x360 controller, as well as many other controllers. The dongle - Microsoft Wireless Gaming Receiver - is very cheap (you can get an off-brand one on eBay for less than $10 delivered).
The one drawback of the 360 controller is the older ones (the vast majority of them) have an average D-pad, which sucks in older emulated games (fast 2D platformers, SNES games, Streetfighter 2, etc). I recommend (and use) a USB adapter off eBay with an old SNES controller for those (though any genuine Nintendo controller - NES, N64, GC, Wii Classic controller, etc - will have a good D-pad, and the Sony ones are OK too).
If you do not have any controller yet, go for the XBox 360 Controller or any other controller that supports the XInput API. There are not many of them, including:
- Official Xbox 360 Controller
- Logitech Cordless RumblePad 2 USB
- Thrustmaster T-Wireless 3 in 1 Rumble Force
- Thrustmaster Run’N’Drive Wireless
- Thrustmaster Run'N'Drive Wired Rumble Force
- Thrustmaster Dual Trigger
- Rumble Force Thrustmaster Dual Analog 3
If you unluckily do have a controller that is none of the above or not supporting XInput, there still is a solution, albeit an impractical one.
There is a small project called X360ce which allows you to use such controllers with the games requiring XInput. I have been using it successfully to play Dirt 2 with my Saitek Rumble Force.
The quirk is, you have to copy it for every game you want to play, and possibly configure it individually. But most games work the same, I did the configuration only once for my controller and it works on most games.
Steam now supports the PlayStation 4 controller (DS4) and the Switch Pro Controller.
Any gamepad compatible Steam game can now be played with either of these gamepads in addition to the Xbox 360 and Xbox One gamepads.
While the linked article says you need to opt into the Steam Client Beta, the feature has since been released and is available for all Steam users.
Keep in mind that the Switch Pro Controller doesn't have analog triggers, so some games may be somewhat more difficult to play than others.