Seleccionar página

Grand Theft Auto 3 y Vice City ahora tienen ingeniería inversa completa, un proyecto apasionante de un pequeño grupo de fanáticos que lleva años en desarrollo.

Significa que el código fuente creado por fanáticos para ambos juegos ahora está disponible en GitHub. Cualquiera puede usar el código para jugar ambos juegos en la PC, con la esperanza de que otros lo tomen y lo mejoren aún más.

Re3 (GTA 3 con ingeniería inversa) y reVC (Vice City con ingeniería inversa) ofrecen una serie de mejoras llamativas sobre los juegos originales que están disponibles para jugar oficialmente hoy en PC. El siguiente video muestra el trabajo y los cambios que se hicieron posibles.

Se han corregido errores, hay disponible un menú de depuración y una cámara, hay compatibilidad instantánea con los controladores actuales, no hay pantallas de carga entre islas y soporte de pantalla ancha con un HUD, menú y campo de visión correctamente escalados, entre otras mejoras. Incluso hay efectos mejorados de las versiones de PS2. Re3 también incluye un mapa de Liberty City en el menú de pausa, algo que falta en todas las versiones originales de GTA 3.

Es un desarrollo emocionante para la subcultura de ingeniería inversa de los videojuegos que hasta ahora ha evitado las represalias de Rockstar y su empresa matriz Take-Two.

"El GTA de código abierto probablemente ha sido un sueño para muchos de nosotros, fanáticos de GTA", dice el líder del proyecto "aap" a This Web.

"Hemos estado inyectando nuestro código en los juegos durante muchos años para modificarlos, pero, por supuesto, eso es un poco tedioso y todavía estás limitado en lo que puedes hacer".

A lo largo de los años ha habido múltiples intentos de recrear GTA 3, el juego de acción y aventuras de 2001 desarrollado por DMA Design y publicado por Rockstar Games.

Uno de esos intentos, denominado Open ReWrite u OpenRW, vio un desarrollo activo pero ahora parece inactivo. También ha habido proyectos que recrearon Grand Theft Auto 3 en motores como Unity y Unreal. aap, sin embargo, estaba más interesado en convertir el código original en código fuente mediante ingeniería inversa. En algún momento de 2016, aap comenzó a aplicar ingeniería inversa al código de GTA 3 de forma informal, llegando al punto en que el jugador podía volar por el mapa.

Luego, aap se centró en la colisión de ingeniería inversa y el código de física, inyectándolo en el juego real para probarlo. Así comenzó el proyecto re3. aap reemplazó las funciones del juego original hasta que todo fue reemplazado en la primavera de 2018.

"No tenía idea de si este proyecto se terminaría alguna vez", explicó aap. "Todavía estaba trabajando solo en eso en ese momento, pero parecía la ruta más prometedora para un GTA de código abierto".

No se debe subestimar la habilidad, el tiempo y la energía necesarios para aplicar ingeniería inversa a un videojuego. Esto no es algo fácil de hacer para los profesionales, y mucho menos para los entusiastas. Hay una gran cantidad de código para trabajar, y los errores son inevitables, especialmente si no resultan en ningún comportamiento incorrecto obvio en el juego. Es casi seguro que todavía hay errores en el código re3 que no son originales, admite aap.

Aún así, es un logro notable. Así es como aap y compañía lo lograron, en términos sencillos:

"GTA 3 y Vice City se escribieron originalmente en C++", explica aap. "Los ejecutables compilados que se envían están en código de máquina. Por lo tanto, la tarea general es volver del código de máquina a C++.

"El código de máquina se puede mapear (más o menos) 1: 1 a una forma legible por humanos llamada lenguaje ensamblador, pero aún así es muy tedioso de leer.

"Volver a C++ no es de ninguna manera un simple mapeo 1:1, pero en los últimos 10 años han aparecido descompiladores que ayudan con este proceso.

"Entonces, lo que normalmente hacemos es trabajar con la salida del descompilador y volver a convertirlo en C++ legible. Esto a veces es bastante fácil y otras veces difícil, pero en cualquier caso es mucho código y es probable que cometas errores".

Afortunadamente, el código de GTA 3 en PS2 y Android incluye símbolos de depuración. Los símbolos de depuración contienen toda la información adicional necesaria para depurar un juego durante el proceso de desarrollo, pero a menudo se eliminan de los ejecutables de lanzamiento para evitar la sobrecarga. Por alguna razón, Rockstar dejó estos símbolos, lo que le dio al equipo de ingeniería inversa una gran ventaja.

"Tuvimos mucha suerte de tener símbolos para los juegos", dice aap. "PS2 [GTA] 3 y todos los lanzamientos de Android tienen nombres para las cosas globales (funciones y variables globales). Esto fue de gran ayuda y no creo que estaríamos cerca de GTA invertido sin ellos".

El video, a continuación, muestra a aap analizando el código de la basura que se encuentra en las calles virtuales de GTA 3. Es un reloj denso.

aap dejó de trabajar en re3 durante un año, luego lo retomó en la primavera de 2019 y en mayo de 2019 envió el trabajo a GitHub. Aproximadamente 15.000 líneas de código se invirtieron en ese momento.

Otros se dieron cuenta y se unieron al esfuerzo. Después de que el trabajo se estancó en la segunda mitad de 2019, el proyecto se reanudó a principios de 2020 cuando los piratas informáticos descubrieron que tenían más tiempo libre debido a la pandemia de coronavirus. En abril de 2020, el equipo re3 tuvo su primer ejecutable independiente. El equipo central estaba formado por solo seis personas.

¿Por qué elegir GTA 3 en primer lugar? "Fue el primer juego de esa era, el más pequeño (por lo tanto, menos código para revertir) y, en general, le gustó a todos en el equipo", explica aap. Después de GTA 3, Vice City era el siguiente paso lógico. Es similar a GTA 3, después de todo, y me gustó mucho. reVC se inició a principios de mayo de 2020 y el equipo lo dio por terminado en diciembre de 2020.

Mirando hacia el futuro, aap dice que le gustaría ver la física de los juegos arreglada a altas velocidades de cuadros y, una vez que se solucione, un mod de realidad virtual "sería genial". Otro proyecto podría ver Renderhook, que lleva el trazado de rayos a GTA, portado a re3. "Ya veremos…", dice aap.

Ya hemos visto algunos puertos de trabajo en progreso interesantes que surgen de re3, incluidas las versiones de Wii U, Nintendo Switch y PlayStation Vita. El video a continuación, de YouTuber Modern Vintage Gamer, muestra el puerto WIP Nintendo Switch de re3:

"El puerto de Wii U fue sin duda una sorpresa", dice aap. "Creo que tarde o temprano tendrá que hacerse un puerto de Android, pero nadie del equipo tiene experiencia con Android, por lo que probablemente tendría que ser un tercero nuevamente.

"PS2 es algo que absolutamente quiero porque es la plataforma original de GTA, pero no veo a nadie más que a mí haciendo esto (al menos tengo un devkit de PS2). PS3 también es algo que me gustaría ver o incluso hacer". yo mismo, pero no tengo tiempo (al menos yo, de nuevo, tengo un kit de desarrollo)".

Son tiempos de mucho trabajo en la comunidad de ingeniería inversa de GTA. Algunos de los piratas informáticos de PS Vita que trabajaron en re3 y reVC lograron que la versión de Android de Grand Theft Auto: San Andreas de 2004 se ejecutara en la computadora de mano de Sony (está aquí en GitHub). Este no es un código fuente de ingeniería inversa, pero la inspiración, dice aap, vino directamente de poder jugar GTA 3 y Vice City en Vita. Otros juegos de Android están siendo portados a Vita mientras hablamos.

Es natural preguntarse por qué Take-Two y Rockstar al menos no han hablado con aap sobre sus proyectos. re3 requiere activos de juegos de PC para funcionar, por lo que debe tener una copia de GTA 3. Y aap enfatiza en GitHub que el código solo debe usarse con fines educativos, de documentación y de modificación. "No fomentamos la piratería o el uso comercial", dice aap.

Pero Take-Two y Rockstar tienen la reputación de tomar una línea dura con los remakes de los fanáticos y otros que juegan con su código. ¿Estaba el equipo preocupado por una intervención?

"Sí, estábamos muy preocupados por eso y tratamos de pasar desapercibidos el mayor tiempo posible", dice aap.

"Recibimos mucha atención cuando sucedió el puerto Switch, pero nada de Take-Two. Tomamos eso como una señal de que no les importa (o que están realmente ciegos)".

aap y compañía consideran que el proyecto de ingeniería inversa de Super Mario 64 todavía está en GitHub como una buena señal "porque Nintendo es tan agresiva como Take-Two en estos asuntos". Hasta ahora, todo bien entonces. ¿Pero por cuánto tiempo?

aap no está esperando para averiguarlo. Lo siguiente es reLCS, un proyecto de ingeniería inversa para el juego Liberty City Stories de PlayStation Portable de 2005. El trabajo en esto comenzó en enero de 2021 y, una vez terminado, será la primera vez que el juego tenga un puerto de PC adecuado.

¿Y entonces? Grand Theft Auto: Vice City Stories, que aap describe como "probablemente el santo grial de la inversión de GTA en este momento". VCS agregó funciones a LCS, pero nunca vio un puerto de Android. Debido a esto, no hay símbolos para él en su código. La ingeniería inversa del juego de PSP de 2006 es un gran desafío.

"Veremos qué podemos hacer al respecto cuando llegue el momento", dice aap.