Jugar a un juego de cartas táctico con mando: así funciona el soporte para mando en Ancient Duel
El soporte para mando suele ser cosa de juegos de movimiento y puntería. Ancient Duel no tiene ni lo uno ni lo otro. Es un juego de cartas: miras el tablero, piensas un rato y luego tomas una única decisión concreta.
Precisamente por eso el mando le sentó tan bien. Cada acción de un duelo se reduce a la misma lista corta. Qué carta. Qué posición. Qué objetivo. Confirmar. Volver. Ese es el vocabulario natural de un mando, y encaja mal con un dispositivo cuyo principal talento es señalar píxeles cualesquiera.
Un mando no debería fingir que es un ratón
El atajo tentador es dejar que el joystick empuje un cursor por la pantalla. Se programa rápido y es desagradable de usar: acabas guiando un puntero sobre tapete vacío, haciendo un trabajo analógico para tomar una decisión digital.
Ancient Duel mueve la selección. El joystick o la cruceta saltan entre cosas que significan algo de verdad (una carta en la mano, una unidad en el campo, un objetivo, un botón, una pestaña) y Confirmar activa lo que esté seleccionado en ese momento. Nunca apuntas. Dices «siguiente carta», «esa», «sí».
Toda la capa de entrada sigue una regla que fijé pronto y nunca rompí: jamás reimplementa una acción del juego. Mueve el foco y deja que el botón que ya estaba ahí haga su trabajo. El juego se podía manejar con teclado desde el trabajo de accesibilidad de abril, así que el soporte para mando no exigió tocar la lógica del juego en absoluto. Y lo contrario también se cumple: lo que no se alcanza con el teclado no se alcanza con el mando. Hacer algo navegable significa convertirlo en una parada del foco, no escribir código de entrada nuevo.
El tablero ya era una cuadrícula
Aquí un juego de cartas ayuda de una forma en que un mundo 3D no lo hace. El campo de batalla de Ancient Duel es una estructura fija y finita: cuatro posiciones de unidad por bando, una casilla de Comandante en el centro, una fila de estrategia, una mano, dos cementerios y una zona de terreno. No hay ningún espacio continuo que recorrer.
Así que la disposición visual puede convertirse sin más en la navegación. Izquierda y derecha avanzan por una fila, arriba y abajo pasan entre la mano y el campo, y los botones superiores saltan zonas enteras de golpe en lugar de recorrer todo lo que hay entre medias. El joystick derecho desplaza la página y Start abre los ajustes del mando.
El foco es el cursor
Con un ratón, el jugador siempre sabe a qué está apuntando, porque es su mano la que apunta. Quita el puntero y la interfaz tiene que responder a tres preguntas en todo momento: qué está seleccionado, qué le hará Confirmar y qué deshará Volver.
Parece obvio, y ahí se fue la mayor parte del trabajo minucioso. Un cuadro de diálogo que se abre con la selección en su botón de cerrar es técnicamente navegable y en la práctica inútil: el juego acaba de preguntarte qué carta quieres descartar y el resaltado está sobre la ✕. Ahora los diálogos se abren en su primera opción real, y los modos de selección de objetivo colocan la selección en el primer objetivo válido en lugar de limitarse a resaltarlos todos, algo que con un puntero iba bien y sin él obligaba a buscar.
Un buen soporte para mando no es aquel en el que se alcanza cada botón. Es aquel en el que dejas de pensar en cómo alcanzarlos.
Nunca te fíes del índice de un botón
Esta es la parte que subestimé muchísimo.
Un mando de PC puede anunciar que usa la disposición estándar y luego numerar sus botones como le dé la gana a su firmware. El mando con el que hago las pruebas hace exactamente eso y, para colmo, lleva impreso 1 / 2 / 3 / 4 en el sentido de las agujas del reloj desde arriba en lugar de A/B/X/Y. Así que detrás de cada pulsación se esconden tres datos distintos, y solo el primero se puede conocer de verdad: la entrada en bruto, la posición física de ese botón en el plástico y la etiqueta impresa a su lado. Un juego que asigna Confirmar al «botón 0» está adivinando dos de los tres.
Por eso Ancient Duel tiene un asistente de calibración, y nunca deduce nada de un índice. Aprende la posición física de tus manos y la etiqueta impresa de lo que tú le digas que pone en el dispositivo. Las etiquetas se eligen de una lista en lugar de escribirse, porque un mando no tiene letras, y no son decorativas: si le dices al juego que tu botón inferior pone «B» y el derecho pone «A», tienes en las manos un mando con la convención de Nintendo piense lo que piense el navegador, y Confirmar y Volver se intercambian en consecuencia.
Un control que te saltas se queda mudo. No se recurre a un índice supuesto, porque un botón superior que confirma una rendición es justo el fallo que la calibración existe para evitar.
Una calibración que no puede pedir un ratón
Aquí hay una paradoja escondida. El jugador cuyo mando está mal asignado es justo el que necesita la pantalla de calibración, y justo el que no puede navegar por un menú normal para llegar a ella.
Así que la regla que sigue todo el diseño es que un mando tiene que poder calibrarse, etiquetarse, guardarse, volver a abrirse y repararse sin ratón ni teclado. En un ordenador funcionan como comodidad; nada puede exigirlos.
En la práctica, eso significa que el asistente se abre con «pulsa cualquier botón para empezar» y acepta cualquier botón en bruto de cualquier mando conectado, y esa pulsación decide además qué mando controla la sesión. Después vienen confirmar y cancelar, que no se pueden saltar. A partir de la tercera pregunta, el botón que acabas de nombrar como botón frontal derecho te hace retroceder un paso, así que pulsarlo las veces suficientes cierra el asistente: la única salida que no necesita puntero. Cada paso de captura avanza solo, porque un jugador al que se le acaba de decir que pulse el botón frontal inferior no tiene manera de pulsar también «Siguiente».
Por qué nunca pregunta por el joystick
Ocho preguntas, y todas son botones. No se pregunta nada sobre direcciones.
En parte porque las direcciones son lo fiable: en un mando con asignación estándar, el joystick izquierdo llega como los dos primeros ejes, lo que hace la entrada direccional mucho más predecible que unos botones que el fabricante numeró como le pareció. Pero sobre todo por algo que solo entendí después de verlo fallar. Un botón está pulsado o no lo está. Un eje no tiene un estado de reposo con sentido: un joystick gastado deriva, el hat de una cruceta descansa en 3,29, un gatillo se queda en −1, y cualquiera de ellos puede responder a una pregunta que nadie ha hecho, o impedir que un paso termine por un motivo que nada en la pantalla puede explicar. No preguntar eliminó toda una categoría de comportamientos inexplicables.
Mantener pulsada una dirección la repite, a una velocidad que puedes ajustar, igual que la zona muerta si tu joystick deriva.
Escribir sin letras
Luego llegas a un campo de texto y el mando no tiene nada que ofrecer. Iniciar sesión, poner nombre a un mazo, buscar en el catálogo de cartas: todo ello necesita caracteres que ningún mando tiene.
Así que Confirmar sobre un campo de texto abre un teclado QWERTY completo en pantalla. Son botones normales en una capa normal, lo que significa que la misma navegación se mueve por él y Volver lo cierra como cualquier otra cosa. Un jugador con un teclado de verdad no llega a verlo.
Un detalle que no esperaba que importara: la disposición usa un escalonado físico real, los mismos desplazamientos de un cuarto de tecla que tiene un teclado ANSI. La navegación lee la geometría renderizada para decidir adónde va «arriba», así que es el escalonado lo que pone la W sobre el hueco entre la A y la S. Los números redondos fallan sin remedio: un escalonado de exactamente media tecla deja cada tecla a la misma distancia de las dos que tiene debajo, y el empate lo decide el orden en que el marcado las haya puesto por casualidad.
Lo que el mando encontró en el resto del juego
Lo más útil de este trabajo es lo que destapó. Un ratón permite al jugador tapar los problemas de la interfaz señalando directamente lo que quiere. Un mando no puede, así que la interfaz tiene que hacer explícitas esas relaciones, y en varios sitios resultó que no lo hacía.
Los mazos guardados no eran paradas del foco, lo que significaba que un mazo no se podía abrir en absoluto sin ratón. Con los cementerios y el terreno pasaba lo mismo. El constructor de mazos reconstruía sus dos columnas cada vez que añadías una carta, destruyendo el botón que acababas de pulsar y haciéndote perder el sitio; ahora recuerda la carta y la acción y vuelve a encontrarlas. Los diálogos de confirmación y aviso propios del navegador quedan completamente fuera del modelo de foco de la aplicación, así que se sustituyeron por otros dentro de la página que se abren en la respuesta segura.
Ninguno de ellos es un fallo del mando. Son fallos de la interfaz que un puntero había estado compensando en silencio, y corregirlos ha mejorado el juego para gente que nunca tocará un mando.
Steam, sofás y la Deck
El mismo código funciona en el navegador, en la versión para Windows que se usa en Steam y en la versión para macOS, y las tres usan el mismo sistema de mando y la misma lógica de configuración, aunque los ajustes se guardan en el dispositivo y no en tu cuenta.
Lo que eso aporta es sencillo: un PC deja de ser solo un escritorio. La misma versión funciona en un portátil, en un equipo conectado a un televisor y desde el sofá con un mando. Un juego de cartas se presta a ello mejor que la mayoría de géneros, porque la postura natural para Ancient Duel es recostarse y pensar, no inclinarse hacia delante y hacer clic.
En portátiles como la Steam Deck, lo honesto es decir que el trabajo de base está hecho y las pruebas no. Steam Input puede exponer la entrada del mando mediante una asignación estándar compatible con XInput, así que el modelo que ya existe es, en principio, una base útil, y un juego que nunca da por hecho un ratón cumple un requisito importante para ese tipo de dispositivo. No he comprobado Ancient Duel en el propio hardware, así que no voy a afirmar que funcione ahí. También hay un modo TV que añade un margen de seguridad, porque algunas configuraciones de televisor todavía aplican overscan y recortan parte de la imagen por los bordes, lo suficiente para dejar el botón de rendirse fuera de la pantalla.
El mismo razonamiento vale para cualquier plataforma futura. Una versión para consola necesitaría mucho más que trabajo de entrada: SDK, certificación, servicios de la plataforma, empaquetado, aprobación de la tienda. Pero hay una barrera que se puede quitar pronto, y es la que afecta a todas las pantallas: el juego no debe dar por hecho que existe un ratón. Eso no deja nada listo para una consola. Mantiene abierta una puerta que luego cuesta mucho volver a abrir.
El ratón no se ha ido a ninguna parte
Nada de esto sustituye a nada. El ratón y el teclado funcionan exactamente igual que antes, y en un ordenador siguen siendo más rápidos. La idea nunca fue elegir un dispositivo de entrada en nombre del jugador.
Un duelo jugado con mando no es un duelo distinto. Se selecciona la misma carta, se elige el mismo objetivo, se toma la misma decisión y se asumen sus consecuencias. Lo único que cambia es cómo llega la decisión al juego, y cuantas menos suposiciones haga Ancient Duel sobre lo que tienes en las manos, en más sitios se podrá jugar ese mismo duelo.
Daniel Rusu
Creador y desarrollador de Ancient Duel