Posts: 12,316 +120
Launched on the Atari 2600 in 1982, it tasks players with traversing down a continuous vertically-scrolling maze while trying to dodge enemies. Since early game cartridges didn’t have a wealth of memory to store static maze designs, the developer relied on a technique that would procedurally generate the maze – that is, build it on the fly.
Intrigued, John Aycock from the University of Calgary, in Alberta, Canada, and Tara Copplestone from the University of York in the UK, took a closer look and what they found… well, they simply couldn’t explain. “It was a very deep rabbit hole,” Aycock told the BBC.
As the publication notes, the game’s maze is generated in a sequence.
The game needs to decide, as it draws each new square of the maze, whether it should draw a wall or a space for the game characters to move around in. Each square should therefore be “wall” or “no wall” – “1” or “0” in computer bits. The game’s algorithm decides this automatically by analyzing a section of the maze. It uses a five-square tile that looks a little like a Tetris piece. This tile determines the nature of the next square in each row.
The logic that determines what the next square should be is confined within a table of possible values in the game’s code. “Depending on the values of the five-square tile, the table tells the game to deposit either wall, no wall or a random choice between the two,” the BBC added.
The tricky bit is that nobody can seem to figure out how the table was made.
Having exhausted other possibilities including retro-engineering the table, the researchers reached out to one of the people involved in the game’s development, Steve Sidley, yet even he remembered being confused by the table at the time. Sidley told the researchers:
The basic maze generating routine had been partially written by a stoner who had left. I contacted him to try and understand what the maze generating algorithm did. He told me it came upon him when he was drunk and whacked out of his brain, he coded it up in assembly overnight before he passed out, but now could not for the life of him remember how the algorithm worked.
Studying old video game code could be immensely useful for modern-day developers, especially those working on VR and other resource-limited platforms. Who knows how many other genius techniques and weird quirks have yet to be discovered in long-forgotten games.
Masthead credit: Swill Klitch