¿Qué debería aprender un desarrollador de motores de videojuegos?

En el pasado GameLab, y más allá de las charlas de grandes gurús explicando sus batallitas, también fue posible asistir a ponencias más de tipo orientación para aquellos interesados en dedicarse al mundo del desarrollo de videojuegos. Todas eran muy interesantes, pero quizá la que más me llamó la atención  por su título fue la ofrecida por Mike Acton, director de motores (Engine Director) en Insomniac Games, creadores de sagas con tanta solera como Spyro o Ratchet & Clank (de éste último hay hasta una película de animación relativamente reciente). La ponencia llevaba el título “Process I wish they taught engine programmers in school” (Procesos que desearía que enseñaran a programadores de motores en la escuela). Un tema interesante no solo para los estudiantes, sino toda una llamada a los propios docentes. Su punto de partida era el hecho que, una vez tras otra, se encontraba que desde que un nuevo miembro se incorporaba a su equipo hasta que estaba listo para valerse por si mismo pasaban al menos dos años en los que debía ser formado. Desde su punto de vista, este problema venía dado por algunas costumbres o prácticas de programación que se enseñan en las escuelas técnicas o de ingenierías, que si bien sobre el papel o en una gran cantidad de proyectos funcionan, para la programación de  motores de videojuegos deben ser corregidas. El meollo del asunto según su punto de vista es que a menudo tendemos a sobrecomplicar las cosas bajo la justificación de la escalabilidad. Se nos plantea un problema y enseguida hacemos API’s o capas de abstracción que permitan resolver ese problema…...

Ron Gilbert en el Gamelab

Recientemente, del 29 de Junio al 1 de Julio, se celebró en Barcelona el Gamelab, el congreso internacional del videojuego y el ocio interactivo. Si bien se trata de un encuentro a la medida de todo amante de los videojuegos, resulta especialmente interesante para los nuevos desarrolladores, ya sea tanto como expositor para sus creaciones como para aprender de los consejos de los expertos a través de conferencias y talleres. Como cada año, los asistentes pudimos disfrutar de un seguido de ponentes destacados. Entre ellos, se encontraba Ron Gilbert, creador aventuras gráficas en LucasArts, entre ellas grandes éxitos todavía vivos en el imaginario popular como Maniac Mansion o la saga Monkey Island. Por algo de aquí sale el nombre de los 3HM. En este caso, no se trató tanto de una conferencia en toda regla como de una charla de café con público, en la que poder explicar vivencias y anécdotas. El punto de partida de la charla fue su percepción intemporal de algunas de sus aventuras gráficas. El poderse sorprender de ver jugar a un niño de cinco años que todavía no sabe leer a un Monkey Island y ver que le tenía totalmente fascinado. Ligando este hecho con su experiencia en Humongous Entertainment, fundada por él para crear  programas educativos, llegaba rápido a una primera conclusión: que los niños pequeños son grandes evaluadores de videojuegos. Por una parte, porque (como los borrachos), no mienten. Son directos y sutiles como una maceta que cae sobre tu en tu cabeza. Y por otra parte, porque a ellos no les puedes distraer con cuestiones tecnológicas (número de polígonos, framerates, etc)....

Reunión de Usuarios de MSX (RUMSX)

La pasada semana del 14 de Junio, mientras en Los Angeles se tenían que conformar con celebrar el E3, ese mismo sábado en Barcelona se celebraba la 49a Reunión de Usuarios de MSX (RUMSX), organizada por la Asociación de Amigos del MSX (AAMSX). Esta era la tercera convocatoria, de distintas reuniones de usuarios de ordenadores “retro”, a ritmo de una al mes. Antes vinieron Amstrad Eterno (16 de Abril), y Explora Commodore (7 de Mayo). En este caso, nos centramos en la reunión del viejo formato japonés de 8 bits (1983-1995), que si bien no tuvo tanto éxito en Europa en relación a otros sistemas, si que tuvo bastante aceptación en España. Sobre todo por la calidad de sus juegos japoneses, especialmente los de Konami. Normalmente, en este tipo de reuniones se pueden encontrar “stands” de distintas comunidades relacionadas con el sistema en cuestión. Los más típicos vendrían a ser los que venden “merchadising” o juegos antiguos. Si bien en la época en la que vivimos encontrar este tipo de producto no es complicado vía Internet, siempre es interesante poder “ir de tiendas” y hacer el intercambio en mano. Al final, también se aprecia la experiencia de poder fisgar en persona el producto. Y como no, siempre puedes encontrar alguna ganga u oportunidad que se resista a la venta por Internet. En esto, no hay fronteras. Incluso vinieron unos chicos de un club Finlandés cargados de juegos japoneses en formato cartucho. Dentro de los stands de ventas, quizá los más interesantes son los que venden juegos nuevos. Esto es en el sentido literal de la palabra: juegos desarrollados a...

Un paso más de la inteligencia artificial en los videojuegos: AlphaGo (II)

Retomando lo que comentamos en la anterior entrada, nos quedamos discutiendo sobre que uno de los elementos que hacían de Go un juego más complejo que el ajedrez era un mayor branching factor (250 vs 35) además de un mayor número de turnos en la partida (200 vs 40). La mayor profundidad del árbol no es el problema esencial, ya que para el caso del ajedrez ya se usan funciones heurísticas para estimar en qué estado se encuentra una partida. Y es que el segundo elemento que hace de Go un juego más complejo es precisamente dificultad en definir una función heurística para este juego. Así como en el ajedrez tenemos una idea más o menos aproximada sobre como va una partida viendo qué piezas tiene aún en posesión cada jugador, en el Go la cosa no está tan clara. Es por este motivo que el equipo de AlphaGo decidió atacar este problema con una mezcla de técnicas de deep learning y el uso de árboles, tal y como se explicará a continuación. En una primera fase, se recopilaron más de 30 millones de movimientos procedentes de jugadores profesionales para entrenar una red neuronal que permitiera predecir el próximo movimiento a realizar. A partir de partidas reales, se trata de para cada estado de cualquier partida, almacenar el estado de la partida en cuestión y el movimiento que se decidió hacer en esa jugada, dando lugar al siguiente estado de la partida. De esta forma, se tiene una red neuronal cuya entrada de datos es un estado de la partida y cuya salida son los movimientos más probables. Pero...

Un paso más de la inteligencia artificial en los videojuegos: AlphaGo (I)

Cada vez más la inteligencia artificial se está abriendo paso en el mundo de los videojuegos, convertíendose en un elemento clave en el diseño de cualquier videojuego. La evolución de los algoritmos de aprendizaje, tales como las redes neuronales convolucionales, están permitiendo que se mejoren algoritmos clásicos como el reinforcement learning, que se basan en premiar las acciones que han dado un buen resultado, de forma que el jugador controlado por el ordenador se vaya aprendiendo automáticamente qué acciones le son más beneficiosas en el momento de tomar alguna decisión. La integración de las redes neuronales convolucionales con los algoritmos de reinforcement learning ha dado lugar a las técnicas que hoy en día se conocen como deep reinforcement learning. Prueba de la revolución que están suponiendo es la existencia de un equipo de Google llamado Google DeepMind, que tiene como objetivo construir algoritmos que son capaces de aprender por ellos mismos a partir de los datos originales. Una prueba de su éxito ha sido el desarrollo de AlphaGo, el primer programa informático que consigue derrotar un jugador de Go profesional. Lo hizo en Octubre de 2015 derrotando por 5-0 al campeón europeo Fan Hui y, más recientemente, en Marzo de 2016 derrotando por 4-1 a Lee Sedol, quien es considerado el mejor jugador del mundo. Y quizás os preguntaréis: ¿Qué tiene de especial el juego Go respecto otros juegos clásicos como el ajedrez en el que ya se había conseguido que un programa informático derrotara un jugador profesional? Pues bien, hay dos elementos diferenciales que hacen de Go un juego mucho más complejo que el ajedrez. En esta entrada nos...

Campeonatos interuniversitarios de eSports

Cada año se celebran los Campeonatos Universitarios de Catalunya (CCU), donde todos los miembros de la comunidad universitaria (estudiantes, personal docente e investigador y personal de administración) se enfrentan en competiciones deportivas individuales o por equipos. Precisamente este curso académico 2015/2016 los Campeonatos están organizados por la UOC. El objetivo de los Campeonatos es fomentar valores de esfuerzo, superación y espíritu deportivo, así como ofrecer un entorno lúdico y distendido donde relacionarse e implicarse en el mundo universitario. Cabe destacar que tienen una muy buena acogida: por ejemplo, este año la 2a edición de UNIRUN (una carrera universitaria de 6.779 metros) se celebró en Barcelona el 7 de marzo y contó con 3.200 participantes. Además de los típicos deportes de competición como el futbol, atletismo, artes marciales o natación, los Campeonatos también habían incluido históricamente otras actividades como el ajedrez (no entremos a discutir si el ajedrez es un deporte). Como novedad de este año, se ha incluido otra categoría de competición: los e-Sports. Ya pocos se sorprenden de la atención que reciben las competiciones de videojuegos: las previsiones del negocio alrededor de los e-Sports para 2016 se estiman en 500 millones de dólares, y ya existen programas en canales de televisión generalista e incluso canales temáticos dedicados íntegramente a los eSports (sin contar con la retransmisión por Internet, claro). Los videojuegos seleccionados en los Campeonatos han son sido dos de los más populares en la actualidad en la escena competitiva: Hearthstone y League of Legends. Hearthstone es un juego de cartas coleccionables (al estilo de Magic: The Gathering) que enfrenta a dos personas. Cada una construye una baraja de 30 cartas que representan las criaturas, armas y conjuros que puede usar en...