Documentación de Steamworks
Preparando tu juego para Steam Deck
A pesar de ser en esencia un PC, Steam Deck ofrece un factor de forma nuevo y un conjunto de expectativas adicionales para los clientes. Además de los criterios utilizados para el proceso de revisión de compatibilidad con Steam Deck, tenemos algunas recomendaciones adicionales que detallamos a continuación.

Las recomendaciones descritas en esta página no influyen en las insignias de compatibilidad de los juegos. El objetivo de todas estas recomendaciones es cumplir las expectativas de entrada y visualización de los clientes para mejorar el rendimiento y la duración de la batería, y aprovechar al máximo las nuevas oportunidades que ofrece Deck.

Estas recomendaciones son principalmente útiles para los clientes de Deck, pero también pueden serlo para los jugadores de PC en general, muchos de los cuales solo juegan con mandos/controles, en la sala de estar, etc.
SDK de Steamworks: muchas de las API recomendadas en esta página se añadieron en la versión 1.52 del SDK de Steamworks, publicada el 14 de septiembre de 2021.

Entrada

  • Configuración predeterminada de mandos/controles: recomendamos encarecidamente que todas las funciones del juego estén habilitadas en la configuración predeterminada de los mandos/controles del juego (lo cual es obligatorio para obtener la insignia Verificado en Deck). En el caso de los juegos que no sean compatibles con mandos/controles de forma nativa, recomendamos crear una configuración para asignar las entradas del ratón/mouse y el teclado correspondientes. Mejor aún si implementas compatibilidad nativa con Steam Input o gamepad, porque tendrán acceso a tu juego muchos más clientes.
  • Entrada de texto: recomendamos encarecidamente que los juegos muestren un teclado en pantalla de forma automática cuando los usuarios necesiten introducir texto (lo cual es obligatorio para obtener la insignia Verificado en Deck). Puedes utilizar una de las dos API de teclado en pantalla del SDK de Steamworks en función a cada caso: ShowFloatingGamepadTextInput (entrada directa de pulsaciones en el teclado) y ShowGamepadTextInput (basada en funciones callback).
  • Compatibilidad con giroscopio y trackpad: los juegos que admitan movimiento de la cámara tanto de estilo ratón/mouse (movimiento 1:1) como de estilo joystick deberían ser compatibles con ambos tipos al mismo tiempo sin dificultades. Es aconsejable permitir que los eventos del ratón/mouse afecten a la cámara como lo harían normalmente sin perjudicar a la funcionalidad simultánea del mando/control, y solo cambiar el modo de ratón/mouse y teclado si se recibe un evento de clic del ratón/mouse. Los problemas más comunes que dificultan el uso de los esquemas de control preferidos por los clientes son que la entrada del joystick se bloquee cuando se controla la cámara con el ratón/mouse y viceversa, que los botones del mando/control no funcionen cuando se controla la cámara con el ratón/mouse, y que las indicaciones de los botones en pantalla cambien entre los iconos de mando/control y los de teclado y ratón/mouse. (Nota: Esta funcionalidad es automática al utilizar la API de Steam Input.)

Gráficos

  • API Vulkan: recomendamos que intentes utilizar Vulkan como API de gráficos principal para conseguir el mejor rendimiento y la máxima duración de la batería. Al utilizar un motor como Unity o Unreal, la activación de Vulkan en la compilación para todos los usuarios proporciona la duración y el rendimiento más altos. (Nota: Proton incluye una capa de traducción de DirectX a Vulkan. Si el juego o el motor tienen buena compatibilidad con DirectX pero no con Vulkan, es probable que el rendimiento de esta capa de traducción automatizada sea superior al de una implementación personalizada de Vulkan.)
  • Códecs de audio y vídeo: recomendamos utilizar códecs independientes (por ejemplo, VP9 o AV1), en lugar de códecs vinculados a proveedores específicos (como WMF).

Características del juego

  • Partidas guardadas en Cloud: en los juegos que permiten guardar partidas, es aconsejable habilitar el almacenamiento automático en Cloud para que los usuarios puedan guardar las partidas en Deck y reanudarlas en un PC diferente (o viceversa), sin necesidad de transferir archivos de forma manual. Para ello, los juegos deben proporcionar un método de almacenamiento en la nube a través de Steam Cloud o de un servicio automático de terceros como, por ejemplo, una cuenta de un juego o un distribuidor específico con almacenamiento de archivos en sus servidores. Recomendamos encarecidamente utilizar Steam Cloud para las transferencias automáticas. No es aconsejable sincronizar las preferencias de configuración de los juegos (por ejemplo, la resolución de pantalla) entre varios dispositivos.
  • Modo desconectado: recomendamos encarecidamente que se pueda acceder a todo el contenido de un solo jugador sin conexión a Internet. Puedes probar tus juegos sin conexión a la red, incluyendo la primera ejecución en una cuenta de Steam nueva. Esta función es especialmente importante para los clientes de Deck que pueden tener conexiones a la red más esporádicas que los que juegan en un PC estándar.
  • Lanzadores: es aconsejable incluir todas las funcionalidades necesarias en el cliente de juego, en lugar de hacer que los usuarios se desplacen por un lanzador para ejecutarlo. Los lanzadores suelen depender de marcos de plataformas específicas (por ejemplo, .NET, WPF, etc.) que pueden dificultar la navegación con un mando/control para los clientes con pantallas pequeñas. Si es necesario un lanzador de IU nativo, puedes utilizar la API SetGameLauncherMode para convertir entradas del mando/control en eventos de teclado o ratón/mouse de forma automática y ayudar a los usuarios.