27 de enero de 2014
El 0xb73eb000 era un bar bastante peculiar, para empezar era una dirección de memoria, pero incluso para los estándares del mundo digital era un bar raro. No era como el 0xa120d327, un espacio respetable y bien conectado. No, en absoluto, si el enorme conjunto de memoria en ejecución fuera una gran ciudad el 0xb73eb000 estaría en un callejón apartado y sucio, en el bajo de un edificio casi en ruinas...

CURRENT_USER suspiró y abrió la puerta de entrada. El interior de la estancia estaba iluminado con neones azules, cargada de humo grisáceo que provocaba curiosos juegos de color en la interacción de las partículas con la luz, sonaba una música electrónica que bien podría haber compuesto Yuzo Koshiro en los noventa. Se encogió de hombros, bastante retro. Los parroquianos no repararon en él, hacían lo que en todos los bares del universo: estar cabizbajos y llevarse meditabundamente vasos llenos a la boca. Sí, era un mundo digital y realmente no estaban bebiendo, pero sería demasiado complejo describir qué estaban haciendo exactamente…  era equivalente ya que terminaban exactamente igual: con menos capacidad de procesado y arrepentidos de los errores aún en memoria.



         Fue hacia el único hueco aún libre de la barra, en una esquina junto a un personaje sin las texturas cargadas, pero con una generosa cuenta de polígonos, con forma humana y unos brillantes ojos tristes. CURRENT_USER se apoyó delicadamente en la barra de color rojo incandescente y le miró disimuladamente. Descubrió, demasiado tarde, que su vecino sin texturas estaba en esa fase de la borrachera, la que consiste en recitar tu autobiografía en voz alta al primer desgraciado que se te acerque, mientras lo invitas a copas.


―ACTOR_GUARD_07, encantado―dijo, lanzándole a CURRENT_USER una señal amistosa (una señal con el comando kill, que en los entornos UNIX es una palabra mucho menos agresiva y fatal que en el idioma inglés del mundo real) el equivalente a estrechar la mano. Después se giró hacia el pedazo de código titilante de la barra y gritó―¡Dos más de lo mismo!

         Le encaró de nuevo, para seguir hablando:

―Mierda de día, pero todos lo son, viejo... Apuesto a que te preguntas a qué me dedico, ¿verdad?

         No, pensó CURRENT_USER, por qué demonios iba a importarle. Pero a aquel tipo le daba igual, la había lanzado como una pregunta retórica.

―Soy NPC, sí, ene-pe-ce... ¡Y a mucha honra!

         CURRENT_USER arqueó una ceja. La base poblacional siempre tiene un extraño complejo de inferioridad.

―Estoy especializado en el sector sigilo/infiltración desde hace veinte años, desde los tiempos de la isométrica, ¿te acuerdas de eso? Nah... Que te vas a acordar, eres muy joven. Aun así, es un sector que lleva demasiado tiempo sin cambiar, promete mucho, los engines gráficos mejoran pero...―vació lo que le quedaba en su copa de un trago―Nada cambia. Siempre lo mismo...

         Llegaron los vasos llenos, ACTOR_GUARD_07 le alargó uno a su nuevo mejor amigo y siguió hablando. Se le veía frustrado, incluso sin texturas, por la manera en que los wireframe de su cara se contraían y el tono de su voz. Miró fijamente a CURRENT_USER, esperando para que hiciera la pregunta, lo decía con los ojos “Pregunta, ¿a qué esperas? ¡Pregunta!” Y él, a saber por qué, preguntó.

―¿Te agobia el sector sigilo?―dijo CURRENT_USER, inocente.

―¿Tienes idea de lo frustrante que es ser un NPC? ¿Uno como yo?―el tipo se exaltó y sus polígonos sin textura brillaron rojizos―Llevo veinte años en el bando perdedor, vente años sirviendo de guardia en los escenarios de infiltración. Veinte putos años siendo aniquilado de las maneras más creativas posibles... Lo de los tiros en la isométrica ya era bastante putada, pero ahora que les ha dado por el sigilo en primera persona con estrangulaciones y puñaladas en la espalda... joder. ¿Te han hundido un cuchillo en el cuello alguna vez? Te aseguro que no es agradable, aún sabiendo que vas a hacer respawn en la próxima instancia, que coño, probablemente sea más desagradable por saber que harás respawn...

     CURRENT_USER asintió esquivando la mirada un poco demente de su interlocutor y bebió un trago. Ardía, era el equivalente al vodka barato en digital. Ahora el NPC sollozaba.

―Y no es sólo que te obliguen a estar ahí para morir sin darte oportunidades reales de éxito. Porque te obligan, ¿sabes? Conos de visión de 60º... ¿Es que los putos programadores no saben que existe la visión periférica? Normas que evitan la detección del jugador si está en una zona oscura… ¡En el 70% de mis trabajos llevo una linterna! No me jodas―se giró al pedazo de código de la barra―¡Otra por aquí!―observó frustrado el vaso aún lleno de CURRENT_USER―Bébete eso, voy a pedirte otra.

         Antes de que CURRENT_USER pudiera objetar, el NPC ya le estaba dando un vaso nuevo, y mirándolo con cara de reproche esperando que se bebiera a pulso el anterior.

―Bueno, ya veo a qué te refieres…―dijo CURRENT_USER disimulando una arcada al dejar sobre la barra el vaso vacío y mirar el nuevo, lleno. El corpulento NPC negó con la cabeza.

―Qué vas a saber, necesitas veinte años más para saber. ¿Y la nueva física de ragdoll de mediados de los 2000? ¡Esa mierda es lo peor! En serio, que le den almorranas al cabrón hijo de puta que implementó eso. ¿Has intentado morir en una postura digna mientras la física de un juego te obliga a abrirte de piernas y caer con la cara en el culo de otro compañero muerto? ¿Lo has intentado?... Antes sí que había respeto por las muertes, había animaciones dedicadas... ¡A-ni-ma-cio-nes!―hizo una pausa y soltó una risilla, recordando―Vale que a veces pasaban cosas raras, morías en el borde de una plataforma y no caías, tieso como una vara de acero, pero no era para tanto.

         CURRENT_USER alzó las cejas, realmente sorprendido de estar ante un pedazo de historia viviente, colocado y quejica (era la única forma de encontrar historia viviente en un bar y, en realidad, en cualquier parte) Se dio cuenta de que la curiosidad, junto con haberse bebido casi dos copas muy cargadas en apenas cinco minutos, le estaban soltando la lengua.

―Joder, amigo, sí que has visto cosas―empezó.

―¡Ni te lo imaginas! ¡Yo estuve en Crusader: No remorse, chaval!―apuró la mitad de su vaso de un trago, con mirada nostálgica―Ah, buenos tiempos, sí. En esa época sí tenían la decencia de equilibrar la balanza un poco, ¿sabes? No había muchos recursos ni ciclos de CPU para cada uno, pero si estabas protegiendo una zona importante tenían la decencia de darte más salud que el jugador, y un arma jodida de verdad. Ahora si te dan un rol con armamento o armas pesadas te ponen un jodido y estúpido punto débil o algo así. Un amigo mío que trabaja en los FPS dice que cuando le dan un escudo antibalas frontal le quitan la armadura en la espalda y le hacen girar más despacio... ¡Es de subnormales!

         Se hizo una pausa, CURRENT_USER se bebió otro trago del vaso y, para su horror, le empezó a gustar aquella bebida, aquel ambiente y aquella conversación.

―Bueno... la verdad es que eso no parece nada justo. ¿Y no se organizan ustedes en algún sindicato para evitar atropellos?

―¡No me recuerdes los atropellos, capullo insensible!―ACTOR_GUARD_07 se tocó el cuello como si le doliera―No es una cuestión de justicia, más bien es cosa de decencia-Y los sindicatos son ilegales, si intentamos reservar memoria para ello los eliminan como glitch antes de la beta, por cierto-Mis compañeros dicen que es cosa de un cambio de escuela, puede que tengan razón. Los tiempos cambian, pero yo estoy jodido y no sé si quiero cambiar con ellos. Encima hace 2 turnos me tocó de guardia de las SS. No soporto hacer de nazi, no es una cuestión de convicciones, que también, es una cuestión de orgullo. A los nazis de los juegos siempre los programan más gilipollas, y los jugadores se ensañan con ellos...―su wireframe titiló mientras hacía una consulta al reloj del sistema―¡Mierda! Llego tarde...

         Sin mediar palabra, el NPC se levantó, pagó al código de la barra y se alejó dando tumbos, dejando a CURRENT_USER bastante aturdido.

―¡Si estás tan jodido, quizás deberías hacer algo para remediarlo!―le gritó CURRENT_USER, antes de que se alejara hacia la puerta. ACTOR_GUARD_07 hizo un amago para girarse, luego asintió y continuó alejándose. CURRENT_USER dio un respingo y se arrepintió automáticamente de lo que acababa de decir.

         Seis microsegundos más tarde, en un escenario de infiltración de un juego de moda, tras una bonita pantalla de carga con fundido a negro, se inicializó la siguiente zona. Uno de los guardias enemigos, de esos que patrullan con rumbo fijo, empezó a temblar y se salió del riel invisible que los programadores llaman pathfinding. Acto seguido detectó al jugador a través de dos paredes y empezó a disparar y a dar la alarma, para sorpresa del chiquillo de quince años que, tras la pantalla, encarnaba al héroe viril.

         Después de vaciar dos cargadores contra un compañero el guardia echó a correr hacia una pared límite del escenario, la atravesó y provocó una excepción grave en el programa. El texto ACTOR_GUARD_07 se grabó varias veces en los logs de errores. El juego se congeló, el protagonista murió y hubo un bonito crash to desktop.

         Y así es como ocurren los bugs en los juegos. La mayoría no se deben tanto a un error de los pobres programadores como a la falta de cariño del equipo de desarrollo en general, que impone horarios esclavistas a sus NPC y ciclos de CPU demasiado cortos, y acaban frustrando a las pobres entidades hasta el punto del suicidio.

3 comentarios:

lnnrt dijo...
Este comentario ha sido eliminado por el autor.
lnnrt dijo...

:applause:

No sé por dónde empezar, las metáforas y referencias están trabajadas, bien hiladas y con un sentido del humor cojonudo... Muy, muy bueno.

Un abrazo

Abián G. Rodríguez dijo...

Gracias por el comentario. Siempre un placer ver que te dejas caer por aquí ^-^. Supongo que compartimos ese amor por aplicar metáforas informáticas al mundo real :P

Saludos!!