Steamworks Documentation
Developing for Steam Deck
There are a few things you can do right now to make your game better on Steam Deck, without a developer kit.

Input

  1. If your game is controller-enabled, plug a controller into your computer, and play your game from startup. Take note when there are moments where you have to reach for your keyboard or mouse (launchers, for instance).
  2. If your game is not controller-enabled, look into setting a Steam Input default configuration with an intuitive control scheme.
  3. Use ISteamUtils::ShowGamepadTextInput() for in-game text fields.
  4. If your game has support for both mouse-style (1:1 movement without filtering) and joystick-style camera movement, making sure they can work at the same time will provide a better experience for trackpad and gyro users. 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. 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.
  5. Fully integrate with the Steam Input API for best results.

Proton Compatibility and Performance

  1. Learn about common Proton compatibility issues here. This document also details how to use a Linux system as a proxy for a Deck developer kit to test Proton compatibility.
  2. We recommend targeting Vulkan as your primary graphics API for best performance and battery life. If you use an engine like Unity or Unreal, enable Vulkan in your build for all users, and report any performance or functional differences from the DirectX version to your engine vendor. Doing this work is not typically worth it if Vulkan would be a secondary path with lower performance, as Proton DirectX translation performance is likely to exceed untranslated Vulkan in this case.

Steam Integration

  1. Support Steam Cloud. This feature will allow players to start a game on their PC and continue it seamlessly on Steam Deck - or vice versa.
  2. Support Offline Mode: test your game without any online connectivity, including first run on a new Steam account.