← Volver al blog

De un trozo de madera al App Store

Hace unos veinte años, mi compañero de cuarto en la universidad y yo sacamos un trozo de madera de un contenedor, dibujamos una cuadrícula con una regla, compramos unas piedras de vidrio en una tienda de manualidades por unas tres libras y empezamos a jugar al go. No tenía ni idea de lo que hacía. Realmente sigo sin tenerla. Pero algo del juego me atrapó de inmediato — la manera en que algo aparentemente tan simple podía ser tan imposiblemente profundo. Una cuadrícula de 19×19. Piedras blancas y negras. Reglas que puedes aprender en cinco minutos. Y sin embargo, en aquel momento, los ordenadores más potentes de la tierra no podían vencer a un jugador humano fuerte. Eso me fascinaba.

Una obsesión temprana

Esa fascinación fue tan profunda que mi proyecto de fin de carrera en la Universidad de Kingston fue en visión artificial — programé a mano un algoritmo para leer el estado de un tablero de go a partir de una fotografía, logrando más del 87% de precisión. Para los primeros años 2000, antes de la explosión del aprendizaje profundo, estaba bastante orgulloso de ello.

Por aquel entonces visité Japón durante dos semanas específicamente para experimentar la cultura del go de primera mano y jugar contra jugadores locales. Perdí todas y cada una de las partidas. Una se me queda grabada: un joven, probablemente de nivel dan, muy tímido, con las uñas llamativamente largas, acompañado de su padre. Me aniquiló por completo antes de que me diera cuenta de lo que había ocurrido — tardé un rato en ver que necesitaba rendirme.

Todos los salones de go que visité estaban tan llenos de humo de cigarrillo que era casi imposible terminar una partida sin salir a tomar aire — y eso que yo mismo fumo. Los jugadores eran casi exclusivamente personas mayores. El go parecía ser un pasatiempo para quienes estaban en sus años dorados, lo que me desconcertaba dado que Japón tiene fama de tecnología e innovación. Nadie parecía conectar el go con la informática. Al menos todavía no.

El largo paréntesis

La vida siguió. Trabajé como desarrollador Java, pasé un año en Accenture durante la universidad (durante el cual se me cayó todo el pelo por el estrés) y al final me encontré sin trabajo durante una larga temporada por problemas de salud. Mis habilidades de Java fueron volviéndose cada vez más irrelevantes mientras el sector avanzaba sin mí. Intenté ponerme al día, pero la brecha era demasiado grande — y descubrí que los salarios en esa parte del sector en realidad habían bajado. No merecía la pena.

A lo largo de todo eso, seguí jugando al go. No en serio — llevo unos quince años yendo al club de go de Exeter de forma intermitente, y en el mejor de los casos soy un jugador mediocre. Pero el juego nunca me soltó.

Todo encajó a la vez

Entonces, en un período de tiempo sorprendentemente corto, varias cosas ocurrieron a la vez.

Llegó el confinamiento por COVID. Me estaba volviendo loco sin nada que hacer, pero tuve la suerte de tener tres dispositivos Apple — regalos de mi familia y mi pareja. Vi el documental de AlphaGo y me electrizó. Lo que me había fascinado en la universidad — la imposibilidad de que una máquina dominara el go — se había resuelto. Y la revolución de la IA que desencadenó estaba apenas comenzando. Llegó ChatGPT. Luego Claude. Luego Apple anunció el Vision Pro.

Empecé a explorar KataGo y noté que no tenía una interfaz decente para el App Store®. Miré las apps de go disponibles para iPhone® e iPad® y eran... correctas. Funcionales. Pero ninguna tenía ninguna función de accesibilidad. Ni una sola app de go en todo el App Store declaraba compatibilidad con VoiceOver, Voice Control, Dynamic Type ni ninguno de los estándares de accesibilidad de Apple. Ni una.

Para un juego que lleva décadas siendo jugado por personas ciegas — usando tableros táctiles de líneas en relieve en Japón, en la Federación Francesa de Go, en Corea — la completa ausencia de cualquier versión digitalmente accesible parecía un vacío que no debería existir. Los jugadores de go ciegos habían quedado completamente excluidos del ecosistema de apps.

Todo conspiró a la vez y simplemente encajó. Me enseñaría el desarrollo iOS desde cero, usando herramientas de IA para acelerar el aprendizaje, y construiría una app de go que cualquiera pudiera jugar — con o sin visión.

Empezando desde cero

El 1 de julio de 2024 creé un proyecto Xcode en blanco llamado "RenderedGoApp" — no un nombre muy inspirador. No sabía nada de Swift, SwiftUI, RealityKit ni de ninguna de las tecnologías de desarrollo de Apple. Me enseñé todo a través de la documentación oficial de Apple y las sesiones gratuitas de WWDC, sin formación formal, bootcamps ni eventos de desarrolladores.

Dos semanas después, el 17 de julio, lo renombré "Goban3D". Un goban es el nombre japonés tradicional del grueso tablero de madera con patas sobre el que se juega al go. El nombre me pareció el adecuado — se ajustaba a los estándares de nombres de Apple y decía exactamente lo que era la app.

Recibí apoyo por dislexia desde la escuela primaria hasta la universidad. Sé lo que es cuando las herramientas no están construidas pensando en ti. Así que desde la primera línea de código, la accesibilidad no fue un añadido — fue la razón por la que existía el proyecto.

El desastre de SceneKit

Uno de los momentos más difíciles llegó cuando Apple deprecó SceneKit — el framework 3D en el que había construido toda la escena del tablero. Me había vuelto bueno con él. La escena tenía una mariposa revoloteando, hierba ondeando, iluminación de base física. Funcionaba de maravilla con un uso mínimo de CPU. Entonces Apple anunció que sería reemplazado por RealityKit.

Me enfurecí. Pero con el compromiso de publicar algo de vanguardia, y cero tolerancia a la deuda técnica, sabía que cada línea de SceneKit tenía que ser arrancada y reemplazada. La mariposa no sobrevivió. RealityKit es el nuevo abanderado de Apple, pero es una bestia mucho más hambrienta que su predecesor — algo que me encantaría discutir con un ingeniero de Apple algún día.

Dónde están las cosas

Hoy, Goban3D está en beta externa en el App Store para iOS y macOS. Tiene cobertura de accesibilidad del 100% en las siete categorías de accesibilidad de Apple — VoiceOver, Dynamic Type, Voice Control, Reduce Motion, Reduce Transparency, Sufficient Contrast y Differentiate Without Color. Funciona en todos los iPhone desde el SE de 3,5" hasta el Pro Max de 6,9", todos los iPad de 9,7" a 13", y de forma nativa en Mac® a través de Catalyst. El tablero 3D está renderizado en RealityKit con materiales de base física que capturan la luz como la madera y la piedra reales. También hay un modo 2D limpio para cuando quieres simplicidad o duración de batería.

Nadie fuera del proceso de desarrollo sabe que existe todavía. Sin cobertura de prensa, sin conciencia de la comunidad, sin beta testers externos. Esta entrada del blog es, en cierto modo, la primera vez que lo cuento públicamente.

Qué viene a continuación

La prioridad más importante es encontrar beta testers con necesidades reales de accesibilidad — jugadores ciegos, personas con baja visión, discapacidades motoras. La app se ha construido según los estándares de Apple, pero los estándares son solo el comienzo. Necesito que personas reales me digan qué funciona, qué no y qué no he tenido en cuenta. Encontrarlos será como encontrar un unicornio, pero no voy a rendirme. Todo el mundo debería estar incluido.

Si te gustaría probar Goban3D, o conoces a alguien que se beneficiaría de una app de go accesible, me encantaría saber de ti. Envía un correo a support@goban3d.com con el asunto "Beta Tester" y la dirección del Apple ID de tu iPhone, iPad o Mac. Recibirás una invitación de TestFlight® en breve.

Esto ha sido lo más difícil y gratificante que he hecho en mi vida. De un trozo de madera en un piso de estudiante al App Store — tardó veinte años, pero llegamos.