[ ] Controller Support: your game must support Steam Deck's physical controls. The default controller configuration must provide users with the ability to access all content. Players must not need to adjust any in-game settings in order to enable controller support or this configuration.
in progress: #3
[ ] Default Controller Configuration: We strongly recommend (and require for Verified on Deck badging) that the default controller configuration for your game enables access to all in-game functionality. If your game doesn't natively support controllers, we recommend creating a controller configuration to map to the appropriate mouse and keyboard inputs. Better yet, implementing gamepad or native Steam Input support may open your game to a whole new set of customers.
[ ] Controller Glyphs: when using Steam Deck's physical controls, on-screen glyphs must either match Deck button names, or match Xbox 360/One button names. Mouse and keyboard glyphs should not be shown if they are not the active input. Interacting with any physical Deck controls using the default configuration must not show non-controller glyphs. (Recommendations: We strongly recommend using the SteamInput API, which will automatically show the correct glyphs regardless of which input device the user is using.)
see: #60
[ ] Text input: if your game requires text input (eg., for naming a character or a save file), you must either use a Steamworks API for text entry to open the on-screen keyboard for players using a controller, or have your own built-in entry that allows users to enter text in their language using only a controller.
[ ] Text Input: We strongly recommend (and require for Verified on Deck badging) that games automatically display an on-screen keyboard when requiring the user to input text. We recommend using one of the two Steamworks SDK on-screen keyboard APIs, depending on your use case: ShowFloatingGamepadTextInput (sends direct key inputs) and ShowGamepadTextInput (callback-based).
[ ] Gyro/Trackpad Friendliness: We recommend that games with support for both mouse-style (1:1 movement) and joystick-style camera movement cleanly support both at the same time. We recommend allowing mouse events to affect the camera as they normally would without perturbing simultaneous controller functionality, and only switching to mouse/keyboard mode if a mouse click event is received. Common problems include joystick input getting locked out when mouse camera is used and vice versa, controller buttons not working when mouse camera is being used, on-screen button prompts changing between controller and keyboard/mouse icons, all of which make it more difficult for customers to play with their preferred control scheme. (Note: this functionality is automatic when using the Steam Input API.)
Display
[x] resolution support: the game must run at a resolution supported by Steam Deck. (Recommendations: Whenever possible, we recommend you support the Deck's native resolutions of 1280x800 (preferred) or 1280x720.)
eda6784
[x] default configuration: the game must ship with a default configuration on Deck that results in a playable framerate.
[x] text legibility: interface text must be easily readable at a distance of 12 inches/30 cm from the screen. In other words, the smallest on-screen font character should never fall below 9 pixels in height at 1280x800. (Recommendations: We expect Steam Deck will be used in a wide variety of lighting and physical configurations, such as being connected to a TV, monitor or keyboard. We recommend supporting user-configurable text size and, when possible, contrast. While 9px is the absolute minimum text size for approval, we recommend aiming for 12px whenever possible.)
Seamlessness
[X] no device compatibility warnings: the app must not present the user with information that the Deck software (ie., specific Linux distribution) or hardware (ie., GPU) is unsupported.
[x] launchers: for games with launchers, those launchers also must meet the requirements listed here, including full navigability with a controller. (Recommendations: We recommend strongly against requiring the user to navigate a launcher to play your game.)N/A: no launcher!
Graphics
[ ] Vulkan API: We recommend targeting Vulkan as your primary graphics API for best performance and battery life. If you use an engine like Unity or Unreal, enabling Vulkan in your build for all users will result in the highest performance/longevity. (Note: Proton includes a DirectX-to-Vulkan translation layer. If your game or engine has high-quality DirectX support but no Vulkan support, it's likely that this automated translation layer will exceed the performance of doing a custom Vulkan implementation.)
[ ] Video/Audio Codecs: We recommend using standalone codecs (eg., VP9 or AV1) rather than codecs that are tied to a specific vendor (eg., WMF).
Game Features
[ ] Clouded Saves: For games that allow saving, we recommend enabling automatic clouding of saved games: users should be able to save their game on a Deck and resume on a different PC, and vice versa, without manually transferring files. This means that games should provide a form of cloud save via either Steam Cloud or an automatic third-party service such as a game- or publisher-specific account with server-side save files. We highly recommend using Steam Cloud for automatic transfers. We recommend against syncing game configuration settings, ie., display resolution, between different devices.
[x] Offline Mode: We strongly recommend all singleplayer content is accessible without an Internet connection. You can test your game without any online connectivity, including the first run on a new Steam account. This feature is especially valuable for Deck customers, who may have more sporadic network access than a standard gaming PC.
[x] Launchers: We recommend putting all required functionality into your game client rather than requiring users to navigate a launcher before running your game. Launchers often rely on platform-specific frameworks (ie., .NET, WPF, etc.) that can turn into difficult experiences for customers on a small screen using a controller for navigation. When native UI launchers are required, you can use the SetGameLauncherMode API to automatically translate controller input to keyboard/mouse events to assist the user.N/A: no launcher!
Input
Display
Seamlessness
launchers: for games with launchers, those launchers also must meet the requirements listed here, including full navigability with a controller. (Recommendations: We recommend strongly against requiring the user to navigate a launcher to play your game.)N/A: no launcher!Graphics
Game Features
Launchers: We recommend putting all required functionality into your game client rather than requiring users to navigate a launcher before running your game. Launchers often rely on platform-specific frameworks (ie., .NET, WPF, etc.) that can turn into difficult experiences for customers on a small screen using a controller for navigation. When native UI launchers are required, you can use the SetGameLauncherMode API to automatically translate controller input to keyboard/mouse events to assist the user.N/A: no launcher!source:
https://partner.steamgames.com/doc/steamdeck/compat https://partner.steamgames.com/doc/steamdeck/recommendations