You Are Browsing ‘Retrocomputer’ Category

Microhistorias: Los “ladrillos” que cimentaron Apple

by tuxotron - on Ago 3rd 2016 - 2 Comments


Apple-Atari.png

En 1974 Atari era la empresa de moda en aquella época, sueño de cualquier geek. La compañía había crecido enormemente desde su fundación en 1972, “Pong” ya había creado toda una nueva industria y la famosa videoconsola Atari VCS 2600 no era más que un proyecto en desarrollo. El ambiente desenfadado y de espíritu libre de la compañía era el cultivo perfecto para atraer a todo tipo de personajes, sobre todo hippies y locos por la tecnología que estaba dando sus primeros pasos.

Ese mismo año, 1974, la recepcionista de Atari le comunicó a Allan Alcorn (diseñador del famoso vídeo juego Pong) que tenía en la recepción a un chico de 19 años con pinta de “Hippie Freak”, melena, descalzo, barba y maloliente (hasta aquí cualquier otra empresa ni siquiera le hubiera dado audiencia, pero era Atari) diciendo que tenía concertada una entrevista de trabajo. Durante dicha entrevista Allan Alcorn, rápidamente se dio cuenta que este chico empezó a mentir, dando la impresión que había trabajado para HP (Hewlett-Packard) y que tenía una serie de conocimientos técnicos, que realmente no tenía. Allan, sin embargo, estaba impresionado con la persistencia y perspicacia con la que el chico buscaba ser contratado. Fue por ello que le ofreció un trabajo como técnico de máquinas tragaperras, por 5 dólares la hora.

Ese chico era Steven Paul Jobs, popularmente conocido como Steve Jobs, y se convertiría en el  empleado número 40 de Atari.

Muy pronto Steve Jobs empezó a hacer pocos amigos dentro de la empresa (¿recuerdas lo de “maloliente” y descalzo, esos fueron algunos de los factores). A Steve le gustaba rondar por las oficinas de Atari diciéndole a los ingenieros directamente a la cara sus “impresiones” sobre el trabajo que estaba realizando, llegando incluso a insultar a estos.

Nolan Bushnell, fundador de Atari, sin embargo vio talento y mucha creatividad en él. Aunque no fuera una persona con grandes conocimientos técnicos, de alguna forma Jobs se las arreglaba para terminar los proyectos incluso con antelación a lo acordado. Fue por ello que Bushnell lo puso a trabajar en el turno de noche para evitar problemas con el resto del personal. Lo curioso que por aquel entonces Atari no tenía un turno de noche…


AppleBreakout200.jpg

Nolan Bushnell y Steve Bristow tenían en mente la idea de un nuevo juego basado en el famoso “Pong”. El juego consistiría en rotar la pantalla, eliminar a uno de los jugadores y poner en su lugar una pared llena de ladrillos, los cuales el jugador tendría que eliminar sin perder la pelota en el rebote. Estos fueron los cimientos del famoso juego “Breakout”.

 

 

Jobs tenía un buen amigo por aquella época, con quien había fabricado las famosas “Blue Box” durante su época de instituto y cuyos beneficios de venta eran los únicos ingresos, que no fueron pocos, de Steve Jobs. Ese amigo era Stephan Gary Wozniak, mejor conocido como Steve Wozniak o simplemente Woz. Todo el conocimiento técnico que Jobs no tenía y que Atari le exigía, era Woz quien se lo aportaba. Además Woz conocía bastante bien a Atari, había gastado mucho dinero jugando al “Pong” e incluso había diseñado un Pong casero, con menos “chips” y que además tenía un conmutador que activaba/desactivaba textos en la pantalla como por ejemplo “Oh Shit!” ó “Damm it!” cuando el jugador fallaba la recepción de la pelota (epic). Atari incluso llegó a ofrecerle trabajo a Wozniak, pero él estaba muy feliz en HP fabricando sus calculadoras, era su trabajo soñado.

A mediados de 1974, Jobs pidió a Atari que lo mandara a la India. Éste llevaba algún tiempo empañado el viajar a dicho país en busca de iluminación espiritual. Atari finalmente acordó con él, que lo mandaría a Alemania para arreglar algún problema técnico que que tenían allí, y desde Alemania, Jobs podría volar a la India, pero Jobs no tardaría mucho en volver, ya que el gurú espiritual al que iba buscando había muerto a finales del año anterior, 1973.

Cuando Jobs volvió, pidió a Atari que lo volvieran a contratar, pero esta vez como ingeniero y no como técnico. Atari aceptó y lo mantuvo en el turno de noche. Entre otros, Atari le encomendó a Jobs la implementación de la idea del Breakout. Jobs, como era usual en él y con aires de grandeza dijo que eso lo tendría hecho en un par de días.

La remuneración por dicho proyecto serían 700 dólares, más un bonus, por cada circuito integrado TTL (bastante caros en aquellos tiempos) que pudiera eliminar por debajo de los 50.

A Jobs, técnicamente el proyecto le quedaba muy grande, pero gracias al turno de noche de Jobs y la gran afición de Wozniak a la electrónica y los videojuegos, éste convenció a Wozniak para que se fuera a ayudarle por las noches a cambio de jugar gratis al “Pong” o cualquier otro juego que Atari estuviera fabricando (Jobs trabajaba en la fábrica de los Los Gatos donde se montaban los componentes electrónicos) y le ofreció la mitad de lo acordado con Atari.

Y así fue como Steve Wozniak se pasó cuatro días sin dormir, diseñando a mano, un prototipo funcional electrónico del juego “Breakout”, con la presión diaria de Jobs para que terminara el trabajo lo antes posible. Por las noches, mientras Jobs cableaba el prototipo (Jobs por lo visto tampoco sabía soldar), Wozniak aprovechaba para echar unas partidas, entre ellas a la primera máquina de videojuegos arcade de carreras, Gran Trak 10.

Finalmente, Jobs entregó el prototipo a Nolan (el diseño final consistía en sólo 36 circuitos integrados TTL), pero los ingenieros de Atari no encontraron la forma de crear un diseño basado en el creado por Wozniak que pudiera ser manufacturado en una línea de producción.

Wozniak aprendió mucho durante esos cuatro días de trabajo intenso creando el diseño de “Breakout”. En la fábrica donde estuvo trabajando, Atari estaba diseñando un juego para cuatro jugadores en el que tenían la idea de usar microprocesadores para desarrollar el juego. Eso era algo novedoso, ya que por la época los juegos se creaban a base de circuitería electrónica. La idea usar procesadores en el desarrollo de juegos era un salto importante, ya que estos podrían crearse con software, es decir, programando el procesador, esto no sólo abarataría el desarrollo de los mismos, sino que además abriría las puertas de esta industria a mucha más gente. Ya uno necesitaba ser un ingeniero o un buen diseñador de circuitos digitales para crear un juego. Cualquiera desde su casa con ordenador podría crear su propio juego, incluso los niños.

En aquella planta en la que estuvo Wozniak, hubo otra cosa que le llamó mucho la atención. Había una televisión en color que no se utilizaba para los videojuegos. Atari sólo utilizaba televisores en blanco y negro, pero Woz no podía quitarle ojo a esa pantalla que tenía un punto que se desplazaba de izquierda a derecha, el cual iba cambiando de color al mismo tiempo. Woz estaba hipnotizado por ese colorido movimiento del píxel por la pantalla cuando de repente le llegó la inspiración. Se le había ocurrido una forma de obtener hasta 16 colores diferentes utilizando la señal digital. Según Wozniak, por aquella época nadie había hecho nada parecido. Crear color en la pantalla usando ceros y unos, era algo novedoso.

Estas dos ideas marcarían el futuro de una empresa que aún no existía: Apple. Wozniak basándose en dichas ideas crearía el producto que lanzó a Apple en el mercado: Apple ][.


AppleII_2.jpg

El Apple ][ fue un ordenador diseñado principalmente como una máquina de juegos. Una de las primeras cosas que hizo Wozniak cuando creó el Apple ][, fue crear un lenguaje de programación que le permitiera crear juegos. Para ello creó un lenguaje BASIC al que inicialmente llamó “Game BASIC”. Todo lo que le rondaba en la cabeza a Wozniak era crear vídeo juegos con colores y usando software. Dicho y hecho, Wozniak fue capaz de crear una versión del ya mencionado Breakout usando su “Game BASIC”.

Así nacería el Apple ][, un ordenador personal económicamente permisible, que podría ser usado para trabajar y jugar a la vez.

Entradas relacionadas:

Google añade “motivación” a su IA para poder entrenarse con videojuegos

by cybercaronte - on Jun 14th 2016 - No Comments

Si tienes una Inteligencia Artificial (IA) ¿cómo la entrenarías? Antes la base era suministrarle el máximo de información posible para que la IA lo procesara y de esa forma asimilar nuevos conceptos y parecer  inteligente. En cambio esto ya ha cambiado desde hace tiempo. Ahora se aplican nuevas técnicas como  “machine learning” las cuales se centran más en el autoaprendizaje de los sistemas.

Google DeepMind (la misma que venció al campeón de “go” con Alphago) es un referente a día de hoy en los avances relacionados con la IA. Deepmind centra su trabajo precisamente en lo que hemos comentado antes, hacer que la IA analice el entorno que le rodea y decida por sí misma cuales son las mejores opciones para resolver un problema. Para implementarlo ha desarrollado un algoritmo llamado DQN, Deep Q-Networks.

Y lo mejor es que han decidido entrenarla jugando a videojuegos.

El año pasado comenzaron esta nueva etapa de aprendizaje jugando a los juegos clásicos de Atari consiguiendo resultados realmente espectaculares como podéis ver en estos vídeos:

Deepmind jugando a Breakout, al final encuentra que la mejor táctica es hacer un túnel y pasar la bola por allí para destruir los ladrillos que se encuentran “encerrados” en la parte superior.

Si estáis interesados en jugar con la IA en casa, podéis consultar este enlace.

Hasta aquí los resultados son bastantes esperanzadores, pero también tenemos que admitir que los juegos no son especialmente complejos. Las reglas de los mismos son bastante sencillas y ocurren en un escenario más o menos controlado en una sola pantalla.

Así que este año los ingenieros de Google Deepmind decidieron dar un salto aún mayor. Esta vez querían probar la IA con un juego un poco más complicado, de hecho uno de los más difíciles de Atari: Montezuma´s Revenge … y no hizo ni un sólo punto.

Pero no se desanimaron. Y ahora, como podéis ver en el video que encabeza este post, es capaz de saltar, subir escaleras, esquivar esqueletos, utilizando llaves y haciendo una buena puntuación.

Entonces ¿cuál ha sido la diferencia?, pues algo que llaman motivación.

Esta motivación está basada en unos algoritmos llamados “intrinsic motivation” los cuales consisten básicamente en añadir recompensas a la AI al igual que ocurre con el cerebro a modo de “placer químico“. Sólo que esta vez el placer podríamos decir que es matemático.

No penséis que esta nueva IA es un bot más como los de cualquier juego, el cual tiene toda la información posible del mismo y la pone en práctica basándose en patrones definidos. En este caso la IA aprende desde cero a jugar mirando a la pantalla y analizando lo que está viendo, igual que un ser humano, pulsando botones, probando y por supuesto fallando y perdiendo vidas.

Vamos a ver un poco más en detalle cómo funciona centrándonos en el juego Montezuma´s Revenge.

Este juego está dividido en tres niveles, los cuales están a su vez compuestos de 24 habitaciones en forma piramidal. Cada habitación tiene un número de desafíos a completar para poder pasar a la siguiente (la habilidad de la IA se mide en función de las pantallas que ha podido superar). Por ejemplo, para superar la primera pantalla la IA tendrá que subir escaleras, esquivar criaturas, coger una llave y volver sobre sus pasos para abrir una puerta. Para analizar cada pantalla, el agente examina cada habitación capturando fotogramas de la acción en tiempo real (accediendo directamente a la memoria RAM del juego). Durante estas capturas, la IA analiza las ocurrencias o eventos que están sucediendo en ese momento (los cuales se miden con una unidad que llaman “pseudo-count“), creando una serie de parámetros de los cuales hay que destacar uno llamado “salient event“. Este evento se relaciona directamente con las recompensas, ya que implica un aumento en la puntuación al conseguir pasar de pantalla o resolver un problema. Aparte de la puntuación del juego, la IA tiene su propio sistema de puntuación el cual es la base de su motivación, ya que aumenta en +1 cada vez que consigue superar una “salient event“.

Events

Ejemplo del análisis de los eventos en dos juegos, Freeway y Pitfall. Fuente.

Finalmente utilizando esta técnica, después de 50 millones de fotogramas, la IA que utilizaba esta técnica ha podido visitar hasta 15 habitaciones del juego, mientras el mismo agente sin motivación sólo pudo llegar a ver dos. La puntuación conseguida por la primera IA fue de 2461 puntos con 50 fotogramas y 3439 analizando el juego utilizando 100 millones de fotogramas:

BonusMontezuma

Niveles superados sin “bonus” (motivación) o con “bonus”. Fuente.

Este es el documento publicado por Google Deepmind, en él podéis encontrar con todo detalle matemático cómo han conseguido añadir esta característica a su IA.

Aunque pueda parecer que estos resultados no tienen mucha utilidad en el mundo real, el equipo de Google DeepMind ya está trabajando para aplicar esta técnica a modelos reales como el análisis del clima o incluso enfermedades.

Además amigos, la cosa se pone aún más interesante, los nuevos desafíos de Deepmind son ahora los juegos en 3D (¿alguien ha gritado DOOM?) y de estrategia en tiempo real (como el famoso Starcraft).

Ahora sí que empieza el espectáculo.

Enlaces:

Wired

The Verge

Google Deepmind DQN

Bonus:

Código fuente de Montezuma´s Revenge Atari 2600

Entradas relacionadas: