Документация Steamworks
Подготовка игры для Steam Deck
Хотя по сути своей Steam Deck является ПК, он представлен в новом форм-факторе и идёт в комплекте с набором надежд и ожиданий пользователей. Помимо критериев, используемых в процессе проверки на совместимость со Steam Deck, у нас есть ещё несколько рекомендаций, приведённых в этой статье.

Данные рекомендации никак не повлияют на пометки о совместимости вашей игры. Цель этих рекомендаций — соответствовать ожиданиям клиентов в плане ввода и отображения, улучшить производительность, увеличить продолжительность жизни батареи и использовать весь спектр новых возможностей, предоставляемых Steam Deck.

И хотя упомянутые здесь рекомендации чрезвычайно важны для пользователей Deck, они также могут пригодиться игрокам на компьютере, многие из которых играют только с контроллерами, только в своей гостиной и т. д.
SDK Steamworks: Многие API, рекомендованные на этой странице, были добавлены в версию SDK Steamworks 1.52, выпущенную 14 сентября 2021 года.

Элементы ввода

  • Настройки контроллера по умолчанию. Мы настоятельно рекомендуем (и настаиваем в случае с пометкой «Полностью совместима со Steam Deck»), чтобы настройки контроллера по умолчанию обеспечивали доступ ко всем внутриигровым функциям. Если у вашей игры нет встроенной поддержки контроллеров, мы советуем разработать конфигурацию контроллера, чтобы назначить соответствующий клавиатуре и мыши ввод. А ещё лучше внедрить поддержку геймпада или встроенной системы ввода Steam, чтобы представить свою игру совершенно новому кругу пользователей.
  • Ввод текста. Мы настоятельно рекомендуем (и настаиваем в случае с пометкой «Полностью совместима со Steam Deck»), чтобы экранная клавиатура в играх появлялась автоматически, когда пользователю необходимо ввести текст. В зависимости от вашего сценария, мы советуем использовать один из двух API экранной клавиатуры SDK Steamworks:
    ShowFloatingGamepadTextInput (отправляет ввод клавиш напрямую) и ShowGamepadTextInput (на основе обратных вызовов).
  • Поддержка гироскопа и трекпада. Мы советуем обеспечить хорошую одновременную поддержку в играх управления камеры как мышью (перемещение 1 к 1), так и джойстиком. Мы рекомендуем разрешить сигналам мыши влиять на камеру как обычно, позволяя мыши и контроллеру функционировать одновременно, и переключаться на режим мыши/клавиатуры, только если получен сигнал щелчка мышью. Среди частых проблем: блокировка сигналов джойстика при использовании управления камеры с помощью мыши и наоборот; неработающие кнопки контроллера при использовании управления камеры с помощью мыши; переключение визуальных подсказок для кнопок с иконок контроллера на иконки клавиатуры/мыши или наоборот. Всё это осложняет пользователям игру с предпочитаемой ими схемой управления. (Примечание: эта функциональность обеспечивается автоматически при использовании API ввода Steam.)

Графика

  • API Vulkan. Мы рекомендуем ориентироваться на Vulkan как на основной графический API, чтобы улучшить производительность и продлить жизнь батареи. Если используете такие движки как Unity или Unreal, то включение Vulkan в сборку для всех пользователей обеспечит высочайшую производительность/продолжительность. (Примечание: Proton включает в себя слой преобразований DirectX для Vulkan. Если ваша игра или движок обеспечивают высококачественную поддержку DirectX, но не Vulkan, скорее всего, автоматический слой преобразований улучшит производительность больше, чем разработка кастомной реализации Vulkan.)
  • Video/Audio Codecs: We recommend using standalone codecs (eg., VP9 or AV1) rather than codecs that are tied to a specific vendor (eg., WMF).

Функциональность игры

  • Сохранение в облаке. Для игр, которые позволяют сохранение, мы рекомендуем включить автоматическую синхронизацию с облаком. Тогда пользователи смогут сохранить игру на Steam Deck и возобновить игру на другом ПК. И наоборот. Вручную переносить файлы не придётся. Это значит, что в играх должна быть настроена функция облачного сохранения при помощи Steam Cloud или стороннего автоматического сервиса, сохраняющего на сервере специфические для конкретной игры или издателя данные. Мы крайне рекомендуем использование Steam Cloud для автоматической передачи данных. Мы не рекомендуем синхронизацию игровых настроек, например разрешения экрана, между разными устройствами.
  • Автономный режим. Мы настоятельно рекомендуем сделать весь контент одиночных игр доступным без интернета. Проверьте, работает ли игра без соединения с интернетом, в том числе при первом запуске с нового аккаунта Steam. Функция будет особенно актуальна для пользователей Steam Deck, у которых доступ к сети может быть менее стабильным, чем в случае стандартного игрового ПК.
  • Программы запуска. Мы рекомендуем реализовать все функции в клиенте игры, а не ожидать от пользователей, чтобы они управляли программой запуска до старта игры. Программы запуска часто зависят от операционной системы (например, NET, WPF и др.). Это может усложнить запуск игры на маленьком экране с помощью контроллера. Когда требуются встроенные в интерфейс программы для запуска, вы можете использовать API SetGameLauncherMode, чтобы помочь пользователю и автоматически перевести ввод на контроллере в сигналы клавиатуры или мыши.