Un pequeño repaso a los trucos de videojuegos



Trucos

↑ ↑ ↓ ↓ ← → ← → B A, Panzer, Klapaucius. Seguro saben que significan esas letras sí estuvieron jugando videojuegos algún día de los últimos 30 años. Son combinaciones que, dependiendo del juego, ingresabas de diferente forma para que algo pasara fuera de las mecánicas establecidas. De allí el nombre: truco, trampa, cheat. Pues hoy hablaremos de ellos, de los famosos trucos de videojuegos.

Una historia de Nerds

Los trucos en videojuegos han existido desde el inicio, aunque no siempre disponibles a los consumidores. Entender el surgimiento de estos requiere tener un conocimiento muy básico de programación. Voy a tratar de explicarles de la forma mas sencilla posible.

Uno de mis primeros proyectos de programación en la universidad fue recrear el famoso juego de Snake para PC, si el de los teléfonos Nokia. La mejor forma de abordar la creación de este “sencillo” juego es dividir la codificación en tareas simples y luego ir complicándolo, juntando todas las acciones. Primero que se muestre la cabeza, luego que se mueva, aumentar las partes comiendo manzanas, aumento de velocidad debido al tamaño, detección de colisiones con la misma serpiente o con las “paredes” y finalmente el punteo/opciones.

Para moverse entre las diferentes tareas primero tienes que comprobar que no se presentan errores. Y claro, casi nunca tu programa correrá sin problemas desde el principio, así que es necesario hacer una serie de pruebas. Ahora imaginen que deben asegurarse que la serpiente al crecer bastante no da ningún error, que todos los gráficos se muestran adecuadamente y cada parte del cuerpo sigue a la anterior inmediatamente. Hacer pruebas para esto puede llevar a una considerable pérdida de tiempo comiendo manzanas para hacer crecer al bicho, y ya cuando este grande tratar de que no muera (y morirá muchas veces).

Ahh, pero también es muy fácil cambiar una variable del programa, para que en vez de empezar con una comida aparezcan 20. Y en vez de detectar choques la serpiente siga su curso normal. Y esto generalmente solo requiere cambiar un valor numérico: de 1 a 20, o un booleano: de True a False. ¿Vidas Infinitas? ¿Habilidades imposibles? Pues ahora ya saben de donde surgieron, de la necesidad de los desarrolladores de deshacerse de los bugs.

Debuggeando SNAKE, con un "truco" con mucha comida para crecer rápido.
Debuggeando SNAKE, con un “truco” de mucha comida para crecer rápido.

Pero… ¿y nosotros los no desarrolladores?

La disponibilidad de trucos para los usuarios convencionales también tiene su inicio muy temprano en la historia de los videojuegos y el procedimiento es el mismo, un cambio de variables. Estos cambios no eran oficiales, había que ingresar una función llamada POKE que modificaba los valores en una dirección de la memoria del sistema, podríamos decir que es un hack para modificar valores. Por ejemplo: POKE 14100, 20. La primera sección de números es la dirección dentro de la memoria y el segundo es el valor que van a cambiar (aquí estaríamos ingresando 20 comidas, si seguimos el ejemplo de mi Snake).

Ahora claro, un jugador no sabrá que valor almacena una dirección de memoria, y de estas hay miles. Así que un usuario tendría que estar probando una infinidad de veces diferentes números de dirección para llegar a un espacio que almacene la información que quiere modificar. Tal vez llegas a una dirección que almacena el valor del radio de las cabezas de los personajes buscando otra cosa.

Por esa razón se vendían libros de códigos con direcciones de memoria y valores, porque buscar y encontrar en la infinidad de espacios es una tarea muy difícil. ¿Recuerdan el Action Replay o el GameShark? Pues funcionaban de igual forma, modificando valores de memoria.