20 years ago we released Grand Theft Auto - San Andreas.
The original plan was for the 3 cities to be on separate maps. The player would travel between the cities using trains and planes.
(Gta 1 and 2 also had three cities on separate maps)
Memory was very tight on the ps2 and with separate maps, the other cities’ skyline models wouldn’t have to be in memory.
It would also make it easier to have different police/ambulance/firetrucks for each city. Different pickups, weather types etc.
It would also be easier to contain the player until it was time for the next city.
It would also make it easier to organize the models on the DVD city-by-city which would help the streaming.
Just before the artists started working on the three maps, we had a final meeting at R* North in which we changed our minds and decided to go for a big map after all.
We still ended up doing city-specific pickups, police cars and weather.
Happy birthday San Andreas. You turned out all right.
“We love you. We miss you. We hate money.”
An electronic billboard from New Blood Interactive in downtown LA mourns the closure of Arkane Austin, Tango Gameworks, Roll7, Sony’s London Studio, Volition and more
“Gone but not forgotten”
FOR THE FIRST TIME EVER.
IN 10 YEARS OF MY CAREER.
MY CAT DECIDED TO JUMP ONTO MY LAPTOP, I TRIED TO MOVE HER BUT HER FOOT CLICKED THE MOUSE AND THE TWEET WAS POSTED.
ON A COMPANY ACCOUNT.
😭
This is absolutely terrible. Permission to be human : to any executive reading this, friendly reminder that video games are an entertainment/cultural industry, and your business as a corporation is to take care of your artists/entertainers and help them create value for you.
To everyone whose been pestering me for years about why we didn't allow Moon Studios to get acquired by a big publisher...
That's why.
I've lived through the 90s and saw what happened when smaller studios got acquired by EA.
Never again 🤣😂
There was no way we could fit the whole map of gta3 in PS2 memory. Streaming involves loading models from the DVD as the player moves around. This was the hardest technical challenge during the development of gta3 and was coded by Adam Fowler.
The closer models physically are on the DVD, the faster they are loaded. This is because the DVD needs to accelerate/decelerate as the head moves to a different track.
Adam tried to place models that were close together in the city also close together on the DVD. He also experimented with repeating commonly used files.
Even after placing models on the DVD efficiently, it was still not fast enough. Players would see the low detailed version of buildings and sometimes the road was missing.
At some point we couldn't speed the streaming up any further. We had no option but to slow the player down.
Portland initially had a big drag running all along the island. This was a worst case scenario. The player could go fast and there were loads of buildings to load. The artists changed the road layout to slow the player down.
In other problem areas, we increased the drag (air resistance) on the vehicles 5% or so. Hardly noticeable but it helped.
The streaming issues were the main reason we couldn’t let the player fly in gta3 (other than with the dodo)
Streaming was also used for vehicle models, npc models and music but the map posed the greatest difficulty because of the amount of data.
As models got loaded into memory and then removed, the memory would fragment into smaller and smaller blocks. Adam’s code constantly moved models around to fix this. This was tricky as models sometimes had to be moved while they could be rendered.
For Vice City, various code improvements were made. Better compression of models and textures. Smarter code that would load the detailed versions of buildings only if the player was not flying.
Streaming issues tends to get worse with older DVDs and older PS2s.
(screenshot by @TheSphereHunter)
Getting in-and-out of cars is one spaghetti like problem with loads of different 'if' cases. Fortunately I never had to deal with it.
In this particular screenshot the door is blocked so then the code would look at different options to get the player into the driving seat.
Going round the car and entering through the passenger seat is one option but if there already is a passenger that won't work.
I'm not sure what happened here but maybe the code attempted to let Tommy enter the car through the passenger seat but then it realized the driver wasn't able to leave the car (because of the blocked door) and then left it at that.
Maybe the door wasn't blocked when Tommy entered, but the car was still moving and caused the door to be blocked by the time the driver was supposed to get out.
Teleporting the player out of the car is an emergency measure only used when there is no other way to get the player/npc out elegantly.
Woke up to a larger than usual number of unread emails. Did I sleep through a major live site incident?
Nope. Someone accidentally(?) added every Mike/Michael at Microsoft to a discussion alias. Here is Copilot's summary of the thread so far:
@ghibellino01@MMmarco0 Innanzitutto è una mappa delle temperature a circa 1500m di altitudine e quella dei colori è una semplice rinormalizzazione. Ma se anche fosse un trucchetto, il tweet sta dicendo esattamente l'opposto, ossia che fa più freddo del previsto, quindi quello che dite non ha senso
In GTA San Andreas, small planes are periodically created near the player to perform a fly-by.
Sometimes they crash.
Before creating the plane, my code looks for obstacles in its path.
It scans a number of lines in the forward direction of the plane. These scans are slow so I used the absolute minimum. (Just the body and wingtips I believe) This is why thin obstacles are sometimes not detected.
In addition, the planes would sometimes loose some height, right after being created because their initial speed may not have generated enough lift.
There was an additional problem when map models were not streamed in yet. Their collision would be loaded after the plane had already been created.
These issues would occasionally allow planes to be created on a doomed flightpath.
I was aware of the crashes and briefly considered removing the fly-by’s altogether.
In addition:
@__silent_ just pointed out there was an actual bug in the code. I didn't know that.
https://t.co/yU2obVpTfU
https://t.co/AsJYzjmkei
https://t.co/5JXbV3aPl9
#gta #gamedev
L’episodio 1 del nostro documentario su Andrea Pessino è disponibile: qualsiasi condivisione, feedback o altro aiuta ed è fondamentale, perché è una delle cose a cui teniamo maggiormente. È quello che vogliamo continuare a fare, con passione e amore. https://t.co/PHKVbbuhQI
For the first time in 7 years, Japan saw a perfect “sunset panda” today — a phenomenon in which the setting sun passes behind an NTT antenna tower in the Akashi City, Hyogo to create the face of a panda
Dear Game Devs: It’s not you. It’s them.
This month marks a year of job hunting.
Below is a simplified version of my job hunting spread sheet. Showing how many jobs I have applied for over the last 12 months, the outcome, feedback and whether the post is remote or not.
🧵1/8