Etología de los Perro-pollo (TRICO): Azar, física, caos e IA en video juegos

Para esta época (diciembre de 2016) un aclamado productor y director de vídeo juegos japones (Fumito Ueda a lo mejor) resolvió su crisis existencial de 10 largos  años con el lanzamiento de su nuevo divertimento (yo no dije The Last Guardian 人喰いの大鷲トリコ).   Cualquiera sea el caso, agradezco a todo ese desbordado marketing mal intencionado, suscitó en mi varias preguntas sobre el azar y el script como herramientas poderosas en los vídeo juegos modernos.

trick.jpg

Pero no se confundan esto no es “haterismo” moderno, la intención en esta entrada es contar que pasa detrás de la cortina, lo que quiero decir es que no se deje deslumbrar de los trucos manipuladores.

El tema de mis divagaciones mentales es el siguiente:

¿El jugador puede intuitivamente diferenciar entre un comportamiento real, de  uno  inteligente y/o de uno azaroso? 

 Como siempre no soy estadista, científico de IA, licenciado en física, por tanto si consideran que he cometido un error e imprecisión agradezco dirigirla formalmente.

PROLOGO- ELIZA

Antes de la existencia del “perro con plumas, con las patas de un pollo” que confundiera fácilmente las personas se habían construido pequeños programas en las primeras computadoras primitivas con el mismo fin. Un ejemplo de estos es ELIZA (1966) desarrollado por Joseph Weizenbaum,  un programa que simula la conversación escrita con una psicóloga, aunque pensándolo detenidamente ella no intentaba manipularle para sacarle unas lagrimitas.

En mis tiempos los pollo-perro estaban verdes.
Fuente de la imagen: http://www.leucht.com/

Una de las cosas que podía hacer en una computadora sin gráficos o sin conocimiento de programar gráficos era “digitar” un largo listado en un viejo lenguaje  primitivo de computadores llamado BASICA (BASIC). Tomaba largas horas el introducirlo instrucción por instrucción, ejecutarlo y observar el resultado. Aunque confieso no recuerdo si aquel viejo listado se llamaba ELIZA  en aquel viejo libro.

ELIZA es un primitivo robot (bot) de conversación (chat) realmente no es muy interesante en estos tiempos como los perro-pollo lacrimogenos, sin embargo se le reconoce una importancia y se le venera como una reliquia en el mundillo del desarrollo de la inteligencia artificial. El programa como tal no es muy grande, ni sorprendente; se limita solo a realizar preguntas casi del tipo aleatorio partiendo de una base gramatical muy pequeña en el que se incluyen un corto diccionario de palabras. Pero, si ELIZA fuera desarrollado en este presente distopico seria  cuestión de cada quien si le pide matrimonio o se rebusca algo menos serio con ella.

ELIZA representa un hito de la IA, sin emargo no recibió las mejores calificaciones de los portales de la época, mejor digo “periódicos”
Fuente de la imagen: http://naukas.com/

Visitar:

EtologíaEstudio científico del comportamiento humano y animal.

INTRODUCCIÓN

Arthur C. Clarke dijo “Toda tecnología lo suficientemente avanzada es indistinguible de la magia.”, pero esta frase se lleva a un nivel de ridiculez absoluto gracias a la manipulación de los pastiches web  y otros medios alternativos, que ni investigan ni comparten conocimiento. Así nació esta entrada y su objetivo es un poco mostrar cual es el truco debajo del sombrero.

Una ventaja para este blog entiendo es el no ser del particular interés de  los irascibles fans  de los  perro-pollo, pero si de otros individuos. Efectivamente, aquellos un poco más listos e interesados en entrar en este mundillo y desean construir algunas pequeñas piezas de software lúdico similar.

content

Fuente de la imagen: http://www.broadsheet.ie/

NO me cansaré de repetir, mi objetivo principal es siempre exponer de manera distendida muchos de esos temas que no se encuentran frecuentemente en español (obviando la wikipedia)  y se relacionan con los vídeo juegos.

Aclaración: todas las respuestas las tiene el creador del pollo-perro  y no dudo las expondrá en el pos-morten cuando de lugar, por ahora debo apañarme con algunas meditaciones sobre el tema basado en el conocimiento existente.

Los temas a trabajar en este breve estudio etologico:

  • La probabilidad y el azar
  • La simulación física, en especial esa que deriva en horrendos bugs y cosas paranormales
  • La inteligencia artificiosa, lo siento, la inteligencia artificial
  • Scripts dedicados a la experiencia cinemática,  simple maquina de estado o la maquina cinematica
  • Unas reflexiones finales sobre el tema de la manipulación mental del perro-pollo

PROBABILIDAD Y AZAR

Es generalmente aceptado que los humanos tenemos una baja capacidad intuitiva para construir la probabilidad, menos entender el mundo físico o matemático, no es un instinto, ni es parte de nuestras habilidades cognitivas  y pasándolo bien nos tomo  más de 150 mil años el entender estos principios.

Un ejemplo básico en probabilidad es  un dado perfectamente calibrado con 6 caras. Por favor repasemos un poco del tema. En la probabilidad convencional (no la subjetiva) se establece que:

Seis (6) caras son seis (6) sucesos posibles, sin embargo al caer solo una (1) es favorable a nuestra suerte.

Por tanto la probabilidad  resultado es un sexto (1/6).

En otras palabras la probabilidad se ve como el resultado (evento) del numero de sucesos que nos son favorables sobre  (divido) el conjunto de resultados (eventos) posibles.

Archivo:Simuldado.png

Fuente de la imagen: http://recursostic.educacion.es/

 A esta tipo de probabilidad se le llama “frecuencial”; y considera que para cuando hayamos lanzado durante una eternidad el dado, encontraremos que cada una de las caras salio un sexto (1/6) de las veces.

Ademas de destacar que una  debilidad de los humanos es el evaluar probabilidades cuando se retiran elementos del sistema,  denominado  probabilidad de “eventos independientes”. Un ejemplo es  una bolsa llena de balotas, resulta prácticamente imposible solo con la mente y sin computadores resolver exactamente cual es la probabilidad de ocurrencia de un suceso en la medida que se van retirando elementos del conjunto.

Fuente de la imagen: COMENTARIO NOTICIA: ¿QUÉ PROBABILIDAD HAY DE QUE TE TOQUE LA LOTERÍA?

Ahora si puede atreverme a decir que una simulación computacional para recrear la física exacta de un DADO esta un poco fuera de nuestro alcance y no tiene realmente mucho sentido practico. Esto es un clásico de los ejemplos y lo mostré en un vieja entrada de este blog, sobre un pequeño vídeo juego:

“**Adivina un numero**”

numero = ENTRADA “escribe un numero: ”

SI numero = número_generado_aleatoriamente ENTONCES  IMPRIME”BIEN ADIVINASTER”

SINO

IMPRIME “LO SIENTONO ADIVINASTE! “

Sin embargo, debo hacer una anotación, una computadora no puede generar un numero realmente aleatorio matemáticamente tan  correcto como EL DADO. Insistiendo que cada numero debería tener la misma probabilidad de ocurrencia. Pero, estas limitaciones no son importantes para dar cierto toque de impredecibilidad en nuestros códigos.

La simulación de físicas en computadoras las repasaré brevemente en la siguiente apartado.

Dudo mucho que John von Neumann hubiera pensado mínimamente que parte de su trabajo se orientaría a dar vida a los perro-pollo del futuro

Visita:

FÍSICA Y EL CAOS

Simular física es una ciencia dura en los vídeo juegos, realmente es uno de los temas más complejos que existen. Aun cuando es posible encontrar algunas opciones con físicas increíblemente precisas, no son muy apropiadas a la jugabilidad. Solo conozco un juego suficientemente interesante para ilustrar en el uso correcto de este tipo de brujería  y es el Half Life 2.

Existen dos opciones de motores gráficos unos más populares que otros: los primeros son  los motores pasivos como el que da vida al universo del perro-pollo (mejor candidato es bullet en parte por Sony) y van seguidos de los motores activos bastante abandonados para esta época. Repasemos un poco:

  • El motor pasivo (Havok/Bullet/etc): El motor esta solo activo cuando se presenta un cambio de los parámetros de los objetos.  Requieren muy poco uso del procesador CPU. Es usado innumerables juegos modernos.
  • Motor activo (Viejo y abandonado Ageia Physics): El motor se mantiene activo todo el tiempo y es costoso en CPU. Resolverlo obligó a los científicos en  Ageia a construir su motor basándose en un hardware especifico.

Desarrollar un motor requiere mucho conocimiento muy extenso en física y programación, es una ciencia interesante. Sin embargo, en los viejos tiempos de hobbista de la programación confieso solo alcance a los temas  basicos integración verlet , bound boxing, RayTracer y   Separating Axis Theorem.

Solo puede recomendar en este punto:  todo esta construido, existen infinito numero de librerías para aplicar físicas de  diversas calidades.

Es hora de abordar el tema de los excesos de los motores físicos en los vídeo juegos modernos,  se puede asumir como una visión de la teoría del CAOS.  El CAOS  es diferente del AZAR en este punto, dado que este primero el resultado esta determinado (determinista o en otras palabras: resultado de la simulación física).

¿Todavía piensas que el resultado no es causado por los azares del destino?

Para algunos puede ser una tarea interesante  el desarrollar un vídeo juego con físicas complejas, pero los resultados son siempre impredecibles y como consecuencia los usuarios son  victimas de innumerables errores (bugs) en sus juegos. Aun, usando el mejor de los motores existente y bajo la CPU más poderosa. El CAOS  se manifiesta con coches saltando, gente volando, atravesar paredes y un sin numero de sucesos paranormales; con suerte el  sentimiento es de “enojo” en los usuarios y críticos.

batman ageia.gif

Una buena practica es limitar las físicas y esto fue fácil de observar en la vida final del motor Ageia usado unicamente para resolver partículas y movimientos de la capa de Batman (no es perfecto pero funciona).

Un poco de este CAOS NO FISICO se observó en el fenómeno mediático  “Twitch Pokemon”. Era o es  un experimento interesante de cosas caóticas y al mismo tiempo parece que tienen el objetivo de divertir. Las acciones no son resultado de un individuo, si no el resultado de las acciones caóticas de los individuos, no es un azar cualquiera. Si existiera un titiritero detrás del perro-pollo que lo hay realmente, es fácil para cualquiera de nosotros abandonar la idea de que su comportamiento es caótico, tanto como sus bugeadas físicas o mejor dicho caóticas.

Pero no solo de físicas caóticas vive el perro-pollo y se manifiesta algo de IA primitiva,este ultimo tema lo toco en el siguiente extracto.

Visita:

INTELIGENCIA ARTIFICIOSA- IA

La inteligencia artificial es un tema muy interesante  en la investigación desde los años 70’s, es decir desde el origen de los tiempos. Hagamos un pequeño repaso de algunas técnicas por el mero interés etológico en los perro-pollo:

  • Arboles de decisión (decision tree): Se construye una estructura que simula todas las posibles rutas y se pondera la mejor solución desde el punto actual para obtener la meta. Se usan estos arboles en juegos de mesa como el ajedrez.
  • Redes neuronales (neuronal Networks): Se crea una analogía matemática del axón o célula del sistema nervioso. Tiene limitado uso practico en vídeo juegos. Un ejemplo es Black and White. Son especialmente  útiles en el reconocimiento de patrones en fotografía, la cual es su principal utilidad.
  • Lógica difusa (Fuzzy logic): En lugar de que un resultado matemático de un valor numérico,  se genera un entrada y salida en intervalos numéricos. Sin mucho uso practico en vídeo juegos.
  • Encontrar rutas (Pathfinding): Algoritmos  para determinar la ruta de un personaje de un lugar a otro.

Un axón matemático la entrada es una suma con valores ponderados o programables . A la suma final se le aplica una función de activación (memoria) que da como resultado un comportamiento dinámico de la función matemática
Fuente de la imagen: http://www.slideshare.net/

Después de este repaso innecesario tomemos el mejor ejemplo de IA hasta la fecha el video juego juego “First Encounter Assault Recon” o FEAR. Su desarrollo es el hito fundamental y una referencia obligada al describir la  IA en vídeo juegos.  Los desarrolladores de FEAR optaron por algoritmos combinados que permitían interpolar correctamente los puntos de animación de los personajes, ofreciendo las coberturas y comportamientos más realistas.

Lasparov vs IBM Deep-blue, apuesto a que a tampoco le agradaría que una computadora le partiera el trasero!!
Fuente de la imagen: https://www.extremetech.com

Permítame desviarme un poco del tema, la ciencia ficción en general tal vez puede sacar más temas sobre el IA que los vídeo juegos. Quisiera hacer una pequeña anotación de la serie West World que es muy acertado en el caso de la etología de los perro-pollo:

  • Cada androide tiene un “Guion” definido dentro de la narrativa y puede interactuar limitadamente dentro de los limites de su personaje.
  • Los personajes se reinician en cada iteración  de la historia, no tienen memoria (evito spoilers).
  • Realmente es difícil saber si son malos androides, o si son malos actores, o si son buenos actores haciendo de androides limitados por su IA. No importa su mente completara el resto de los detalles para darle sentido humano o antropomórfico.

Me gusta mas esta foto del clásico aunque recomendaría la revisión de 2016 de la cadena de cable norteamericana HBO.  La serie da pie a iniciar el siguiente tema sobre el Script o maquina de cinemática de estados.

Para efectos prácticos desarrollar una buena IA en juegos distintos a la estrategia o juegos de mesa carece de sentido, esto porque la mayoría de los consumidores no viven interesados en juegos con IA avanzada. Es muy fácil de comprender si se comparan las ventas del ultimo juego del año de entretenimiento colectivo contra el mejor juego de estrategia del momento.

Ahora, como el objetivo es entretener y generar “experiencias” lo más practico es tener un juego guiado y dirigido; esta ultima característica la explico a continuación.

Visita:

SCRIPT  -MAQUINA CINEMATICA DE ESTADOS

Las condiciones azarosas de física e inteligencias avanzadas IA, obviando los altos costos en pagos de las licencias de software en las librerías, han forjado la necesidad de enfatizar en acciones preestablecidas para construir una experiencia cinemática más apropiada a las grandes masas. Aun cuando la herramienta principal como los lenguajes destinados a los “script” parten de complejos lenguajes de programación reales; estos pobres no se destinan a cosas  distintos que una clásica “Maquina de estados”.

fsm_enemy_brain

  En resumen una maquina de estado; parte de un estado y dadas unas condiciones se pasa a otro estado.
Fuente de la imagen: Finite-State Machines: Theory and Implementation

La maquina cinemática de estados cumple el objetivo de ser la mano del director y dar pie a las acciones programadas que permiten resolver la narrativa del vídeo juego moderno. En uno de los excesos mas típicos en el software lúdico  este se limita a copiar y pegar las mismas “maquinas de estado” creando un juego de recaderos (mensajería) y otro tipo de “experiencias” repetitivas. Para nuestra fortuna las maquinas de estado no solo sirven para reforzar la narrativa, igualmente prestan una innumerable ayuda en el caso de la animación de los personajes.

Recordemos un poco como los juegos muy viejos tienen poco de maquina de estado y poco de azar; el objetivo era llegar a un punto a otro y los enemigos reaparecían con el cambio de pantalla.

Ahora bien, en los juegos modernos responden a la maquina cinemática de estados  y los enemigos parecen salir aleatoriamente en diferentes posiciones, tener direcciones aleatorias como pollos fuera de su reja. El script termina una vez ciertos números de bajas, pasando a un nuevo punto donde se activa nuevamente un script idéntico al anterior.

Call-of-Duty-1-UO-Map-SP-Map-Snow_1.jpg

Los primeros pollos no tenían alas, ni caras de perro pero corrían sin sentido de lado a lado del escenario.

ETOLOGÍA DE LOS PERRO-POLLO
PALABRAS FINALES

Debemos tener presente que el objetivo del  mercado no es construir la IA con físicas más avanzadas, sino el de dar paso al jugador a una experiencia más cinemática con la ayuda de “maquinas de estado” y del azar controlado, insistiendo en el claro énfasis lacrimógeno de las narrativas modernas.

bb

Siempre seremos manipulados por las experiencias lacrimogenas

Un ejemplo que no es contrario de este tipo de manipulación y es previo a los perro-pollo se dio en 90’s  y fueron las mascotas virtuales. No fueron medianamente  inteligentes para crear una gran conmoción en sus usuarios, ni lo fue en caso de los Nintendogs de la década 2000.

f377

Las mascotas virtuales tenían menos bug, fisicas o script. Pero, representaron revolución  mediatica en los 90s
Fuente : Los 15 años del Tamagotchi

Para finalizar esta larga entada dedicada al  estudio del comportamiento o  etología de los perro-pollo, les recuerdo que nos ofrecen una gran enseñanza:

Debemos apelar a la superficialidad. No importa lo que este adentro de la caja negra, lo importante es el producto,  el resultado final.  Como consecuencia, deberíamos ignorar el estudio y desarrollo de las  IA y las físicas avanzadas. Como nos enseñan los grandes expertos de los grandes medios y abrazar las verdades del marketing.

palomita.png Pero, si lo pensamos detenidamente somos como las palomas del experimento de Burrhus Frederic Skinner, actuamos al azar, llevados por la superstición e ignoramos reiteradamente la realidad. La realidad en este caso es:  

El perro-pollo no tiene una conducta animal, nosotros asumimos que presenta esa conducta. En el fondo se esconde un poco de IA; mucho de historia lacrimogena; mucho de script y  mucho de azar. Aderezado de físicas caóticas que nos hacen perder la compostura.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s