Documentación de Steamworks
Primeros pasos para desarrolladores

Introducción


La API de Steam Input está diseñada para permitirte habilitar fácilmente el soporte completo para los dispositivos de Steam Input en tu juego. Por "soporte completo" entendemos lo siguiente:

  • Tu juego usa los glifos específicos del mando cuando muestra indicaciones de entrada en el juego.
  • La pantalla del configurador de Steam Input utiliza acciones dentro del juego que el jugador realiza en tu juego, en lugar de usar teclas o botones.
  • Has publicado una configuración oficial para los mandos compatibles con tu juego.
  • Tu juego no limita la capacidad del usuario de personalizar sus controles. Esto significa que admite cualquier combinación de entrada simultánea de ratón, teclado y mando.
  • Cuando tu juego requiere una entrada de teclado (p. ej., al poner nombre a los avatares), utilizas la API para abrir automáticamente la IU de entrada de texto.
  • El juego no tiene ningún lanzador que requiera entrada de ratón o teclado; o mejor aún, no tiene ningún lanzador.

Además, para que los usuarios tengan una buena experiencia desde el sofá, recomendamos lo siguiente:

  • La IU debe poder leerse desde varios metros de distancia. Como regla general, si el juego se ejecuta a 1920 x 1080, los tipos de letra deben tener un tamaño mínimo de 24 px.
  • Inicia el juego en pantalla completa de forma predeterminada cuando el usuario esté ejecutando Big Picture de Steam (se establecerá la variable de entorno "SteamTenfoot")
  • Lo ideal sería detectar la resolución de pantalla del usuario en el primer lanzamiento y establecer la resolución del juego en consonancia.

Casos de uso común

Estoy añadiendo soporte de entrada de la API de Steam antes de enviar el juego


¡Genial! Sigue las instrucciones técnicas que aparecen en Implementación de la compatibilidad con la API de Steam Input.

Estoy añadiendo la compatibilidad con la API de Steam Input junto con otras bibliotecas de entrada


Es perfectamente aceptable sacar al mercado una entrada de gamepad convencional además de la de Steam Input, y si estás agregando compatibilidad con la API de Steam Input después del lanzamiento inicial, o si estás lanzando tu juego en varias plataformas, podrías encontrarte fácilmente en esta situación. Hay algunas cosas que debes tener en cuenta:

1. Sé prudente con tus elecciones de acción analógica.
Más adelante entraremos en más detalles sobre este tema, pero el resumen rápido es:
  • Deberías incluir siempre una acción tipo ratón para mandos de cursor o de cámara de precisión. Puede ser aceptable omitir la entrada tipo ratón en títulos de Twin Stick o Deportes en los que la posición del joystick se usa para apuntar direccionalmente.
  • Evita usar el ratón del sistema (opción "os_mouse") a menos que tengas una buena razón para necesitarlo. Ser capaz de determinar si la entrada proviene de un ratón real frente a un mando es una parte importante de las buenas prácticas en la experiencia de usuario (UX).
  • Deberías confiar ya sea en el configurador para proporcionar sensibilidad (es decir, no filtrar los datos entrantes de Steam Input), o usar una opción de sensibilidad dedicada para la entrada de Steam que es distinta del ratón del sistema.

2. Sé consistente con el autoapuntado en los joysticks.
Si tienes algún autoapuntado o asistente de apuntado aplicado a los joysticks analógicos XInput, considera aplicar eso también a los dispositivos de entrada de Steam, al menos para los modelos de mandos tradicionales configurados a través de Steam Input. Puedes llamar a GetInputTypeForHandle para determinar el tipo de modelo de un mando particular o implementar acciones de cámara de estilo ratón y estilo joystick separadas.

3. Utiliza SDL versión 2.0.8 o superior, si es posible.
Si estás usando SDL (Simple DirectMedia Layer), una de las bibliotecas de juegos multiplataforma más populares para gestionar cosas como entrada, asegúrate de utilizar la última versión, o al menos la versión 2.0.8 o superior. Esta versión le permite a Steam decirle a SDL que ignore la entrada para los mandos configurados por Steam Input, lo que evita errores de doble entrada.

4. Ten un plan para los mandos Xbox.
Si ya has lanzado tu juego y tiene compatibilidad con XInput que no vas a modificar, puede que te interese dejar los mandos de Xbox en la ruta de XInput de manera predeterminada. Si tienes un juego multijugador local, asegúrate de que puedas aceptar entradas de ambas rutas al mismo tiempo o de incluir todos los mandos en Steam Input.

Quiero que mis juegos que no utilizan la API de Steam Input funcionen bien con Steam Input


En primer lugar, recomendamos encarecidamente leer a Zach Burke en The Five Golden Rules of Input.

En resumen, son estas:

  1. Los iconos en pantalla deben coincidir con el dispositivo de entrada
  2. El cursor del ratón debe coincidir con el dispositivo de entrada
  3. Todos los dispositivos deberían funcionar el 100% del tiempo
  4. Dpad, joystick analógico y el ratón pueden usarse para navegar por los menús
  5. Un gamepad desconectado debe pausar el juego

Si puedes, estas son buenas pautas generales a seguir. Para añadir nuestro propio énfasis:

La entrada del gamepad y del ratón deben ser posibles simultáneamente

La mayoría de los juegos permiten la entrada del ratón o la entrada del gamepad, pero no ambas al mismo tiempo, y esta es la causa principal de los problemas de compatibilidad con el sistema de Steam Input.

Además:

  1. Establece una configuración de mando recomendada para todos los tipos de mando.
    De esta manera, Steam no tiene que pedirle al usuario que seleccione una configuración en el inicio. Por cierto, no es necesario que proporciones una configuración para los controladores de Xbox 360 y Xbox One; si solo proporcionas uno, funcionará para el otro modelo.
  2. Tipo de mando de uso opcional sin compatibilidad nativa para el soporte de Steam Input.
    Si no proporcionas soporte integrado para este tipo de mandos, puedes usar el sitio de asociados para que acepten usar Steam Input. Ver más detalles en la parte inferior de esta sección.
  3. Si no vas a permitir un gamepad/ratón simultáneo...
    al menos haz que la zona muerta, la aceleración y la sensibilidad del joystick sean configurables. La emulación del joystick para el trackpad funciona moviendo rápidamente el joystick virtual por lo que es bastante sensible a esta configuración. Para obtener buenos resultados, debes permitir sensibilidades muy altas, zonas muertas que van a 0 y una curva de aceleración lineal. La configuración del mando en Shadow of War es un buen ejemplo de esto.
  4. Permite a los usuarios seleccionar glifos de Xbox o PS4 a través del menú o detectar el tipo de dispositivo a través de nuestra API.
    Cuando Steam envíe entradas de gamepad estas aparecerán en tu juego como entradas de mando de Xbox regular, en lugar de las del dispositivo normal. Esto resulta útil, ya que permite al jugador utilizar dispositivos que normalmente no funcionarían, pero también quiere decir que la verificación normal del id. del dispositivo USB, etc., no funcionará y deberás llamar a una función auxiliar de Steam. Aquí es importante tener en cuenta que aun los mandos para los que has incluido soporte podrían aparecer en tu juego a través de Steam Input, ya sea, debido a que el usuario está retransmitiendo el juego a través de Steam Remote Play o debido a que el usuario optó por Steam Input para reconfigurar sus dispositivos.

Puedes leer más sobre el tema en la página Emulación de gamepad de Steam Input - Mejores prácticas.

Entrada de texto


La entrada de texto en pantalla no es técnicamente parte de ISteamInput, sino que se encuentra en ISteamUtils.

Algunas referencias rápidas:

Estos te pueden resultar útiles independientemente de si de alguna manera estás utilizando Steam Input.

Implementación de la compatibilidad con la API de Steam Input


El proceso de implementación es sencillo y apenas debería necesitar más de unos días de trabajo. Requiere cuatro pasos:

  1. En un editor de texto, crea un archivo de acciones que informe a Steam de las acciones del juego que los usuarios pueden vincular al mando.
  2. En Steam, utiliza la interfaz del configurador de Steam Input para crear tu configuración predeterminada.
  3. En el juego, utiliza la API de Steam Input para leer las acciones del mando y recuperar los glifos que se deben mostrar.
  4. Actualiza el repositorio del juego con los nuevos binarios y publica tu configuración como la oficial.

Paso 1: Crear un archivo de acciones en el juego


Empieza descargando el archivo (IGA) de acciones dentro del juego. Ponlo en tu directorio "<Steam Install Directory>\controller_config" (crea el directorio si no existe). Cambia el nombre del archivo a lo siguiente: "game_actions_X.vdf", donde X es el id. de aplicación de tu juego en Steam. Si no conoces el id. de aplicación de Steam de tu juego, puedes encontrarlo iniciando sesión en tu sitio de asociado de Steam.

A continuación abre el archivo en tu editor de texto favorito. El archivo está en un formato estándar de Valve llamado KeyValues, que es sencillo y fácil de leer. Te puede resultar útil descargar una de nuestras plantillas de archivos para acciones dentro del juego o el archivo IGA de Portal 2 como referencia.

Para más detalles consulta el archivo de acciones dentro del juego.

Formato de archivo


Los archivos IGA contienen una sección de "acciones" que debería enumerar todos los sets de acciones (IGAS) del juego. Un IGAS describe todas las acciones que puede realizar un jugador en un contexto determinado del juego, como cuando está en un vehículo, cuando va a pie o cuando se desplaza por el sistema de menús. La interfaz de configuración de Steam Input proporciona una pestaña para cada IGAS que permite al jugador personalizar la forma en que se vinculan esas acciones al mando.

Una entrada IGAS en el archivo IGA debe incluir una clave y valor para el "título" y las subsecciones siguientes: "StickPadGyro", "AnalogTrigger" y "Button". Las secciones "StickPadGyro" y "AnalogTrigger" contienen listas de IGA que el jugador puede asignar, respectivamente, al joystick/pad/giroscopio y a los gatillos analógicos. La sección "Buttons" contiene IGA que solo pueden vincularse a entradas digitales (como los botones ABXY físicos, un panel táctil en modo ABXY o un gatillo que no se use para una acción AnalogTrigger).

Diseño de tu IGA

Tómate unos minutos para pensar en la funcionalidad de tu juego: ¿cuántos modos distintos hay en él? Vas a tener que crear un set de acciones para cada sitio donde quieres tener mandos separados. La mayor parte de los juegos tendrán al menos un set de acciones único para el "menú" y para las "acciones dentro del juego", pero otros juegos necesitarán más sets. Si tu juego tiene casos especiales como manejar un vehículo o incluye menús especializados dentro del juego, como un mapa o una pantalla de inventario, también para esos casos sería útil crear grupos de acciones.

No todo necesita un grupo de acciones específico, también puedes utilizar capas de grupos de acciones para manejar modos similares. Por ejemplo, si puedes manejar tanto un coche como un barco en tu juego, podrías incluir un grupo de acciones para el "vehículo" con una capa encima de un grupo de acciones para el "barco" y el "coche". Las capas de sets de acciones conservan la configuración del grupo de acciones superiores, y pueden hacer más sencillo entender y modificar las configuraciones, tanto para el equipo de desarrollo como para tus usuarios.

Para obtener más información sobre las capas de sets de acciones, consulta: Capas de set de acción

Límites en el número de acciones

Actualmente el número máximo de acciones es 16 acciones digitales y 128 acciones analógicas. Es muy importante tener en cuenta qué acciones pueden ser compartidas entre grupos de acciones, ya que en la mayoría de los casos solo se necesita una fracción de la cantidad máxima de acciones. Este límite no es inamovible, así que si tienes una buena razón para tener más, por favor, comunícanoslo.

Acciones de "Button"


El formato de las acciones de "Button" es el siguiente:

"<action name>" "#<localization key>"

El nombre interno de tu juego cuando hablas con la API de Steam Input es <action name>. <localization key> tiene que ser el nombre de una entrada en tu sección de localización (consulta: Añadir localización). Asegúrate de incluir el carácter "#" al principio de la clave de localización.

Acciones de AnalogTrigger


El formato de las acciones de "AnalogTrigger" es el mismo que el de "Botón". Las acciones de "AnalogTrigger" deben ser acciones que el juego interprete como entradas analógicas completas, como la aceleración de un vehículo. Si no posees entradas de ese tipo, deja la sección en blanco. La interfaz de usuario del configurador de Steam Input permitirá a los jugadores asignar cualquier "Button" de acción a los gatillos físicos si no se están utilizando como una acción de "AnalogTrigger".

Acciones de StickPadGyro


El formato para las acciones de "StickPadGyro" es el siguiente:

"<action name>" { "title" "#<localization key>" "input_mode" "<analog mode>" }

<action name> y <localization key> son las mismas que las claves correspondientes en el formato "Button". <analog mode> nos dice cómo interpretar los datos provenientes de los controles físicos, antes de pasarlos a tu juego a través de la API de Steam Input.

Los <analog modes> válidos son los siguientes:

  • "absolute_mouse": para cuando esperas que la acción se comporte como un ratón. Es útil para cámara en primera o tercera persona, o para el cursor de un ratón real.
  • "joystick_move": para cuando estás usando la acción para mover un personaje.

"absolute_mouse" vs. "joystick_move"

Toda insistencia es poca en nuestra recomendación de que, cuando se cree una entrada de cámara para tu juego en primera o tercera personas o para cualquier cosa que dependa del movimiento de un cursor, deberá usarse siempre el tipo "absolute_mouse" y reaccionar a los deltas como si se tratase de un ratón, ya que los datos 1:1 se requieren para implementar puntería de Gyro o entradas de trackpad de buena calidad. Steam Input puede convertir la entrada del joystick de los gamepads en entrada tipo "absolute_mouse" para ti, pero debido a las curvas de aceleración y las zonas muertas aplicadas en el juego, no es posible hacer la conversión en sentido contrario.

Es correcto incluir una acción tipo "joystick_move" si deseas una paridad exacta para la puntería del joystick con las compilaciones de tu consola, pero, por favor, verifica que se pueda aceptar entradas tanto de "absolute_mouse" como de "joystick_move" al mismo tiempo, de manera que los mandos de Playstation y Switch puedan usar puntería de Gyro junto con el joystick. También podrías desear implementar una acción digital para "Reset Camera" para recentrar la posición vertical de la cámara. Si tienes activada la puntería automática para los mandos XInput, aplica la misma lógica a la entrada de joystick a través de la API de Steam Input y considera la posibilidad de aplicar un grado más ligero de puntería automática al apuntado con trackpad/giroscopio.

Hay una configuración opcional para las acciones de StickPadGyro que utilizan "absolute_mouse" como su entrada. Si configuras la tecla "os_mouse" en "1", pasaremos la entrada del jugador al SO así como a tu juego. Esto es útil si se tiene un cursor de ratón de SO visible que debería ser controlado por esta acción.

Por ejemplo:

"menu_mouse" { "title" "#Menu_Mouse_Title" "input_mode" "absolute_mouse" "os_mouse" "1" }

Advertencia

  1. Desaconsejamos enérgicamente el uso de la opción "os_mouse" para los controles de cámara. Si es difícil parchear partes específicas de tu juego, recuerda que siempre puedes tener acciones analógicas separadas que se usan solo en el menú vs. los juegos de acción.
  2. Utilizando "os_mouse" harás que las entradas de tu mando estén controladas por las sensibilidades del ratón en el juego y solo funcionarán para un solo jugador local.

Paso 1.1: Agregar la localización


La sección de "localization" del archivo IGA contiene una lista de idiomas, cada uno de los cuales es una sección que contiene claves y valores de localización. Por ejemplo:

"localization" { "english" { "Action_Jump" "Jump" "Action_Camera" "Camera" } "spanish" { "Action_Jump" "Saltar" "Action_Camera" "Cámara" } }

Las acciones en el archivo IGA deberán especificar entonces sus nombres refiriéndose a la clave de localización deseada, precedida del carácter "#". He aquí acciones de ejemplo que usan las claves de localización anteriores:

"StickPadGyro" { "Camera" { "title" "#Action_Camera" "input_mode" "absolute_mouse" } } "Button" { "Jump" "#Action_Jump" }

Si el idioma en el que opera el juego no se encuentra en la sección de localización, se usará el inglés por defecto. Si no se encuentra el inglés, la cadena se mostrará tal cual es. Para más información sobre los idiomas disponibles, consulta Idiomas oficiales.

Paso 1.2: Títulos y descripciones


Las configuraciones también necesitan un título y una descripción localizados. Si solo estás desarrollando una configuración única oficial para tu juego, no necesitas preocuparte de esto: suministraremos un título y una descripción por defecto, y puedes omitir este paso por completo. Pero si deseas tener varias configuraciones oficiales para tu juego, también tendrás que suministrar títulos y descripciones localizados para estas.

Los títulos y las descripciones de configuraciones deberán aparecer con las demás claves de localización. La clave del título debe comenzar con "Title_" y la clave de la descripción, con "Description_". Por ejemplo:

"localization" { "english" { "Title_Config1" "Official Configuration" "Description_Config1" "This config was created by the developers of Game X." "Title_Config2" "Official Southpaw Configuration" "Description_Config2" "This config was created by the developers of Game X, and is setup for Southpaw users." "Action_Jump" "Jump" "Action_Camera" "Camera" } }

Cuando publicas una configuración (véase Paso 4: Publicar), podrás elegir cuáles de estos títulos y descripciones traducidos quieres usar.

Paso 2: Crear una configuración predeterminada


Una vez que hayas creado el archivo IGA y compruebes que está en el directorio apropiado y que el nombre del archivo coincide con el id. de aplicación de tu juego, puedes empezar a crear una configuración.

Ejecuta Steam en modo Big Picture y accede a la página de información del juego.

Selecciona "Manage Game" y después "Configure Controller". Si aparecen errores en este punto, quiere decir que existen problemas en el archivo IGA que deberías solucionar. El error más común es que falte un símbolo de comillas o una llave de cierre.

Si no recibes errores, tendrás delante una configuración de mando vacía para tu juego, que debería ser capaz de reconocer todas las acciones del juego. Usa la interfaz para crear una configuración predeterminada. Asegúrate de establecer valores predeterminados para todos los grupos de acciones del juego, no solo el primero.

Una vez tengas una configuración, guárdala de forma privada. No la publiques, ya que el juego no está listo aún para recibir archivos IGA.

Paso 3: La API de Steam Input


Asegúrate de que tienes la última versión de la API de Steamworks. Consíguela en la página Primeros pasos.

Steam Input proporciona asignaciones para los mandos específicas por aplicación para decidir qué asignación ejecutar, y Steam hace un seguimiento de la ventana en primer plano. Esto puede complicar la depuración del mando mientras trabajas en él, ya que cambiará su configuración cuando se active un punto de interrupción en el depurador. Hay dos maneras de hacer que Steam quede fijado a la ventana para la depuración. Puedes ejecutar el siguiente URL de Steam:
steam://forceinputappid/<your_game's_AppID or 0 to reset to normal operation>

o añadir los siguientes parámetros de línea de comandos a tu acceso directo de Steam:
-forcecontrollerappid <id. de aplicación del juego>

NOTA:

Con "Steam shortcut" queremos decir un atajo al cliente en sí de Steam. Los parámetros de la línea de comando necesitan pasarse al cliente de Steam, no a tu juego.

También puedes descargar los glifos oficiales del Steam Controller o su fuente PSD. Esto es necesario únicamente si quieres usarlos como punto de partida para tu propio diseño. De lo contrario, puedes simplemente usar la API para obtener una ruta de archivo directa al diseño apropiado para cualquier entrada de mando (los archivos de imagen van incluidos en el propio cliente de Steam).

Paso 3.1: Resumen de la API


La API de Steam Input está diseñada en torno a las acciones del juego y a los sets que especificas en el archivo de acciones del juego en el paso 1.

Para una referencia completa de la API, consulta el artículo Interfaz ISteamInput.

El resumen de la funcionalidad es el siguiente:

Interfaces seguras

Se recopilan datos de los mandos cuando se llama a ISteamInput::RunFrame. Esto te lo hace normalmente SteamAPI_RunCallbacks cada fotograma. No obstante, si tienes activadas las interfaces seguras y notas que no obtienes buenos datos de sondeo, tendrás que llamar a ISteamInput::RunFrame cada fotograma.

Sabrás que tienes activadas las interfaces seguras si en tu código aparece este #define:
VERSION_SAFE_STEAM_API_INTERFACES

Paso 3.2: Gestión de entradas


Para las acciones digitales, los datos devueltos por ISteamInput::GetDigitalActionData son simples:

bState: Será "true" si la acción la envía el mando (botón pulsado, gatillo pulsado, etc.).

Para las acciones analógicas, los datos devueltos por ISteamInput::GetAnalogActionData son solo un poco más complejos:

x,y: Dependerán del modo al que hayas asignado la acción de juego en tu archivo IGA. - "absolute_mouse": x e y serán los deltas desde la posición anterior del ratón. - "joystick_move": x e y serán valores entre -1 y 1 que representarán la posición actual del joystick.

Asegúrate de que tu código no impide al usuario combinar distintos tipos de entradas de forma simultánea. Un error común que hemos visto es que los juegos comienzan a ignorar la entrada del gamepad cuando ven un ratón y un teclado, o viceversa.

Paso 3.3: Glifos en pantalla

Para mostrar un aviso en pantalla para tu mando, es necesario obtener los orígenes físicos que estén ligados a una acción del juego. El jugador puede haber asignado más de un origen físico para la misma acción, de modo que es mejor que tu interfaz recorra y muestre todos los orígenes. ISteamInput::GetDigitalActionOrigins y ISteamInput::GetAnalogActionOrigins devolverán el cómputo de orígenes de la acción especificada y rellenarán la matriz originsOut que se ha pasado.

Para cada origen, puedes utilizar la enumeración ISteamInput::EControllerActionOrigin para reasignar el origen a la imagen correspondiente. Cuando llames a esta función con una enumeración de origen, devolverá una ruta local a un archivo .png o .svg para el glifo del mando correspondiente dentro de la lista oficial de imágenes de Valve (situada en la carpeta de instalación del cliente de Steam). Este método es compatible con todos los dispositivos de hardware reconocidos por Steam Input, de modo que un mando de PlayStation mostrará los botones de PlayStation, un mando de Xbox mostrará los botones de Xbox, etc. Es más, el método será válido en el futuro: cuando Valve añada soporte para hardware nuevo, esta función obtendrá automáticamente glifos actualizados sin que necesites volver a compilar tu juego con los nuevos recursos de glifos.

Puedes proporcionar tus propias imágenes para los glifos del mando, pero te recomendamos encarecidamente que te asegures de que funcionarán a largo plazo, pues Steam Input está añadiendo continuamente compatibilidad con dispositivos nuevos y lo único que impedirá que funcionen correctamente con tu juego es tener imágenes de glifos en blanco o con errores. Puedes hacer una de estas dos cosas:

Sondeos continuos

Ten en cuenta que el usuario puede cambiar su configuración en cualquier momento. Para ayudarte con esto, nos hemos asegurado de que llamar a las funciones ISteamInput::GetDigitalActionOrigins y ISteamInput::GetAnalogActionOrigins sea extremadamente barato.

Cuando se muestra un aviso en pantalla, no han de almacenarse en la caché los orígenes y seguir mostrando los primeros resultados. En vez de eso, recomendamos que se reúnan los orígenes para cada fotograma y se muestren los avisos correspondientes. De esa forma, si un usuario decide cambiar su configuración tras ver el aviso, al regresar a la pantalla de configuración, los avisos se actualizarán automáticamente para coincidir con los nuevos orígenes.

Paso 4: Publicar


Una vez que funcione con el mando, tu juego está listo para publicarse. Tendrás que lanzar la nueva actualización del juego y convertir tu configuración en la oficial. Las configuraciones oficiales se cargan automáticamente cuando un jugador inicia el juego por primera vez. Esto permite a los usuarios simplemente iniciar el juego y jugar sin necesidad de entrar en la pantalla de configuración.

Este es el proceso recomendado:

Paso 4.1: Actualiza tu juego

  • Actualiza tu repositorio de Steam con la nueva versión del juego.

Paso 4.2: Publica tu configuración

  • Ejecuta Steam en modo Big Picture y accede a la configuración predeterminada que creaste en la configuración del mando.
  • Pulsa el botón (Y) o haz clic en el botón "Guardar como" en la parte de abajo de la pantalla.
  • Selecciona el título y la descripción traducidos que desees en el menú emergente, cambia el perfil a PÚBLICO y haz clic en el botón PUBLICAR.
  • Recibirás una confirmación y el id. de archivo de la configuración pública. Copia y guarda el id.

Paso 4.3: Haz oficial la configuración

  • Abre la página del juego en el sitio web de asociados de Steamworks.
  • Selecciona "Steam Input" en la pestaña "Aplicación".

    steamworks_steam_input.png

  • Desplázate a la sección llamada "Plantilla de Steam Input". Selecciona la opción "Configuración personalizada" en el desplegable. Si no tenías intención de añadir soporte nativo y solo querías seleccionar las opciones preestablecidas del modo clásico, aquí es donde deberías hacerlo.

    steamworks_steam_input_custom_config.png

    Y en la selección de abajo, elige "Añadir configuración personalizada."

    steamworks_steam_controller_custom2.png

  • Pega el id. del archivo con tu configuración pública en el cuadro y haz clic en el botón Aceptar.

    steamworks_steam_controller_custom3.png

  • Publica los cambios de tu aplicación en el sitio para asociados como siempre.

Si lo deseas, también puedes especificar varias configuraciones oficiales para tu juego. Tal vez quieras crear un modo oficial "Southpaw" (para zurdos), por ejemplo.

Para ello, simplemente crea múltiples configuraciones y publícalas como se describe en el paso 4.2. Luego, en el paso 4.3, pega todos los ids. de los archivos de tus configuraciones en el cuadro, separados por comas (,). La primera configuración de la lista se considerará como la de mayor prioridad y se elegirá por defecto para los jugadores nuevos. No te olvides de crear títulos y descripciones para cada una de ellas.

Cuando se hayan publicado tus configuraciones oficiales, aparecerán en la sección de "Configuración personalizada&quot:

steamworks_steam_input_branch_settings.png

Para cada configuración, puedes obtener un enlace directo, ver para qué tipo de mando es, controlar en qué ramas beta está disponible o eliminarla por completo. Si creas una nueva configuración oficial, puedes utilizar las funciones eliminar y añadir de esta sección para reemplazar una existente.

Incorporación de mandos a Steam Input


A continuación, deberías establecer el tipo de mandos que usa Steam Input; si estás usando la API de Steam Input tendrías que asegurarte de marcar la opción "Cualquier dispositivo futuro" para asegurarte de que los nuevos mandos funcionen de forma predeterminada sin que tengas que ajustar la configuración una vez que el soporte se lance en Steam.

steamworks_steam_input_optin_settings.png

Al marcar estas casillas, esos tipos de mandos utilizarán Steam Input en lugar de sus protocolos de entrada estándar del gamepad.

Actualización de las configuraciones oficiales

Hay dos formas de actualizar tu configuración.
  1. Para realizar un cambio importante, como agregar/eliminar un nuevo conjunto de acciones o agregar acciones que deben vincularse, carga una nueva configuración para cada tipo de mando compatible y elimina la configuración anterior. También debes ir al navegador de configuración de Steam Input con la cuenta usada para crear la configuración y marcarla como eliminada haciendo clic en:

    steamworks_remove_community_config.png
  2. Para hacer cambios opcionales, como añadir un nuevo idioma en la localización de nombres de acciones o para añadir una acción nueva opcional que no necesita estar asignada a cada configuración, carga una nueva configuración individual y usa la casilla "Usar bloque de acciones" para asegurarte de que el bloque de acciones de esa configuración se usa de forma preferente en las ramas seleccionadas.

    steamworks_steam_input_use_action_block.png

Consejos

Acciones de menú dedicadas

Recomendamos crear un set de acciones independiente dentro del juego para los controles del menú, en lugar de simplemente reutilizar las acciones del set principal del juego. La mayoría de los usuarios no necesitarán modificar este set de controles del menú, pero es una forma sencilla de ofrecer esta posibilidad a los jugadores que realmente la necesiten (por ejemplo, en el caso de jugadores con alguna discapacidad).

Iconos personalizados

El sistema de Steam Input también puede crear varios estilos de menús en pantalla. Al poner tus propios iconos .png en <your base game directory>/TouchMenuIcons/*.png, se mostrarán primero en la lista para los menús radiales o táctiles del juego. Esto te permitirá configurar tus propios menús radiales o táctiles con iconos vinculados a acciones específicas sin tener que crear código para el juego o la interfaz. Como desarrollador, quizá te interese hacer esto incluso si no tienes ningún menú radial o táctil en tu propia configuración por defecto. Dado que cualquier configuración modificada por el usuario también tendrá acceso a ellos, los usuarios podrán crear menús visualmente coherentes empleando tus iconos oficiales.