GTA V destrueix i reconstrueix el món a la teva esquena
L'arquitectura interna que va permetre a GTA V respirar a PS3 i Xbox 360 sense una sola pantalla de càrrega
Quan GTA V va aterrar el 2013 a les consoles de setena generació, la pregunta que sobrevolava els fòrums era la mateixa: com dimonis cap un món d’aquesta mida aquí dins? La resposta no era als crèdits del joc. Estava enterrada al codi del motor RAGE —Rockstar Advanced Game Engine— i en un conjunt de decisions d’enginyeria que, vistes des de dins, freguen allò artesanal.
512 megabytes per moure una ciutat sencera
La PS3 disposava de només 256 MB de RAM de sistema i altres 256 MB de memòria de vídeo. La Xbox 360, per la seva banda, treballava amb 512 MB de GDDR3 compartida entre CPU i GPU. Amb aquest pressupost, mantenir un open world de l’escala de Los Santos —amb trànsit, vianants, física, àudio dinàmic i renders de llarga distància— requeria que cada byte estigués justificat.
Rockstar no va optar per retallar el món. Va optar per comprimir-lo i gestionar-lo de manera dinàmica. Les textures i els models es mantenien comprimids a la memòria fins al moment exacte en què la càmera els necessitava a pantalla. El preprocessament agressiu era la norma, no l’excepció.
El sistema de pools: RAM com a recurs de rotació contínua
El RAGE gestiona la memòria mitjançant grans blocs prereservats, coneguts com a pools. No hi ha assignacions dinàmiques petites ni fragmentació progressiva: el motor reserva blocs fixos a l’arrencada i els reutilitza de manera cíclica durant tota la sessió.
El pool de streaming de textures —exposat per la comunitat de modding, incloent-hi el codi font de FiveM— treballa pràcticament al límit de la seva capacitat amb els assets base del mateix joc. Quan el jugador es desplaça pel mapa, el motor descarrega del pool els recursos que han quedat fora del radi de rellevància i carrega els nous que entren en escena. A consola, això volia dir que un mateix objecte podia ser destruït a la memòria i reconstruït segons després en tornar a la seva zona, sense que el jugador percebés l’operació.
Asset streaming: el món es carrega a l’esquena teva
El mapa de GTA V està segmentat en seccions —chunks— que el motor carrega i descarrega segons la posició del jugador. La lectura des del disc és contínua: textures, geometria, sons i dades de navegació flueixen des de l’emmagatzematge en temps real, sincronitzats amb el moviment.
Per a les zones allunyades, el RAGE recorre a versions de menor nivell de detall, els LOD. Un edifici que el jugador té a quilòmetres de distància no es renderitza amb la seva malla completa: el motor substitueix el model per una versió simplificada o fins i tot per un bounding box bàsic. A mesura que el jugador s’acosta, el motor intercanvia progressivament els LOD fins a mostrar la versió de màxima resolució. El procés és automàtic i transparent. Els dissenyadors de nivells del joc havien d’assegurar-se que cada chunk, amb tots els seus nivells de detall actius simultàniament, encaixés dins del pressupost de memòria disponible.
El que no veus no es renderitza: frustum culling i occlusion culling
El motor no dibuixa allò que no és a pantalla. El frustum culling elimina del pipeline de render tota la geometria que queda fora del camp de visió de la càmera. L’occlusion culling va un pas més enllà: si un edifici gran tapa els que hi ha al darrere, el RAGE directament descarta aquests polígons ocults abans d’enviar-los a la GPU.
Per reforçar aquest sistema, Rockstar col·locava manualment zones d’oclusió invisibles —volums sense geometria visible que el jugador mai no percep— distribuïdes pel mapa amb l’únic propòsit d’indicar al motor què podia descartar de manera segura. No eren decorat. Eren instruccions de render disfressades de buit.
L’engany que fa creïble el món continu
El RAGE no és un motor monolític. Treballa amb subsistemes modulars de streaming, render, físiques i IA que van evolucionar des de l’antic Angel Game Engine al llarg de dècades. Els dissenyadors de nivells de GTA V van construir el mapa de manera que el motor sabés en cada moment quins assets carregar, quins ocultar i quins destruir, fent servir nodes de navegació i carreteres com a fronteres lògiques entre zones.
El resultat visible és un món que sembla continu. El resultat tècnic és un sistema que recicla, comprimeix, descarrega i reconstrueix actius de forma permanent, amb el jugador com a eix d’una esfera de rellevància en moviment constant. Les escenes i els NPCs que queden fora d’aquesta esfera simplement deixen d’existir a la memòria, fins que hi tornes.
Segons les anàlisis tècniques de la comunitat modder, aquest pool de streaming de textures arriba al 100% d’ocupació amb els assets del joc base. No hi havia marge. Tot estava calculat al límit.