Magnate de la montaña rusa no era el juego de computadora más de moda en 1999. Pero si echabas un vistazo debajo de los píxeles (las atracciones desvencijadas, las multitudes de gente hambrienta, sedienta y vomitando (y los conserjes trapeando a su paso)), en el fondo, al nivel del código, veías una artesanía tan obsesiva que rayaba en la locura. Chris Sawyer, el único desarrollador del juego, escribió todo en ensamblaje.
Ciertos lenguajes de programación, como Python, Go o C++, se denominan de “alto nivel” porque funcionan como un lenguaje humano, escrito en comandos y modismos que podrían encajar en un evento de poesía. En términos generales, una pieza de software como un compilador transforma esto en lo que la máquina realmente lee: bloques de 1 y 0 (o tal vez hexadecimales) que le dicen a los transistores reales cómo comportarse. El ensamblador, el más bajo de los lenguajes de “bajo nivel”, tiene una correspondencia casi uno a uno con la lengua nativa de la máquina. Está codificando directamente en metal. Construir un juego de computadora complejo a partir del ensamblaje es como tejer un tapiz con piel de gato mudada.
¿Por qué alguien haría esto? Hace poco le pregunté a Sawyer, que vive en su Escocia natal. Me dijo que la eficiencia era una de las razones. En la década de 1990, no todas las herramientas para la programación de alto nivel estaban ahí. Los compiladores eran terriblemente lentos. Los depuradores apestaron. Sawyer podría evitarlos haciendo lo suyo en el ensamblaje x86, la lengua franca de los chips Intel.
Sin embargo, ambos sabíamos que esa no era la verdadera razón. La verdadera razón fue el amor. Antes de pasar a las montañas rusas, Sawyer había escrito otro juego en ensamblaje, Magnate del transporte. Pone a los jugadores a cargo de las carreteras, estaciones de tren, pistas y puertos de una ciudad. Me imaginé a Sawyer como un aficionado a los modelos de trenes: colocando cada tramo de vía, cosiendo a mano césped artificial, cada detalle como una elección y una tarea. Para mover estos píxeles cuidadosamente elaborados desde mapas de bits a la visualización, Sawyer tuvo que aprovechar todo el potencial del chip. “Magnate de la montaña rusa Sólo surgió porque estaba familiarizado con los límites de lo que era posible”, me dijo.
¿Trabajar dentro de los límites? Quizás sea una idea extraña, en esta era de abundancia digital, cuando llamar a una sola función en un algoritmo de entrenamiento de IA puede involucrar un millón de GPU. Con el ensamblaje, obtienes una cosa y solo una cosa, y es lo que pides, incluso, como muchos codificadores han aprendido por las malas, si está mal. El montaje es brutal y hermoso en ese sentido. Requiere que digas exactamente lo que quieres decir.
he hecho montajes creadores un flaco favor. Querían que las cosas fueran más fáciles, no más difíciles. Me imagino que estaban cansados de cargar tarjetas perforadas y accionar interruptores en sus leviatanes steampunk. Quizás soñaron con un mundo como el nuestro, donde las computadoras puedan hacer tanto con una guía mínima.