(Esta entrada es la novena parte de una serie que cubre un proyecto personal que realicé en el verano de 2014; pueden ver todas las partes aquí [1]).
Hace seis meses dejé colgando mi serie acerca de mi proyecto del verano de 2014. Planeo terminarla, porque ya me falta muy poco qué contar de ella.
Como había estado relatando, utilizando un Teensy++ 2.0 y un CP2102, pude programar un circuito que me permitía emular un controlador de PS3 (y, en general, cualquier dispositivo USB HID), incluyendo las guitarras y baterías de los juegos musicales como Rock Band y Guitar Hero.
Después comencé a relatar mi historia de cómo empecé a coleccionar los trofeos de todos mis juegos, y que rápidamente llegué a la conclusión de que podía obtenerlos todos… excepto por los juegos musicales.
No me malentiendan; juego Rock Band razonablemente bien en la modalidad difícil, y si no me equivoco debo de pasar el 80% de las canciones en modo experto (es posible que más). Con mucha práctica, podría pasar el 100% de las canciones; con muchísima más práctica podría sacar casi todos los trofeos en Rock Band 2, The Beatles: Rock Band, y Guitar Hero Metallica.
Sólo no quiero estar practicando 16 horas al día durante meses para lograrlo. Además de que están los trofeos en equipo y similares, donde no importa qué tan bueno sea yo, en varios se necesita una banda de 4 personas tocando en modo experto.
Traté de sacar los trofeos yo solo, y la consecuencia fue que durante dos años no saqué trofeos de Rock Band 2 ni de Guitar Hero Metallica. Y podría haber sacado de The Beatles: Rock Band, pero consideraba que era suficiente estar practicando Panic Attack [2] en bajo y Enter Sandman [3] en guitarra como para echarme más al hombro.
Durante dos años, si toqué mi guitarra de plástico (que, siendo honesto no fueron tantas veces), fue para prácticar esas dos rolas. Y estuve cerca de sacar los trofeos; la primera sólo tenía que sobrevivir (pero nunca pude sobrevivir la parte entre el “odd rift” y el “organ solo 2”), y la segunda tenía que alcanzar cierta puntuación (me quedaba corto por unos cuantos miles de puntos, porque perdía mi combo en el solo).
Si no tuviera nada qué hacer durante varios meses (unos seis, digamos), y nada más me dedicara a practicar, a lo mejor podría hacerlo. Pero nunca tengo nada qué hacer; siempre tengo que buscar casa porque me quedé homeless, o escribir una tesis, o preparar clase, o doctorarme, o ir a Guadalajara porque decidí conseguir novia en provincia, o preparar una clase, o hacer algo de mi otro trabajo, o qué sé yo.
E incluso si no tuviera nada qué hacer, me interesan más cosas que practicar rolas de Rock Band y Guitar Hero Metallica. Hay películas y series que ver, novelas y cómics que leer, restaurantes a los que hay que ir a probar la comida. Juego videojuegos para pasármela bien; no como segundo tercer trabajo.
(Debo hacer la aclaración de que, en algunos juegos, podría considerarse que tengo que trabajar para conseguir los trofeos; pero en general esto lo disfruto, y además de hecho puedo ver que me estoy acercando a obtener esos trofeos).
Así que decidí utilizar mi habilidad como programador y mis conocimientos técnicos para escribir un robot que tocara las rolas más difíciles por mí. En el caso de The Beatles: Rock Band, de hecho perfectamente (hay detales técnicos por los cuales no es trivial hacerlo perfecto para todas las rolas de los juegos).
En el caso de los juegos de Rock Band esto fue muy fácil porque toda la información de las notas está en archivos MIDI. En el caso de Guitar Hero, el formato es distinto (QB, le dicen), pero la idea es la misma. Me llevó algunas semanas estar cazando con una lanza la documentación en la red para averiguar cómo descifrar los formatos, y unos días más escribir una serie de programas (la mayor parte de ellos en Vala) que me permitían tocar las rolas casi automáticamente (tengo que iniciarlo manualmente; pero en el próximo verano espero poder programar el robot que haga todo solito).
Con esto pude conseguir los platinos de Rock Band 2 y The Beatles: Rock Band. Guitar Hero Metallica fue más difícil, porque nunca pude hacer que mi circuito programado emulara la fuerza con que uno golpea los tambores de la batería; alguna parte del protocolo nunca pude descifrarla, y cuando empecé a ganar bien me harté y sencillamente compré una batería para Guitar Hero World Tour y obtuve el único trofeo que me faltaba (irónicamente, uno de los más sencillos de obtener: pasar todos los tutoriales de los cuatro instrumentos).
Ahora tengo estos tres trofeos de platino, y en algún momento mi porcentaje de trofeos llegó a estar en 99.13%. Ahorita está en 97.26%, porque comencé Zone of the Enders: The 2nd Runner, y aunque está divertido y fácil he estado demasiado ocupado como para poder terminarlo, pero ahora sé que sí voy a llegar a 100% en algún momento de mi vida. Sólo no tengo mucha prisa en hacerlo.
El aspecto técnico del proyecto se me hizo fabuloso, y de alguna manera mucho más divertido que de hecho jugar en mi PlayStation 3. Estar diseñando los algoritmos y estudiando las secuencias de bytes que tenía que estar leyendo y escribiendo para poder lograr lo que quería fue satisfactorio por sí mismo, incluso descontando los trofeos. Espero en verano regresar al proyecto y poder mejorarlo (y hacerlo funcionar con otros juegos musicales, obviamente).
El aspecto ético del asunto también me parece interesante, y es acerca de lo que escribiré cuando termine esta serie en su décima entrada, como lo había planeado originalmente.

2 Comments To "Los juegos musicales"
#1 Comment By dixego On febrero 7, 2015 @ 9:03 PM
Con esa habilidad y dedicación, ¿no se te haría interesante escribir bots que jueguen juegos retro de NES, o cosas por el estilo? Apuesto a que sería un proyecto muy interesante.
#2 Comment By Canek On febrero 7, 2015 @ 9:59 PM
Para mí no, realmente. Ahora, si se tratara de “leer” la señal de video y que el control “jugara” por sí mismo, eso sí estaría más interesante, pero es endiabladamente difícil.