GoldenEye 007 turns 20 later this month, but now a hack aims to breathe new life into the Nintendo 64's seminal shooter with a powerful tool: procedural generation.
Dubbed Janus after James Bond's smug Russian antagonist from the movie, the project gives the old game a much-needed dash of unpredictability. Because let's face it. GoldenEye's structure has long been branded into our synapses.
"I played this game to death and beyond," said the hack's creator Konrad Strachan, aka K1lo, over email. "I found myself returning to it and weaving new narratives to levels I'd played a hundred times before."
To make 007 new again, Strachan's hack lends the enemies random guns, random bodies, and random hats (the tool is currently incapable of adding hats to the heads of the hatless), all in the name of delivering a fresh experience each time you play it.
Getting to this point in development wasn't easy. Unlike earlier consoles, which stored their code in easy-to-assess file databases, Nintendo 64 games often relied on heavily compressed game data to compensate for low-memory cartridges, according to Strachan. His randomizer must decompress the data, make changes to the source code, and then reinject it into the ROM without running out of space.
While Janus can give old foes a new pair of spectacles, or turn a crate into a barrel, what makes GoldenEye unforgettable are the guns, and the hack reallocates every firearm in the arsenal.
That lackey soldier who used to tote around a piece of trash Klobb? Well, now, he might be packing a Golden Gun, which kills with one bullet, so watch your step, mister.
"During some tests, Oddjob suddenly appeared behind me, armed with an RPC90," he said. "It was completely unexpected and reignited a sense of discovery."
Thankfully, the gun selection algorithm seems skewed on the side of chaos. As evidenced in a recent live playthrough, the hack has a wickedly bad habit of strapping a troop of soldiers with Rocket Launchers at the most inconvenient moment.
Now that randomizers like these are officially becoming a thing, various types have been rewriting the classics. For example, Sml2randomizer, a randomizer for Super Mario Land 2 on GameBoy, has the capacity to rearrange entire stages.
Janus isn't at that caliber yet, but it's getting there. Strachan has rewritten his code for version 3, which he hopes to have out in time for GoldenEye's 20th anniversary on August 25. That version will fine-tune the randomness, and begin making changes to the game's scenery.