The videogame history timeline
This is an english translation of a previous post. I believe english readers could be interested in this project.
For a long time I have wanted to do a videogame history timeline. It would combine several of my interests: information visualization, history, time and, of course, videogames. Currently I have a class on videogame history (class blog in spanish) as a lecturer in the Design Department at the Universidad de los Andes and such a timeline would be useful (and neat).
I had the opportunity of creating a history timeline for a client and decided to use that code as the starting point for my timeline. This is why I can now present (drumroll):
The videogame history timeline
The URL is: http://www.mauriciogiraldo.com/vgline/beta/
The timeline showcases eight types of events:
- people (birthdates) of relevance: game designers and developers, scientists, artists, entrepreneurs.
- business: companies or important business events.
- consoles (or hardware such as PCs) where videogames are executed.
- games
- accessories and controls: peripherals that are connected to consoles.
- technologies of importance.
- cultural: events that have somehow influenced the world of videogames (books, movies, ideas or theories, etc.).
- other events that contextualize what was happening worldwide when the other types of events happened.
Every event can be related to other events in three ways:
- creation (event A created event B): mostly used to relate a person with the games he/she created
- inspiration (event A was inspired or is “plainly” related to event B)
- series (event A precedes event B): for “sequences” of events (eg.: the “Mario” series by Nintendo are assumed to be sequential editions even though they were developed for different consoles)
Presenting this information clearly to the user is rather complicated. Not to say that I am finished with the interface. It still needs work and I want to explore more possibilities.
You need to press SPACEBAR in order to see the relationships between events:
Given that you see a lot of relations between events in the default display mode (and even more events are missing from the timeline) I decided to allow the user to turn on/off event types and relation types. This way, if I turn off all events except people and games, I can see the screen with less “noise”:
It’s difficult (maybe even impossible) to plot all events and relations while completely avoiding superposed lines (or maybe I need to investigate a little more). However, I believe that the current solution is easy to understand once you have played with it for a few minutes (I didn’t set out to create a conventional interface; I wanted to experiment a little).
This is what I see if I turn on series and games:
You can see that Doom II goes after Doom and that there is another later game in the series. Riven goes after Myst, etc.
Search
Users are lazy (okay, all but you) and if they don’t find what they are looking for in a few seconds they will go somewhere else. Also, in large sets of information (even though the timeline currently has only a few hundred events) it is difficult to predict how a user expects to find some particular data point. This is why the timeline has a search box:
Viva la open source!
In my web developing years I have benefitted from a large amount of open source libraries/programs/content and, every time I can, I try to give something back. In this case I have created a Google Code project so, whoever knows ActionScript 3 and Flash, can take a look and see what benefits he/she can find there (I don’t plan on supporting this code, use under your own risk).
Things to do
The timeline is far from finished. Among the things I want to do:
- content in spanish: I am using this timeline in my Videogame history class and I want the content to be fully translated
- complete content: a lot of information is missing or incomplete
- experiment: this basic information setup can be explored in many different ways
- share: there is an RSS feed with the whole content so anyone can use it to visualize it (an API would be more elegant) although my current server is a little unsteady at the moment
Technical stuff (and other)
Several people have collaborated, inputting data or with their opinion. Among them: Nicolás Arteaga, Vanessa Gómez, Andrea D’Macedo, Manuel Piñeros, Sebastián Ramírez, Rafael Tudela y Cárlos López. If you want to collaborate or if you find any innaccuracies, please contact me.
If you want to know what powers the timeline: content is fed via Drupal (which works on top of PHP, MySQL and Apache) to which I connect from Flash using AMFPHP (Drupal has a module for AMFPHP which I had to modify a bit). This has the benefit of automagically generating a plain text version of the content. The server is a little bit slow (the whole database is loaded in the first request… that’s why you see the quiz). Any performance ideas are welcome. Keep in mind it is a shared hosting environment.
This project has been supported by Powerflasher, the people behind FDT (the cool software I use to write all the ActionScript you see in Google Code).
Una línea de tiempo de videojuegos
Hace rato que quiero hacer una línea de tiempo de la historia de los videojuegos. Combinaría varios de mis intereses: visualización de información, historia, tiempo y videojuegos. Actualmente dicto un curso de historia de los videojuegos en el Departamento de Diseño de la Universidad de los Andes y una línea de tiempo sería útil y elegante.
Por cosas de la vida un cliente me comisionó un trabajo de una línea de tiempo (que luego linkearé una vez esté terminado) y decidí usar ese proyecto como punto de partida para mi línea de tiempo. Es por esto que puedo ahora presentar (drumroll):
La línea de tiempo de la historia de los videojuegos
El link es: http://www.mauriciogiraldo.com/vgline/beta/
Decidí destacar ocho tipos de eventos en la historia de los videojuegos:
- personas (a partir de su nacimiento) de importancia: creadores de juegos, científicos, artistas, empresarios.
- negocios: empresas o eventos corporativos relevantes.
- consolas o soportes (hardware) sobre el cual se ejecutan los videojuegos.
- juegos
- accesorios y controles que funcionan o se conectan a las consolas.
- tecnologías relevantes.
- culturales: eventos que han influenciado de diferentes formas el mundo de los videojuegos (libros, películas, ideas o teorías científicas, etc.).
- otros eventos que sirven para contextualizar los anteriores con respecto al mundo en su momento.
Cada tipo de evento puede estar relacionado a otros de tres formas:
- creación (evento A creó evento B): por lo general usado para relacionar una persona con los juegos que ha realizado
- inspiración/relación (evento A está relacionado o fue inspirado por evento B)
- series (evento A precede a evento B): para “secuencias” de eventos (ej.: los diferentes “Marios” de Nintendo se asumen como sucesiones secuenciales)
Toda esa información presenta el problema de cómo visualizarla de la forma más clara para el usuario. Para hacer visibles las relaciones se oprime la tecla SPACEBAR:
En el estado inicial aparecen muchas relaciones y aún falta poner muchísimos eventos. Es por esto que decidí permitir al usuario encender/apagar eventos y líneas de relación (puede usar el teclado). De esta forma, si apago todos los eventos menos personas y juegos puedo ver la misma pantalla con menos “ruido”:
Es difícil (hasta diría que imposible) hacer que la interfaz grafique automáticamente todos los eventos y relaciones evitando que líneas se superpongan. Sin embargo creo que la actual solución es agradable y fácil de entender una vez uno le ha metido un par de minutos a jugar (no era la idea hacer una interfaz convencional, quería experimentar un poco con eso).
Esto es lo que se ve si prendo solamente las relaciones tipo serie junto con los juegos:
Se puede apreciar que Doom II va después de Doom y que hay otro juego posterior en la serie. Riven es posterior a Myst, etc.
Buscador
Los usuarios son flojos (bueno, todos menos usted) y si no logran encontrar lo que están buscando en un par de segundos, desistirán e irán a otro sitio web. Adicionalmente, en grandes cantidades de información es difícil predecir por dónde van a llegar a un dato en particular. Es por esto que la línea de tiempo cuenta con un buscador:
¡Viva el open source!
En mis años de trabajo web me he apoyado en gran cantidad de librerías/programas/contenidos web libres (conocidos en inglés como open source) y, cada vez que puedo, procuro colaborar de vuelta. En este caso he abierto un proyecto en Google Code para que, el que sepa de ActionScript 3 y Flash, mire a ver que puede sacar de ahí (no pienso dar soporte a ese código, úselo bajo su propio riesgo).
Cosas por hacer
La línea de tiempo está lejos de terminarse, pero es un comienzo. Entre las cosas que quiero hacer:
- contenido en español: desafortunadamente la gran mayoría del contenido sobre videojuegos disponible en la web se encuentra en inglés, y quisiera tener todo al menos en inglés y español
- contenido completo: falta una gran cantidad de información (¿quién dijo SEGA?) y quisiera que fuera una línea exhaustiva y precisa (fechas)
- experimentar: una vez haya muchos más eventos será interesante jugar visualmente con el contenido
- compartir: hay un RSS con todo el contenido de la línea y la idea es que quien quiera hacer su propia visualización pueda usar ese contenido (un API sería más elegante) aunque la verdad mi servidor es un poco precario para aguantar mucho tráfico
Detalles técnicos (y demás)
Varias personas han colaborado, ya sea ingresando eventos o dando su opinión. Entre ellos: Nicolás Arteaga, Vanessa Gómez, Andrea D’Macedo, Manuel Piñeros, Sebastián Ramírez, Rafael Tudela y Cárlos López. Si quiere colaborar o si encuentra alguna impresición en el contenido de la línea, no dude en contactarme.
Si quiere saber qué hay detrás de todo, la línea funciona sobre Drupal (que, a su vez funciona sobre PHP, MySQL y Apache) al que me conecto desde Flash usando AMFPHP (Drupal tiene un módulo para AMFPHP pero igual ha tocado meterle algo de mano para que funcione con las relaciones). Esto tiene la ventaja que se genera automáticamente una versión texto plano del contenido. El servidor está un poco lento (en la primera cargada ya que trae toda la base de datos) y tengo que ver como optimizar mejor todo para que ande mejor (se reciben ideas).
El proyecto ha sido apoyado por Powerflasher, la gente detrás de FDT (el programa que uso para escribir todo ese ActionScript que ve en Google Code).
El chef recomienda: Johnny Lee y el Wii
Varios meses sin publicar acá (un poco distraído en general) pero regreso con unos buenos links. Sin más rodeos:
Johnny Wii
Johnny Lee es un estudiante de doctorado del Human-Computer Interaction Institute de la Carnegie Mellon University. Lee posee varias patentes y trabaja desarrollando versiones simples y económicas de tecnologías usualmente costosas. Como él mismo menciona en su enunciado de investigación:
My work solves real world problems of applying research concepts by simplifying implementation and reducing system cost. This does two things: first, it enables more researchers to explore the domain advancing the state of research; second, it results in a more practical commercialization increasing distribution, adoption, and overall impact.
Entre los proyectos de Lee se destaca el trabajo que hace con el Nintendo Wii. Usando la tecnología presente en el control del Wii, Lee ha creado desde interfases similares a las que se vieron en la película Minority Report, hasta ambientes inmersivos tridimensionales. Lee documenta sus proyectos Wii en su sitio web. El software requerido para uno implementar esas interfases, si es que tiene un Wii, yo tengo el mío :), está disponible para descarga. Sin embargo lo que más descresta es la simplicidad como explica y presenta los proyectos, como se puede ver en el siguiente video:
vía Gizmodo
Hay otro video de la interfaz tipo Minority Report, un video de un pizarrón electrónico y un impresionante video de pantallas plegables, todos muy recomendados.
Recomendaciones del chef
Nos gustan las recomendaciones. A pesar de tener una amplia selección en un menú, algunos restaurantes tienen “menú del día” o “el chef recomienda”. ¿Por qué destacan un producto sobre otro? ¿Acaso no todos los platos son igual de buenos? Barry Schwartz, psicólogo y profesor en Swarthmore College plantea en su libro The Paradox of Choice: Why More Is Less que la multiplicidad de opciones no necesariamente nos beneficia:
Infinite choice is paralyzing, Schwartz argues, and exhausting to the human psyche. It leads us to set unreasonably high expectations, question our choices before we even make them and blame our failures entirely on ourselves.
En su charla en TED Talks Schwarz menciona ejemplos que aclaran su idea que muchas opciones en realidad perjudican nuestro bienestar generándonos un estrés innecesario. En un restaurante contamos con un mesero que, esperamos, nos va a dar una buena recomendación basada en la información que proveamos: “no puedo comer pescado y no me gustan los pepinillos”. En internet, sitios web como Amazon se basan en millones de clics que hacen los compradores para encontrar patrones que sivan como punto de partida para recomendaciones: de los que compraron la última película de Harry Potter una gran cantidad compró Piratas del Caribe. Entre más compras se hagan (y más compras haga usted) más precisa es la recomendación… o por lo menos eso creemos; si compra un regalo para alguien con gustos muy diferentes a usted estará “dañando” futuras recomendaciones.

¿Qué me recomienda?
¿Cómo generar un sistema de recomendación más preciso? Entre más acertada sea la recomendación, más valioso será el sistema. Precisamente fue esta la razón por la que Google prevaleció sobre Altavista, AskJeeves y otros buscadores que estuvieron primero: daba mejores resultados a las búsquedas (hoy día algunos pueden debatir eso pero ya Google está en una posición ultra dominante que ha sabido explotar). En el mundo musical la cosa es más complicada: ¿si me gusta “Let It Be” me van a gustar todas las canciones de los Beatles? ¿solamente las escritas por Paul McCartney? ¿sólo las baladas? ¿sólo las que son dedicadas a alguien cercano al autor? ¿las que tienen determinado patrón compositivo? Todos quisiéramos tener una emisora personalizada que pusiera los hits que más nos gustan pero que también nos sugiera nueva música: que no suene un reguetón después de “Hey” de Pixies… de hecho que no suene nunca un reguetón. Hasta el momento la mayoría de sistemas de recomendación, como los de Amazon y Google, se basan en modelos matemáticos. Este artículo cubre (superficialmente) tres aproximaciones a este problema que se reflejan en tres sitios web: MeeMix, Pandora y Last.fm. Para los últimos dos sitios hay mayor detalle en este otro artículo:
Algorithmically, Pandora versus Last.fm is something like the nature versus nurture debate. Taking the nature side, Pandora’s recommendations are based on the inherent qualities of the music. Give Pandora an artist or song, and it will find similar music in terms of melody, harmony, lyrics, orchestration, vocal character and so on. Pandora likes to call these musical attributes “genes” and its database of songs, classified against hundreds of such attributes, the “Music Genome Project.”
On the nurture side (as in, it’s all about the people around you), Last.fm is a social recommender. It knows little about songs’ inherent qualities. It just assumes that if you and a group of other people enjoy many of the same artists, you will probably enjoy other artists popular with that group.
Otros están experimentando con la aplicación de algoritmos matemáticos ya no a la recomendación sino a la creación. Dichos algoritmos se inspiran en la evolución biológica (reproducción, mutación, recombinación y selección):
EAs take two parent designs – for a boat hull, say – and blend components of each, perhaps taking the surface area of one and the curvature of another, to produce multiple hull offspring that combine the features of the parents in different ways. Then the algorithm selects those offspring it considers are worth re-breeding – in this case those with the right combination of parameters to make a better hull. The EA then repeats the process. Although many offspring will be discarded, after thousands of generations or more, useful features accumulate in the same design, and get combined in ways that likely would not have occurred to a human designer.
[...]
To encourage more of this kind of work, SIGEVO runs the annual Human Competitiveness Awards, dubbed the “Humies”. The idea is to reward designs produced by EAs that are “competitive with the work of creative and inventive humans”.
[...]
Celebrated UK innovator James Dyson, inventor of the bagless vacuum cleaner, has a more emotional objection. “Evolutionary algorithms will mean the end of those exciting stories about how people made great inventions by accident,” he says. “Human ingenuity and intuition should remain crucial in making a success of any product.”
El chef recomienda estos otros posts anteriores relacionados:
Actualización 2/6/2009:
Desde su salto a la fama, Johnny Lee ha hablado en las TED Talks y consiguió trabajo en Microsoft donde está trabajando en Natal, un proyecto que pueden ver mejor en su blog y en este video:
Pueden ver una demostración de las diferentes tecnologías disponibles en Natal en la rueda de prensa de Microsoft en E3 (fijarse en la parte final del video).
Web design patterns, Will Wright y Spore
Un problema de diseño web puede tener muchas soluciones, no todas necesariamente correctas (lo correcto o apropiado de la solución depende en buena medida del contexto en el que se utiliza). Esto lo había mencionado antes, pero vale la pena ampliar. Tomemos, por ejemplo, algo aparentemente muy sencillo: la restricción de acceso a un sitio. ¿Cuándo es el momento apropiado para pedir el login del visitante? Algunos sitios web permiten que el usuario los utilice sin exigir un registro a menos que éste quiera interactuar con otros usuarios:

… otros, en cambio, excluyen por completo a usuarios nuevos:

… y también hay casos donde el tipo de servicio que ofrece el sitio hace obligatoria la identificación del usuario:

Eso sin tener en cuenta si es necesario exigir que el usuario se registre ni los detalles que se pueden ver en las imágenes como el link “¿olvidó su clave?”, la casilla “recordar mi identidad en este computador” y otros elementos que cambian de un sitio a otro. La “respuesta correcta” depende de diferentes factores como el modelo de negocio del sitio, el carácter costo/beneficio de ese paso (o pasos) adicional (suele ser dispendioso registrarse en un sitio web, al punto de perder potenciales usuarios en ese punto a menos que el contenido o servicio que ofrezca sea valioso para el usuario), el tipo de servicio que se ofrece, y más.
El caso del login, a pesar de aparentemente ya “estar inventado”, muestra la gran cantidad de consideraciones que deben tenerse en cuenta al crear interfases web (o de cualquier tipo). Pero bueno, como diría el Chapulín Colorado: ¡que no panda el cúnico! ya que existen lo que llaman:
Patrones de diseño web
Un patrón de diseño web (web design pattern) describe la solución óptima a un problema común de diseño web en un contexto específico:
Patterns are optimal solutions to common problems. As common problems are tossed around a community and are resolved, common solutions often spontaneously emerge. Eventually, the best of these rise above the din and self-identify and become refined until they reach the status of a Design Pattern. [1]
Una definición bastante darwiniana. Los patrones se generan a partir de una especie de evolución, donde la mejor solución tiende a prevalecer. Los problemas pueden ser muy simples: cómo presentar grandes cantidades de información que viene organizada alfabéticamente; o muy complejos: cómo manejar cambios de estado por medio de transiciones. En internet hay muchas inciativas por agrupar y categorizar esos patrones, algunas de las cuales enumero a continuación:
- Yahoo! Design Pattern Library: En Yahoo! tienen un impresionante listado categorizado de patrones que usan en sus propios proyectos acompañados de imágenes, descripción y recomendaciones. Cada patrón está complementado por una entrada en el blog de interfases.
- A Pattern Library for Interaction Design: De Martijn van Welie, holandés, PhD en Human Computer Interaction y quien ha recopilado y organizado una gran cantidad de patrones e incluye links a otros sitios similares.
- Web Patterns Project: Iniciativa de unos estudiantes de U. C. Berkeley que se preguntaron “Our primary motivation for this project was to consider why user experience, particularly around web-based user interfaces, is so poor across the Berkeley domain. Why is a good user interface so difficult to create? Why is it that at U.C. Berkeley, a leader in technology research, a place of high academic achievement and innovation, good web user experience is hard to come by?”. Este suele ser un sentimiento generalizado.
Adicionalmente está User Interface Engineering, una firma de investigación en usabilidad de interfaces. Tienen una gran cantidad de artículos en el tema.
SPORE
En otra área del diseño (juegos en este caso) pero muy afín con la teoría de la evolución está Will Wright. Mundialmente conocido por ser el diseñador de SimCity y The Sims, exitosos juegos de video: el primero creó un nuevo paradigma (no se pierde ni gana) y el segundo es uno de los más vendidos. Wright fue portada y protagonista de una edición dedicada a juegos de la revista Wired en la que habla de Spore, un juego que permitirá al jugador simular la evolución de una especie (desde un organismo unicelular hasta la conquista del espacio). El juego aún no ha sido lanzado pero las expectativas son altas. En Marzo de 2007 Wright fue invitado a las TED Talks donde hizo una breve presentación de ese juego:
¿El fin de las interfaces aburridas?
Hay que admitirlo: la mayoría de las interfaces humano-computador son aburridas. Desde el lanzamiento del Mac OS en 1984 hasta el Windows Vista en 2007, empresas han intentado redefinir el paradigma de interacción. Sin embargo hasta el momento seguimos usando los mismos dispositivos de hace treinta años. En Kiss Boring Interfaces Goodbye, la revista Wired describe Leopard, la próxima generación del Mac OS que proveerá a diseñadores de interfaces con Core Animation, una librería de programación y animación nativa del sistema operativo.
Pero aún seguimos con el mouse y el teclado. En los setentas y ochentas, antes del auge de las consolas de juego, existían unas mesitas con uno o varios juegos de video incluidos. Juegos como Space Invaders en esas mesas tenían un aspecto similar a este:
Uno se podía tomar una gaseosa mientras retaba a sus amigos y esperaba la pizza. Esas mesas eran un televisor de 14 pulgadas dentro de una caja de la cual salían los joysticks y botones por un lado. Hoy día se pueden conseguir esas mismas mesas en tiendas de antigüedades (la foto tiene un link a una tienda… se reciben regalos). Hace poco Microsoft anunció Surface, una mesa con una pantalla (un poco) más grande, sensible a múltiples puntos de contacto (similar a las que ya se habían mencionado antes) y que piensan instalar en bares y tiendas por todo el mundo. Hay unos ejemplos interesantes de esa mesa en uso:
Por otro lado, Jonathan Harris, Marcos Weskamp y Aaron Koblin, tres expertos en visualización de datos, han sido reunidos por 37signals en este chat donde hablan de sus proyectos.
Finalmente, hay una presentación muy buena en TED de Photosynth, un grupo de investigación de Microsoft en el análisis de fotografías para construir modelos tridimensionales. Vale la pena verlo:







