How THUG turned into THUG2
A year after Tony Hawk's Underground, Neversoft shipped the sequel on the same engine: same file extensions, same version numbers, same everything, until you actually load something. This is the story of taking a working THUG1 port and feeding it THUG2 until it stopped spitting it back out. Told commit by commit, in order, with the code that did it and the dumb things that happened on the way.
Hostile Takeover
THUG1's engine eats THUG2's Data folder. Indigestion follows.
Moving Out
A branch grows up, packs a million lines and gets its own repo.
Wheel of Looogie
The main menu spins. Its labels don't. Sixteen pixels of history.
Settings, Bro
Screen, Graphics, Keyboard, Gamepad, moved in without touching THUG2's scripts.
Faceplant
The skater finally skates. Then bails, sinks, grabs instead of grinds, and crashes on a manual.
The .SKA Files
Eight saves from 2008 to 2022 walk into a port. All eight walk out.
Lost Connection to GameSpy
The online menus get a server again. The pager beeps. Nobody answers the chat yet.
Cast
| Who | Role |
|---|---|
| THUG1's engine | The hero. Rewritten on SDL2 and OpenGL for the THUG1 port, now asked to run a game it has never met. |
| THUG2's Data folder | The guest. Scripts, levels, animations and fonts, mostly familiar, occasionally from another planet. |
THUG2.exe | The oracle. No source, but a disassembler answers any question you ask it twice. |
| The log | The narrator. Every function THUG2 calls and THUG1 doesn't have shows up as THUG2 MISSING. |
| The test hook | The stunt double. Presses keys, takes screenshots, saves games, so nobody has to. |
thug2online | The new kid. A Go service doing GameSpy's old job for THUG2, so the menus have someone to talk to. |