Anonymous edits have been disabled on the wiki. If you want to contribute please login or create an account.


Warning for game developers: PCGamingWiki staff members will only ever reach out to you using the official press@pcgamingwiki.com mail address.
Be aware of scammers claiming to be representatives or affiliates of PCGamingWiki who promise a PCGW page for a game key.

Difference between revisions of "User:Al2009man/Sandbox/Template:Input/controller motion sensors/Documentation"

From PCGamingWiki, the wiki about fixing PC games
m
m
 
(4 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
** alias: Cursor, Pointer
 
** alias: Cursor, Pointer
 
* '''Gesture'''
 
* '''Gesture'''
**  alias: Gesture, Waggle, Shake
+
**  alias: Gesture, Action, Waggle, Shake
  
  
Line 15: Line 15:
 
The vast majority of PC Games with Gamepad's Motion Sensor functionality tend to work on First-party PlayStation Controllers (DualShock 4 and DualSense Controllers){{note|due to compatibility issues: third-party/licensed PlayStation Controllers may not be supported.}}, this is because '''Sony's Input API happens to be the most commonly used library for PlayStation Controllers,  it ''also'' happens to be the most accessible way to implement Motion Sensor to your game''' (This applies to DualSense's Haptic Feedback and Adaptive Trigger support.) Unfortunately: it is also the ''least'' accessible for much smaller developers (requires a licensed SDK).  
 
The vast majority of PC Games with Gamepad's Motion Sensor functionality tend to work on First-party PlayStation Controllers (DualShock 4 and DualSense Controllers){{note|due to compatibility issues: third-party/licensed PlayStation Controllers may not be supported.}}, this is because '''Sony's Input API happens to be the most commonly used library for PlayStation Controllers,  it ''also'' happens to be the most accessible way to implement Motion Sensor to your game''' (This applies to DualSense's Haptic Feedback and Adaptive Trigger support.) Unfortunately: it is also the ''least'' accessible for much smaller developers (requires a licensed SDK).  
  
However: Some games may opt to use a third-party Input API or plugins (such as Steam Input API, SDL, Rewired Plugin for Unity Engine, etc.) that often than not: supports Motion Sensors for additional Controllers (such as Nintendo Switch Controllers).
+
However: Some games may opt to use a third-party Input API or plugins (such as Steam Input API, SDL, Rewired Plugin for Unity Engine, etc.) that often than not: support Motion Sensors for additional Controllers (such as Nintendo Switch Controllers).
  
Here are our recommendations while testing and verifying games that take advantage the game's Motion Sensor feature sets:
+
To accommodate this, each Controller Type table will have its own row for ['''Motion sensor support''']. For instance, if a game exclusively supports Motion Sensors for PlayStation Controllers, set <code>playstation motion sensors</code> to <code>true</code>, but if it also works on additional controllers like the Nintendo Switch series of controllers: also set the equivalent row's values alongside the rest.
 +
 
 +
To properly use the rows, here are our recommendations for testing and verifying games that utilize the game's motion sensor features:
  
 
* '''Use either a Nintendo Switch controller, Nintendo Switch Joy-Cons or a Steam Controller.''' This should help determine if a game can detect that specific Controller Type's Motion Sensors.
 
* '''Use either a Nintendo Switch controller, Nintendo Switch Joy-Cons or a Steam Controller.''' This should help determine if a game can detect that specific Controller Type's Motion Sensors.
 
* Make sure the game's Motion Sensor features are enabled.
 
* Make sure the game's Motion Sensor features are enabled.
 
Whenever a game claims to feature "Motion Sensor/Gyro Aiming support but only for PlayStation Controllers". '''We recommend setting a note regarding Controller Compatibility (i.e.: "Gyro Aiming only works on PlayStation Controllers.").''' This also applies to Nintendo Switch Controller support with access to Motion Sensor features (but may not be advertised by the game developers).
 
  
  
Line 28: Line 28:
 
==== Additional Notes for Steam Input, while assigning the values: ====
 
==== Additional Notes for Steam Input, while assigning the values: ====
  
As a reminder: Steam Input Gamepad Emulation (Legacy mode) will emulate an Xbox Controller. As an Xbox Controller doesn't support Motion Sensor (this is because XInput and Windows.Gaming.Input API lacks support), nor a way to officially emulate a PlayStation Controller: '''disabling Steam Input will be a requirement'''.
+
As a reminder: Steam Input Gamepad Emulation (Legacy mode) will emulate an Xbox Controller. As an Xbox Controller doesn't support Motion Sensor (this is because XInput and Windows.Gaming.Input API lacks support), nor a way to officially emulate a PlayStation Controller: '''disabling Steam Input will be a requirement'''.  
  
However: certain games may take advantage of SteamInput's helper function and/or may implement Device Motion Sensor (''GetMotionData'') instead of a Mouse-like Camera action (''absolute_mouse''){{note|if a SIAPI-supported title implements a Mouse-like Camera action as a way to assign it as either Gyro/Trackpad Input styles (regardless of how it was marketed/advetised), it's ok to assign the value as true or limited with note citing the reason.}} for SIAPI-supported game (You can see it in action in games like [[The Last of Us Part I]], [[Spin Rhythm XD]] and [[Super Monkey Ball: Banana Mania]]).   
+
However: certain games may take advantage of SteamInput's helper function and/or may implement Device Motion Sensor (''<code>GetMotionData</code>''<ref>{{Refurl|url=https://partner.steamgames.com/doc/api/isteaminput#GetMotionData|title=ISteamInput Interface - GetMotionData|date=2024-05-19}}</ref>) instead of a Mouse-like Camera action (''<code>absolute_mouse</code>''<ref>{{Refurl|url=https://partner.steamgames.com/doc/features/steam_controller/getting_started_for_devs#11|title=Steam Input > Getting Started for Developers - StickPadGyro Actions|date=2024-05-19}}</ref>){{note|if a SIAPI-supported title implements a Mouse-like Camera action as a way to assign it as either Gyro/Trackpad Input styles (regardless of how it was marketed/advertised), it's ok to assign <code>steam input motion sensors</code> value as <code>true</code> or <code>limited</code> with note citing the reason.}} for SIAPI-supported game (You can see it in action in games like [[The Last of Us Part I]], [[Spin Rhythm XD]] and [[Super Monkey Ball: Banana Mania]]).   
  
  
Here are our recommendations while testing and verifying games that take advantage of Steam Input's Device Motion Sensor feature:
+
Here are our recommendations for testing and verifying games that utilize Steam Input's Motion Sensor features:
  
 
* Unless the game explicitly opt-in to Steam Input, '''enabling Steam Input is strongly recommended'''.  
 
* Unless the game explicitly opt-in to Steam Input, '''enabling Steam Input is strongly recommended'''.  
Line 40: Line 40:
 
* '''Ensure the game is using either a Recommended Config, or a Template as the default'''. If the game opted for Legacy mode support; this will not matter as it's automatic.
 
* '''Ensure the game is using either a Recommended Config, or a Template as the default'''. If the game opted for Legacy mode support; this will not matter as it's automatic.
  
Whenever it may be: we'll suggest leaving a note if a game does support it.
 
  
 
----
 
----

Latest revision as of 17:48, 19 May 2024

Recognized values
  • Camera
    • alias: Camera, Gyro Aiming, Gyro Aim, Gyroscope Aiming, Motion Sensor Aiming, Motion Sensor Aim, Motion Sensor Camera
  • Cursor
    • alias: Cursor, Pointer
  • Gesture
    • alias: Gesture, Action, Waggle, Shake



Additional Notes while assigning the values:

The vast majority of PC Games with Gamepad's Motion Sensor functionality tend to work on First-party PlayStation Controllers (DualShock 4 and DualSense Controllers)[Note 1], this is because Sony's Input API happens to be the most commonly used library for PlayStation Controllers, it also happens to be the most accessible way to implement Motion Sensor to your game (This applies to DualSense's Haptic Feedback and Adaptive Trigger support.) Unfortunately: it is also the least accessible for much smaller developers (requires a licensed SDK).

However: Some games may opt to use a third-party Input API or plugins (such as Steam Input API, SDL, Rewired Plugin for Unity Engine, etc.) that often than not: support Motion Sensors for additional Controllers (such as Nintendo Switch Controllers).

To accommodate this, each Controller Type table will have its own row for [Motion sensor support]. For instance, if a game exclusively supports Motion Sensors for PlayStation Controllers, set playstation motion sensors to true, but if it also works on additional controllers like the Nintendo Switch series of controllers: also set the equivalent row's values alongside the rest.

To properly use the rows, here are our recommendations for testing and verifying games that utilize the game's motion sensor features:

  • Use either a Nintendo Switch controller, Nintendo Switch Joy-Cons or a Steam Controller. This should help determine if a game can detect that specific Controller Type's Motion Sensors.
  • Make sure the game's Motion Sensor features are enabled.


Additional Notes for Steam Input, while assigning the values:

As a reminder: Steam Input Gamepad Emulation (Legacy mode) will emulate an Xbox Controller. As an Xbox Controller doesn't support Motion Sensor (this is because XInput and Windows.Gaming.Input API lacks support), nor a way to officially emulate a PlayStation Controller: disabling Steam Input will be a requirement.

However: certain games may take advantage of SteamInput's helper function and/or may implement Device Motion Sensor (GetMotionData[1]) instead of a Mouse-like Camera action (absolute_mouse[2])[Note 2] for SIAPI-supported game (You can see it in action in games like The Last of Us Part I, Spin Rhythm XD and Super Monkey Ball: Banana Mania).


Here are our recommendations for testing and verifying games that utilize Steam Input's Motion Sensor features:

  • Unless the game explicitly opt-in to Steam Input, enabling Steam Input is strongly recommended.
  • Use either a Steam Controller, a Steam Deck and/or a Nintendo Switch controller. This should help determine if a game can detect the Controller Type's Motion Sensors.
  • Check if the game's Motion Sensor feature is enabled.
  • Ensure the game is using either a Recommended Config, or a Template as the default. If the game opted for Legacy mode support; this will not matter as it's automatic.



Reference:
  1. due to compatibility issues: third-party/licensed PlayStation Controllers may not be supported.
  2. if a SIAPI-supported title implements a Mouse-like Camera action as a way to assign it as either Gyro/Trackpad Input styles (regardless of how it was marketed/advertised), it's ok to assign steam input motion sensors value as true or limited with note citing the reason.