Tag: Game Maker’s Toolkit

  • Modder Explains GTA III Liberty City Open World on PS2’s 32MB RAM

    Modder Explains GTA III Liberty City Open World on PS2’s 32MB RAM

    Key Takeaway

    – Rockstar used a streaming, sector-based memory system that loads only nearby assets and continuously swaps chunks in and out as you move, creating a moving window of the city.
    – The game world was split into three islands (Portland, Staunton Island, Shoreside Vale) and further into thousands of tiny sectors to fit within the PS2’s 32 MB RAM.
    – Despite hardware limits, careful asset budgeting and timing (avoiding DVD-induced stalls) enabled real-time loading to maintain the illusion of a continuous, explorable Liberty City.

    GTA 3 pretty much changed the open-world gaming scene when it launched in 2001, and it’s remarkable how Rockstar Games got Grand Theft Auto III to run on the PlayStation 2, which had only 32 MB of RDRAM to work with.

    Back then, the PS2’s memory was ridiculously tight for a sprawling city, yet the team somehow squeezed a 4-kilometer-wide open world with countless pedestrians, iconic cars like the Banshee, and three explorable islands: Portland, Staunton Island, and Shoreside Vale. The mystery lied in how they managed to fit all that into such a limited byte budget, and the answer isn’t as simple as “magic” or luck alone.

    That’s where Mark Brown from Game Maker’s Toolkit steps in. In his newest YouTube video, he not only broke down the reason but also obtained GTA 3’s source code, rewrote entire chunks of the program, and recompiled a brand-new executable, which revealed the game’s hidden streaming system. He explained in the video:

    “Now, you can see the trick: how Grand Theft Auto 3 loads and unloads a small number of assets into memory as you move around Liberty City. It secretly builds the world in front of you, and it silently deletes the world behind your back. Basically, instead of trying to fit a whole city into memory, Rockstar instead built a moving window that shows just enough of the city to make the illusion work.”

    Brown’s modded GTA 3 executable lets players watch chunks of the city pop in and out in real time, depending on where Claude stands. He also detailed the number of unique cars the game could display on roads at once while you were driving, which explains spotting an EC Cheetah casually cruising on the road after you got hold of one.

    Previously, former Grand Theft Auto III: Liberty City programmer Obbe Vermeij detailed the challenges of bringing the game to the PS2 in a separate interview, stating: “There was no way we could fit the whole map of GTA 3 in the PS2’s memory. Streaming involves loading models from the DVD as the player moves around. This was the hardest technical challenge during the development of GTA 3, and it was coded by Adam Fowler.”

    For context, it sounds impossible on paper to run Grand Theft Auto: Liberty City on the PS2, as the assets alone add up to around 130 MB, nearly four times what the console could contain at any moment. Rockstar used tons of workarounds.

    The first workaround was splitting Liberty City into three distinct sections: Portland, Staunton Island, and Shoreside Vale. Each of these islands would load separately. However, Portland alone accounted for 40–50 MB of assets.

    So, Rockstar broke down each island into thousands of tiny sectors. The game kept the ones right in your field of view in memory and constantly swapped chunks of assets in and out of the limited RDRAM as you drove and roamed around Liberty City.

    Even the slow DVD drive complicated development, as the team had to be extra careful about when to pull data to avoid the game freezing.

     

    Sources