Windows games with controller support

gamerant.com

Follow Game Rant.com

Something New

15 PC Games That Play Better With A Controller

It might seem counterintuitive, but these PC games are much better if you use a controller instead of the old mouse and keyboard.

A keyboard and mouse configuration is suited for many PC games, yet it is intuitive to use a controller with specific genres such as sports games, racing titles and fighting games. There are pros and cons to both control schemes, depending on what style of game is being played at a given time.

There aren’t any first-person shooter (FPS) games on this list, since they are (arguably) easier with a keyboard and mouse. That being said, we have updated this list with 5 more titles that are better played using a controller, as opposed to a mouse and keyboard.

Updated on November 25th, 2020 by Derek Draven: As mentioned above, we’ve added 5 more games that benefit greatly from a controller. In almost every case, the game itself is the deciding factor, and this may differ for some people. Take the entries with a grain of salt, and see how many you agree with.

15 Strider

Playing Strider with a keyboard and mouse just feels weird. There’s no other way to describe it. This side-scrolling action platformer was built head to toe on the premise of the classic Capcom arcade title, and it definitely shows up in the gameplay. Core fundamentals are still at play, and that means using a controller to enjoy them.

The running, jumping, and slashing is fast-paced and sometimes requires quick reflexes in order to avoid damage and/or death. With a keyboard and mouse, too many things can go wrong too quickly. It’s best to stick to a controller where reflex and muscle memory are able to keep up with what’s happening on screen.

14 Batman: Arkham Series

While playing the Arkham games with a keyboard and mouse is possible (and perfectly fine), it does fall short of a controller in a few key areas. The game relies heavily on auto-targeting mechanics which makes controllers a natural fit for the gameplay, but that’s not all.

Where a controller truly shines is during combat sequences. The free-flowing fighting system relies on memory and reflexes best served by the close-knit components of a controller. It’s a bit harder to pull off complex and elongated combos with a keyboard and mouse.

13 Castlevania: Lords Of Shadow

The fast-paced nature of Lords of Shadow means that it’s better suited to gamepad control as opposed to a keyboard and mouse. Since it isn’t a game where combat consists of gunplay and precise aiming, the player can hack and slash at their leisure.

Plus, Castlevania has a long and storied past primarily on consoles where controllers were the method of play. This means the franchise has largely evolved behind that style, even as it branches outward into new 3D territory.

12 Halo: Spartan Assault & Spartan Strike

Having Halo: The Master Chief Collection on PC has been a blessing, if for no other reason than for gamers to take advantage of the coveted mouse/keyboard combo. However, other games in the franchise fare much better on the controller, including both Spartan Assault and Strike.

The top-down isometric view of the game means precision shooting isn’t nearly as necessary as it would be in an FPS title. A controller is the perfect mechanism by which to control the character while taking advantage of its excellent move/shoot system. While a keyboard/mouse combo isn’t the worst thing in the world, it’s also not as good as a gamepad.

11 Streets Of Rage 4

This one should come as no surprise. After all, the Streets of Rage franchise started out on the 16-Bit Sega Genesis console way back in the 1990s, and there weren’t very many PC fighting games of its kind at the time. Streets of Rage 4 has proven to be an excellent follow-up to the original trilogy.

Not only does it perfectly capture the feel of the original games, but it introduces several new control mechanics to spice things up. Playing the game on a keyboard is simply not enjoyable, nor should it be. Plug in a controller and experience classic button-mashing mayhem the way it was intended.

10 Any Assassin’s Creed Game

The Assassin’s Creed franchise isn’t known for its sophisticated control design. A keyboard and mouse are unnecessary when playing a game series like Assassin’s Creed. It’s neither a first-person shooter nor is it a role-playing game with complicated controls. Combat is simple, and many of the missions involve basic tasks like trailing or assassinating. After trying both peripherals, it becomes abundantly clear that Assassin’s Creed is best played with a controller.

Читайте также:  Windows live movie maker files

9 Middle-Earth: Shadow Of War

In a game that requires precise movements for stealth, controls have to be its strong suit. It’s a shame that fighting someone near a wall creates camera issues that take away from the game. Middle-earth: Shadow Of War‘s controls are less complex than Batman: Arkham Knight, but more complex than Batman: Arkham City. We compare these games because of their similar combat mechanics. Putting the bow’s aiming aside, a controller undoubtedly works better for Middle-earth: Shadow Of War.

8 Grand Theft Auto V

It is debatable which peripheral is better suited for Grand Theft Auto V because it depends on the task at hand. When shooting and driving at the same time, the feel of the keyboard and mouse is superior. If you’re driving a vehicle or flying an aircraft, however, a gamepad is the better Grand Theft Auto V peripheral. In most cases, the controller beats the keyboard and mouse, unless you’re playing with certain mods.

7 Rise Of The Tomb Raider

Using WSAD on a keyboard is inferior to a controller’s thumbstick when playing Rise of the Tomb Raider. The game lets the player perform basic movements for swimming, wall climbing, and walking/running. There isn’t a wide variety of spells or weapons to switch between. Weapons like the bow, shotgun, rifle, and pistol are easily equipped with the directional pad (D-Pad). A keyboard and mouse also works, but many prefer the controller for its comfort and accessibility.

6 Dark Souls

In a difficult game like Dark Souls, you need the optimal peripheral device. Depending on what you’re most proficient at using, Dark Souls can be better with a keyboard and mouse or a controller. This is not an MMORPG that requires key bindings or macros. There are enough buttons on the controller for a seamless playthrough (excluding all the times you die).

If you’re like MezzPlays, you beat Dark Souls using a Guitar Hero controller without taking damage! Don’t blame Dark Souls because of your controller, but rather its painstaking difficulty.

5 FIFA 20

It could be said that most sports video games play better with a controller. A keyboard and mouse is awkward unless you seldom pick up a controller. FIFA 20 offers controller support for most major gamepads and controllers. However, PlayStation controllers are among the few not supported for this game. The takeaway is that FIFA 20 doesn’t require precise mouse movements, and it is counterintuitive to use a keyboard and mouse.

4 Cuphead

As one of the most difficult 2D games in the history of the PC, Cuphead is a challenge because of its speedy animations and grueling boss fights. You’ll be dumbfounded by this 193os inspired run and gun video game.

We know Cuphead is difficult, but which is better; a keyboard and mouse or controller? This game may have an antiquated appearance, but it does use modern controls. Parrying, dashing, locking in place, and using Super Art have assigned buttons. Cuphead‘s controls aren’t that complicated, so it doesn’t require a keyboard and mouse. It boils down to preference for this game.

3 Nioh

Although Nioh 2 has yet to be released on PC, Nioh is widely available on stores like Steam, Humble Bundle, and Green Man Gaming. It’s a challenging action role-playing game, so choosing the wrong peripheral could be detrimental. Nioh is not a role-playing game with a lot of buttons. It can be comfortably played with a gamepad. Connect an Xbox One or DualShock 4 controller to your PC and it will drastically enhance your experience.

2 Hollow Knight

Hollow Knight is a Souls-like, Metroid-like, and Castlevania-like. People can’t seem to agree on which game it’s the most like. For sure, Hollow Knight is a demanding game that plays better with a gamepad. A keyboard and mouse doesn’t provide an advantage when playing Hollow Knight, so you may as well stick with the controller. Good luck trying to beat this game with a keyboard and mouse; it’s no cakewalk.

1 Devil May Cry 5

This game isn’t the most difficult on this listicle, but it might have the longest learning curve. Devil May Cry 5 is unlike any of the other Devil May Cry games. The controls are different, yet it shares in common that a controller is the best option. Try using a WSAD setup, and you’ll be scrambling to defeat monsters. At the same time, Capcom has optimized keyboard and mouse experience since the previous Devil May Cry games. Still, a controller is the best option.

Registry data for game controllers

This topic is meant for manufacturers of Windows 10-compatible game controllers, and doesn’t apply to the majority of developers.

The Windows.Gaming.Input namespace allows independent hardware vendors (IHVs) to add data to the PC’s registry, enabling their devices to appear as Gamepads, RacingWheels, ArcadeSticks, FlightSticks, and UINavigationControllers as appropriate. All IHVs should add this data for their compatible controllers. By doing this, all UWP games (and any desktop games that use the WinRT API) will be able to support your game controller.

Mapping scheme

Mappings for a device with Vendor ID (VID) VVVV, Product ID (PID) PPPP, Usage Page UUUU, and Usage ID XXXX, will be read out from this location in the registry:

The table below explains the expected values under the device root location:

Читайте также:  Что это такое jre 6u17 windows

Indicates that this particular device should be disabled.

  • 0: Device is not disabled.
  • 1: Device is disabled.
Name Type Required? Info
Disabled DWORD No
Description REG_SZ No A short description of the device.

Your device installer should add this data to the registry (either via setup or an INF file).

Subkeys under the device root location are detailed in the following sections.

Gamepad

The table below lists the required and optional subkeys under the Gamepad subkey:

Subkey Required? Info
Menu Yes See Button mapping
View Yes
A Yes
B Yes
X Yes
Y Yes
LeftShoulder Yes
RightShoulder Yes
LeftThumbstickButton Yes
RightThumbstickButton Yes
DPadUp Yes
DPadDown Yes
DPadLeft Yes
DPadRight Yes
Paddle1 No
Paddle2 No
Paddle3 No
Paddle4 No
LeftTrigger Yes See Axis mapping
RightTrigger Yes
LeftThumbstickX Yes
LeftThumbstickY Yes
RightThumbstickX Yes
RightThumbstickY Yes

If you add your game controller as a supported Gamepad, we highly recommend that you also add it as a supported UINavigationController.

RacingWheel

The table below lists the required and optional subkeys under the RacingWheel subkey:

Subkey Required? Info
PreviousGear Yes See Button mapping
NextGear Yes
DPadUp No
DPadDown No
DPadLeft No
DPadRight No
Button1 No
Button2 No
Button3 No
Button4 No
Button5 No
Button6 No
Button7 No
Button8 No
Button9 No
Button10 No
Button11 No
Button12 No
Button13 No
Button14 No
Button15 No
Button16 No
FirstGear No
SecondGear No
ThirdGear No
FourthGear No
FifthGear No
SixthGear No
SeventhGear No
ReverseGear No
Wheel Yes See Axis mapping
Throttle Yes
Brake Yes
Clutch No
Handbrake No
MaxWheelAngle Yes See Properties mapping

ArcadeStick

The table below lists the required and optional subkeys under the ArcadeStick subkey:

Subkey Required? Info
Action 1 Yes See Button mapping
Action2 Yes
Action3 Yes
Action4 Yes
Action5 Yes
Action6 Yes
Special1 Yes
Special2 Yes
StickUp Yes
StickDown Yes
StickLeft Yes
StickRight Yes

FlightStick

The table below lists the required and optional subkeys under the FlightStick subkey:

Subkey Required? Info
FirePrimary Yes See Button mapping
FireSecondary Yes
Roll Yes See Axis mapping
Pitch Yes
Yaw Yes
Throttle Yes
HatSwitch Yes See Switch mapping

UINavigation

The table below lists the required and optional subkeys under UINavigation subkey:

Subkey Required? Info
Menu Yes See Button mapping
View Yes
Accept Yes
Cancel Yes
PrimaryUp Yes
PrimaryDown Yes
PrimaryLeft Yes
PrimaryRight Yes
Context1 No
Context2 No
Context3 No
Context4 No
PageUp No
PageDown No
PageLeft No
PageRight No
ScrollUp No
ScrollDown No
ScrollLeft No
ScrollRight No
SecondaryUp No
SecondaryDown No
SecondaryLeft No
SecondaryRight No

For more information about UI navigation controllers and the above commands, see UI navigation controller.

The following sections explain the contents of each of the subkeys under the Gamepad, RacingWheel, ArcadeStick, FlightStick, and UINavigation keys.

Button mapping

The table below lists the values that are needed to map a button. For example, if pressing DPadUp on the game controller, the mapping for DPadUp should contain the ButtonIndex value (Source is Button). If DPadUp needs to be mapped from a switch position, then the DPadUp mapping should contain the values SwitchIndex and SwitchPosition (Source is Switch).

Defines the size of a window around the ThresholdPercent value, which is used to debounce the reported button state. The valid range of values is 0 to 100. Button state transitions can only occur when the axis value crosses the upper or lower boundaries of the debounce window. For example, a ThresholdPercent of 50 and DebouncePercent of 10 results in debounce boundaries at 45% and 55% of the full-range axis values. The button can’t transition to the pressed state until the axis value reaches 55% or above, and it can’t transition back to the released state until the axis value reaches 45% or below.

The computed debounce window boundaries are clamped between 0% and 100%. For example, a threshold of 5% and a debounce window of 20% would result in the debounce window boundaries falling at 0% and 15%. The button state for axis values of 0% and 100% are always reported as released and pressed, respectively, regardless of the threshold and debounce values.

Indicates the switch position that will cause the mapped button to report that it’s being pressed. The position values can be one of these strings:

  • Up
  • UpRight
  • Right
  • DownRight
  • Down
  • DownLeft
  • Left
  • UpLeft
Source Value name Value type Required? Value info
Button ButtonIndex DWORD Yes Index in the RawGameController button array.
Axis AxisIndex DWORD Yes Index in the RawGameController axis array.
Invert DWORD No Indicates that the axis value should be inverted before the Threshold Percent and DebouncePercent factors are applied.
ThresholdPercent DWORD Yes Indicates the axis position at which the mapped button value transitions between the pressed and released states. The valid range of values is 0 to 100. The button is considered pressed if the axis value is greater than or equal to this value.
DebouncePercent DWORD Yes
Switch SwitchIndex DWORD Yes Index in the RawGameController switch array.
SwitchPosition REG_SZ Yes
IncludeAdjacent DWORD No Indicates that adjacent switch positions will also cause the mapped button to report that it’s being pressed.

Axis mapping

The table below lists the values that are needed to map an axis:

Index in the RawGameController button array which gets translated to the mapped unidirectional axis value.

Source Value name Value type Required? Value info
Button MaxValueButtonIndex DWORD Yes
MaxButton AxisValue
FALSE 0.0
TRUE 1.0
MinValueButtonIndex DWORD No

Indicates that the mapped axis is bidirectional. Values of MaxButton and MinButton are combined into a single bidirectional axis as shown below.

MinButton MaxButton AxisValue
FALSE FALSE 0.5
FALSE TRUE 1.0
TRUE FALSE 0.0
TRUE TRUE 0.5
Axis AxisIndex DWORD Yes Index in the RawGameController axis array. Invert DWORD No Indicates that the mapped axis value should be inverted before it’s returned. Switch SwitchIndex DWORD Yes Index in the RawGameController switch array. MaxValueSwitchPosition REG_SZ Yes

One of the following strings:

It indicates the position of the switch that causes the mapped axis value to be reported as 1.0. The opposing direction of MaxValueSwitchPosition is treated as 0.0. For example, if MaxValueSwitchPosition is Up, the axis value translation is shown below:

Switch position AxisValue
Up 1.0
Center 0.5
Down 0.0
IncludeAdjacent DWORD No

Indicates that adjacent switch positions will also cause the mapped axis to report 1.0. In the above example, if IncludeAdjacent is set, then the axis translation is done as follows:

Switch position AxisValue
Up 1.0
UpRight 1.0
UpLeft 1.0
Center 0.5
Down 0.0
DownRight 0.0
DownLeft 0.0

Switch mapping

Switch positions can be mapped either from a set of buttons in the buttons array of the RawGameController or from an index in the switches array. Switch positions can’t be mapped from axes.

Shifts the starting point of how positions are reported by the specified amount. PositionBias is always counted clockwise from the original starting point, and is applied before the order of values is reversed.

For example, a switch that reports positions starting with DownRight in counter-clockwise order can be normalized by setting the Invert flag and specifying a PositionBias of 5:

Source Value name Value type Value info
Button ButtonCount DWORD 2, 4, or 8
SwitchKind REG_SZ TwoWay, FourWay, or EightWay
UpButtonIndex DWORD See *ButtonIndex values
DownButtonIndex DWORD
LeftButtonIndex DWORD
RightButtonIndex DWORD
UpRightButtonIndex DWORD
DownRightButtonIndex DWORD
DownLeftButtonIndex DWORD
UpLeftButtonIndex DWORD
Axis SwitchKind REG_SZ TwoWay, FourWay, or EightWay
XAxisIndex DWORD YAxisIndex is always present. XAxisIndex is only present when SwitchKind is FourWay or EightWay.
YAxisIndex DWORD
XDeadZonePercent DWORD Indicate the size of the dead zone around the center position of the axes.
YDeadZonePercent DWORD
XDebouncePercent DWORD Define the size of the windows around the upper and lower dead zone limits, which are used to de-bounce the reported switch state.
YDebouncePercent DWORD
XInvert DWORD Indicate that the corresponding axis values should be inverted before the dead zone and debounce window calculations are applied.
YInvert DWORD
Switch SwitchIndex DWORD Index in the RawGameController switch array.
Invert DWORD Indicates that the switch reports its positions in a counter-clockwise order, rather than the default clockwise order.
PositionBias DWORD
Position Reported value After PositionBias and Invert flags
DownRight 0 3
Right 1 2
UpRight 2 1
Up 3 0
UpLeft 4 7
Left 5 6
DownLeft 6 5
Down 7 4

*ButtonIndex values

*ButtonIndex values index into the RawGameController‘s button array:

ButtonCount SwitchKind RequiredMappings
2 TwoWay
  • UpButtonIndex
  • DownButtonIndex
4 FourWay
  • UpButtonIndex
  • DownButtonIndex
  • LeftButtonIndex
  • RightButtonIndex
4 EightWay
  • UpButtonIndex
  • DownButtonIndex
  • LeftButtonIndex
  • RightButtonIndex
8 EightWay
  • UpButtonIndex
  • DownButtonIndex
  • LeftButtonIndex
  • RightButtonIndex
  • UpRightButtonIndex
  • DownRightButtonIndex
  • DownLeftButtonIndex
  • UpLeftButtonIndex

Properties mapping

These are static mapping values for different mapping types.

Mapping Value name Value type Value info
RacingWheel MaxWheelAngle DWORD Indicates the maximum physical wheel angle supported by the wheel in a single direction. For example, a wheel with a possible rotation of -90 degrees to 90 degrees would specify 90.

Labels

Labels should be present under the Labels key under the device root. Labels can have 3 subkeys: Buttons, Axes, and Switches.

Button labels

The Buttons key maps each of the button positions in the RawGameController‘s buttons array to a string. Each string is mapped internally to the corresponding GameControllerButtonLabel enum value. For example, if a gamepad has ten buttons and the order in which the RawGameController parses out the buttons and presents them in the buttons report is like this:

The labels should appear in this order under the Buttons key:

Name Value (type: REG_SZ)
Button0 Menu
Button1 View
Button2 LeftStickButton
Button3 RightStickButton
Button4 LetterA
Button5 LetterB
Button6 LetterX
Button7 LetterY
Button8 LeftBumper
Button9 RightBumper

Axis labels

The Axes key will map each of the axis positions in the RawGameController‘s axis array to one of the labels listed in GameControllerButtonLabel Enum just like the button labels. See the example in Button labels.

Switch labels

The Switches key maps switch positions to labels. The values follow this naming convention: to label a position of a switch, whose index is x in the RawGameController‘s switch array, add these values under the Switches subkey:

  • SwitchxUp
  • SwitchxUpRight
  • SwitchxRight
  • SwitchxDownRight
  • SwitchxDown
  • SwitchxDownLeft
  • SwitchxUpLeft
  • SwitchxLeft

The following table shows an example set of labels for switch positions of a 4-way switch which shows up at index 0 in the RawGameController:

Name Value (type: REG_SZ)
Switch0Up XboxUp
Switch0Right XboxRight
Switch0Down XboxDown
Switch0Left XboxLeft

Example registry file

To show how all of these mappings and values come together, here is an example registry file for a generic RacingWheel:

Читайте также:  Подключение удаленного рабочего стола windows 10 home
Оцените статью