¿Qué es el rewind effect? Y la imposibilidad de viajar en el tiempo
Que sencillos son los videojuegos hoy día: da igual si te disparan, si lanzas fuera, o si te caes de la plataforma. Basta con pulsar un pequeño botón para retroceder al instante previo del error que cometiste y subsanarlo sin tener que comenzar de nuevo. Como si nunca hubiese ocurrido.
En los 90 esto habría sido tachado de indigno, de truco fácil para los pequeños jugadores y los más tramposos. Hoy día su uso es generalizado, llega de serie en muchos videojuegos y está incluido en sistemas de emulación que lo permiten en los retro, en cuya concepción original los desarrolladores jamás consideraron que existiera tal posibilidad que influyera, tan negativamente, en la jugabilidad.
Las trampas son trampas. Pero que sean trampas no quiere decir que toda la técnica que hay detrás no sea interesante.
Universo de unos y ceros
Para desarrollar un videojuego es necesario tener claro los dos pilares fundamentales de su arquitectura, sin entrar en IO de controles o eventos como el audio: el bucle de renderizado y el bucle de actualización de información. Todo motor existente, básicamente, funciona así.
Mediante el bucle, o threads, de renderizado, también llamado pintado, se representa gráficamente el universo del videojuego. Es el lugar en dónde las cosas ocurren, con más o menos detalles, con vectores, sprites, polígonos, shaders o rayos (materia): son las carreteras por donde circula el coche, es el coche mismo, son las nubes, los árboles y montañas que acompañan a la carretera, son los otros coches, el sol, las casas lejanas, el tacómetro del coche, la luz que irradia de los faros encendidos... toda esa representación gráfica del universo conocido en el videojuego es una foto fija, un instante que se pinta una y otra vez a 60, o quizá 120, frames por segundo. En dónde se ubica, y el estado de, cada elemento depende de la información de los objetos.
Cada frame o imagen es una foto fija en donde tu ojo percibe como movimiento o cambio una actualización de la información (entropía) en los objetos que componen esa representación gráfica.
De actualizar esa información se encarga el bucle, o threads, de actualización. En tiempo real realiza millones de cálculos y mediciones, lee tus órdenes y recalcula nuevas posiciones, nuevos estados, colisiones, efectos y consecuencias, que serán representados en una imagen por el bucle de pintado.
Puede tratarse de una partícula azul, descendiendo por el eje Y con una aceleración de 9,8 m/s, pero en cualquier imagen pintada aparecerá en un punto concreto del eje. La sensación de movimiento, cambio, o velocidad, será la combinación de todas esas imágenes generadas mostradas en secuencia. Esto nos lleva al Rewind effect.
Recomendado por LinkedIn
¿En qué consiste el Rewind effect?
Esto es algo muy sencillo con el software y hardware de hoy por muy complejo que sea el universo de un videojuego. En otros tiempos quizá no era tan fácil debido a las limitaciones hardware de memoria.
Básicamente se trata de almacenar un historial o backup de toda la información que ha cambiado durante el tiempo que estás jugando, la que es generada en cada milésima de segundo por el bucle de actualización. Para poder viajar, es decir, retroceder a cualquier punto anterior o avanzar dentro de ese historial, primero debes haberlo almacenado.
Obviamente hablamos de información relevante, toda aquella no reproducible a través de patrones. No sería necesario almacenar como giran sobre si mismas las ruedas del coche, pero si sería necesario almacenar al milímetro cada movimiento del volante en el que indicamos al vehículo la dirección, o la intensidad de nuestra pisada sobre el acelerador y el freno.
¿Qué tiene que ver con viajar en el tiempo?
Muy simple. El tiempo es una abstracción humana que nos sirve para medir los cambios de estado, y su posición en el espacio, de la materia.
Un universo estático es un universo sin tiempo.
No disponemos de ningún backup de toda la información del universo desde el Big Bang hasta ahora. Aunque existiera, tampoco es posible restaurarle un backup de toda esa información a toda la materia del universo, conservando a la vez la información del observador o hipotético viajero.
El pasado dejó de existir. No podemos viajar a él. Como mucho observar antiguas fotos fijas que son las que captan los radiotelescopios. Tampoco podemos viajar a un futuro cuya información todavía no ha sido creada por el bucle de actualización de información.