Chess Club es uno de los proyectos más emocionantes en los que hemos trabajado. Por un lado, teníamos el desafío de llevar la solemnidad del ajedrez, el juego de reyes, a un entorno virtual lo más detallado e inmersivo posible. Por otro lado, nos enfrentábamos a un reto técnico sin precedentes para nuestro equipo: lograr un modo multijugador en línea dentro de un entorno virtual y con condiciones muy específicas.
Aunque en la superficie pueda parecer sencillo, Chess Club es un juego muy complejo. Convergen en él múltiples casuísticas: tecnología de seguimiento de manos, avatares, reconocimiento de voz y comandos… A todas estas capas añadimos la dificultad inherente a cualquier juego multijugador con emparejamiento en línea: diferentes ubicaciones geográficas y diversas calidades de conexión a internet convierten la transmisión de datos en un trabajo de ingeniería de alto nivel.
Hace unas semanas comenzamos a recibir algunos reportes periódicos relacionados con partidas multijugador. Al principio pensamos que se trataba de problemas localizados en ciertos usuarios, por lo que comenzamos a brindarles soporte como casos aislados.
Tras recibir varios informes sobre el mismo problema, nos dimos cuenta de que era un error en la versión de producción, por lo que nos pusimos manos a la obra para rastrearlo. Descubrir y eliminar errores es una tarea de desarrollo que consume mucho tiempo y energía, así que intentamos actuar lo más rápido posible y mantener una línea de contacto abierta con los jugadores para informarles de que estábamos trabajando en la solución.
Nos pusimos en marcha y renovamos el motor multijugador mediante una actualización. Sin embargo, seguimos recibiendo reportes de algunos usuarios que continuaban experimentando el problema.
Fue entonces cuando pedimos ayuda a algunos miembros de nuestra comunidad, estableciendo un contacto cercano con ellos para trabajar mano a mano. En estos casos, siempre solicitamos la mayor cantidad de información posible para recopilar datos: capturas de pantalla, videos, descripciones del problema, pasos para reproducir un error… Todo lo que nos permita entender mejor la naturaleza de problemas que pueden ser bastante complejos y difíciles de detectar.
Joshua, un profesor de secundaria que daba clases de ajedrez a sus alumnos usando Club de Ajedrez, nos envió algunas capturas de pantalla y un video que mostraban cómo el juego fallaba y quedaba en una pantalla negra al intentar iniciar una partida multijugador. Fue entonces cuando un miembro de nuestro equipo notó un detalle clave en la investigación: Joshua y sus oponentes estaban usando la función Party Group para hablar e invitarse a las partidas.
Party Group es una función de Meta disponible en todos los dispositivos Meta Quest. Permite crear un chat grupal con amigos de Meta, pero este chat es independiente de los juegos o aplicaciones en ejecución. En otras palabras, es posible usar la funcionalidad de Party Group y hablar con un grupo de amigos al mismo tiempo que se utiliza cualquier otra aplicación.
Investigamos un poco más y finalmente encontramos la raíz del problema. Cuando un usuario iniciaba una partida multijugador en Club de Ajedrez con Party Group abierto, el juego solicitaba acceso al micrófono, pero este acceso era denegado porque Party Group lo bloqueaba, lo que provocaba el bloqueo del programa. Este es un ejemplo de lo complejos que pueden ser los procesos de aseguramiento de calidad cuando se desarrollan dentro de un ecosistema tan intrincado como el de Meta, ya que incluso una característica o circunstancia externa al programa puede hacer que tu aplicación no funcione correctamente. Una vez identificado el problema, trabajamos con renovada energía, logramos eliminar el error y subimos una nueva versión de producción. Luego, contactamos a los usuarios afectados y nos alegramos de anunciarles que el problema había sido solucionado.
Para evitar que un problema similar vuelva a ocurrir, hemos añadido a nuestro proceso de QA varias baterías de pruebas relacionadas con funciones externas del ecosistema de Meta. ¡Lección aprendida! Queremos agradecer a la comunidad de jugadores por su retroalimentación constructiva y su rápida respuesta para ayudarnos a mejorar Chess Club 💪.
Más información en: https://www.oculus.com/experiences/quest/developer-post/613169823572091/