#2 - Mi sueño: hablar con los personajes

Un sueño a punto de ser cumplido.

Mi sueño: hablar con los personajes

Siempre quise hacerlo. Desde pequeño..

No recuerdo con exactitud cuando, por primera vez, surgió en mi mente esa idea. Bien pudiera haber sido en algún momento indeterminado de la década de los 80 jugando a uno de mis referentes infantiles: La Abadía del Crimen. Preguntarle cosas al gran Guillermo de Baskerville o a Adso, su tutelado. Y esa idea germinó con títulos posteriores como Navy Moves o el gran Cozumel. Aún lo pienso. Personajes míticos con los que interactuar guiado por mi curiosidad. Interacción natural. 

Y esa idea se quedó conmigo durante todos estos años.

Hasta Avademia.

Esta semana hemos abordado este tema.

Tema 1. El rendimiento.

Teníamos una deuda técnica pendiente, como describíamos en el nuestro post anterior. Habíamos implementado muchas mejoras de rendimiento en el modo individual. Y faltaba confirmar que en multi-jugador también funcionaban. Y lo hemos hecho. Aunque por el camino nos encontramos un par de cosillas ya que los cambios tenían su complejidad.

El hecho es que las mejoras han dado los resultados que buscábamos. Y hemos encontrado dos errores que aún estamos analizando/resolviendo. El primero afecta a la fluidez de movimiento de ADA (es un asistente inteligente robotizado volador que ayuda al jugador durante el juego y del que luego hablaré un poco más). Pues en su afán de seguir al jugador, el movimiento no es fluido y va como a trompicones cosa que antes no hacía.

El otro es que ADA atraviesa algunos árboles como si no fuesen sólidos. Solo pasa con algunos por lo que no estamos del todo seguros si es que no lo habíamos detectado o es algo que hemos estropeado con los cambios introducidos.

Seguimos investigando.

Tema 2. La interfaz por voz.

Ya he comentado que ese sueño surgió cuando jugaba en mi infancia. Y que me ha acompañado, como un asunto pendiente, hasta que he creado Avademia.

Pero vayamos por pasos.

Primero. En Avademia prima la colaboración del equipo. Pese a haber cosas que se hacen de forma individual, la experiencia plena se alcanza en modo colaborativo.

Jugando con los amigos. Y para que sea más divertido, hay que comentarlo en tiempo real. 

La primer opción que barajamos para incluir esta capacidad fue usar el estándar de facto: Discord el todopoderoso. Eso estaba muy bien porque todo el mundo lo usa para comentar las partidas que juega con los amigos. Pero nos presentaba algunos inconvenientes. Por ejemplo: en algunos momentos narrativos no hay comunicación entre jugadores. Discord nos metía en una especial disonancia ludonarrativa. Se supone que no tengo comunicación pero sigo hablando con mi amigo. No podemos controlar ese canal desde el juego. Además, potencialmente podría ser una fuente de dispersión si optábamos por el servidor general; o una fuente de complejidad si los jugadores tuvieran que montar su servidor privado.

Lo descartamos.

Así llegamos al plugin que utilizamos actualmente: ODIN, un sistema completo de chat por voz perfectamente integrado en el gameplay y que satisface nuestro propósito. Podemos activar y desactivar la comunicación de cualquier jugador a nuestro antojo. Que solo pueda hablar y no escuchar, a la inversa, solo para, o para todos. En fin, como la vida misma. Nos habilita para construir la experiencia que buscábamos, una experiencia de comunicación por radio entre los miembros del equipo e incluir su correcto o incorrecto funcionamiento acorde a la narrativa.

Segundo. En Avademia, como os adelanté anteriormente existe un personaje llamado ADA. Es un asistente inteligente robótico volador que te sigue a todas partes. Cada ADA es diferente y está especializado en el conocimiento del rol del personaje al que ayuda. Lo complementa con herramientas también propias para ayudar en los quehaceres del personaje. Vamos, que cada jugador escoge un personaje y éste tiene un rol y un ADA coherente con ese rol. Otro día hablaremos de esos roles.

La personalidad de ADA también es diferente por cada rol, inicialmente, y por cada jugador, con posterioridad, ya que pretendemos que evolucione con la partida según las decisiones particulares que tome cada jugador. Eso daría lugar a prácticamente a ADAs únicas.

Con ADA buscamos dos tipos de interacción: la propia de un personaje del videojuego en el que realiza acciones propias del contexto y momento de la partida; y la de interacción hablada libre, siempre dentro de la coherencia de la ficción del juego Avademia. En el primer caso, esto supone, por ejemplo, darle instrucciones por voz para que realice una acción concreta: “ADA, analiza esa fruta”.

En el segundo sería una experiencia más cercana a un ChatGTP hablado en el que puedes preguntar libremente. Por ejemplo: ¿Cuántos tipos de manzana hemos descubierto? o Cuéntame un chiste de humanos

Estas dos cosas son las que yo imaginaba de pequeño.

Conseguirlo no es fácil. Requiere meter un ‘teléfono’ o un 'Alexa' conectado a un ChatGPT. Imagínate. La complejidad reside en que esto tan cotidiano requiere una serie de elementos que te cuento de forma simplificada:

  1. Capturar la voz y transcribirla a texto. Este elemento se conoce técnicamente como ASR (Automatic Speech Recognition)
  2. Procesar el texto del punto anterior y dar una respuesta coherente. Básicamente lo que hace ChatGPT.
  3. Pasar esa respuesta de texto a una señal de voz como los bots que te atienden por teléfono cuando llamas a cualquier gran empresa. Esto lo hace un TTS (Text To Speech).

Tuvimos la suerte de que alguien ya había pensado en esto. Y había creado un plugin que incluye estos tres elementos. Curiosamente solo encontramos uno: CONVAI.

¡Asunto resuelto!

Pues no.

Su modelo de negocio es un modelo de pago por uso. Utilizarlo nos suponía un reto que solo tenía dos soluciones. Tener una previsión muy exacta del consumo real a realizar por todos los jugadores en todas las partidas para no disparar los costes, cosa que no tenemos.

O, trasladar ese coste de uso a cada jugador. Cosa que no queremos.

La alternativa a este plugin es construir nosotros esas funciones. Nos hemos puesto a buscar motores gratuitos para cada uno de los elementos con la idea de encapsularlos y tener nuestro propio plugin.

Es más complejo. Es más lento. Pero también permite uso ilimitado sin coste adicional para el usuario. Es reutilizable para otros juegos. Podemos garantizar privacidad de las conversaciones. Esto en soluciones de terceros no podríamos hacerlo. Y, aunque esto es muy friqui, nos hace cambiar de trabajar todo el día con Blueprints y podemos usar durante un tiempo nuestro añorado C++.

Estoy entusiasmado con esta posibilidad.

Tema 3. La validación de la comprensión.

Avademia tiene como misión el facilitar la comprensión de las matemáticas. Ello implica, para que sea divertido, enmascarar el conocimiento matemático para que sea descubierto jugando. El jugador necesita comprender ese descubrimiento para utilizarlo y progresar. Hasta aquí podría ser suficiente, pero queremos estar seguros de que eso es así.

Hemos estado pensando en incluir sistemas de validación de la comprensión en el juego. De forma enmascarada. Que no sea un ejercicio. Que no haya fricción entre esa acción y el flujo natural del juego. Que mantenga la coherencia lúdica. Y que, a la vez, genere la información de validación que nos permite objetivamente comprobar que la comprensión del conocimiento ha siso exitosa. Sin tests. Sin exámenes. Eso queda para el aula.

Y éste ha sido el último tema que hemos abordado durante esta semana. La que viene seguiremos avanzando en ellos. Incluso, es posible, que cerremos alguno de estos ambiciosos frentes. Si fuese así, os daría una muestra en imagen o vídeo. Mientras tanto conformaos con esta imagen donde se visualiza la interacción actual de ADA ‘hablando’ en modo chat por escrito.

ADA. Sistema de chat.

Nos vemos el viernes que viene.

Y recuerda.

Si consideras que lo que te he contado está alineado contigo, tienes tres formas de estar involucrado:

1. Seguir apuntado a esta Bitácora. Te doy las gracias por adelantado.

2. Compartir nuestro proyecto con todo aquel que consideres que le pueda interesar

3. Unirte como fundador al programa Quantum Architects. 100 fundadores con beneficios especiales. Puedes solicitarlo en www.avadlf.com.

La semana próxima más.