Video Game Archaeology

Video game archaeology, also sometimes called archaeogaming, is the study of archaeology in and of video games. This includes excavation of actual hardware used in video games, use of archaeological methods used within the game-worlds, and much more. Here, I intend to talk about the subcategories of video game archaeology that excite me the most.

If you’re interested in video game development, as well as research, this might even be an interesting career option for you!

Understanding Algorithms used in Games

Within video games, there are often different algorithms that are used. These include artificial intelligence algorithms for controlling the behaviour of non-playable characters (NPCs), algorithms for generation of mazes or random paths in certain games and algorithms to ensure optimal play by the system in case of games such as chess, cards, etc.

With the advancement of mathematics and computer science, these algorithms have changed appreciably since the time of the first video games, and it is interesting to study the algorithms that were used earlier. In some cases, even modern methods and programmers have trouble understanding the reverse engineering the algorithms used in some video games.

According to a BBC article I read, there was a game with a random maze generation algorithm, and it used a table to generate its mazes. The primary challenge in generating random mazes is making sure that there exists a path to navigate the maze, which means that the maze should not reach a dead end along all the paths. Researchers were keen on finding out how the table was created, and hence the algorithm. Having spent quite some time to reverse engineer the algorithm, they gave up and approached one of the developers who had worked on the game code.

It turned out that the developer did not know how the algorithm had been designed, for it was some other developer who had done it. It was later revealed that the developer who came up with the algorithm himself did not know how the table worked! One evening, he had miraculously come up with the algorithm while under the influence of alcohol. As a result, the algorithm continues to be a mystery.

Truth or rumours, I found this story quite fascinating, and it got me excited towards trying to understand the codes of some of the oldest game, which include Spacewar!, a game developed in 1962, and lemonade stand, developed in 1973. However, the codes of these games are not easy to comprehend, a major factor being the fact that these are written in assembly code, and contain several thousand lines of code!

The source codes of a lot of old games, from the 1960s and 1970s are available, and you can download these codes and take a look at them if you want!

Recreating Games

Another very interesting field is that of recreating old games in modern languages, such that these can be run using the modern hardwares and computer architectures. Recreation of games does not necessarily involve understanding the original algorithms used in the games, since we can always use different (modern) algorithms to achieve the same behaviour. However, it does require understanding a large part of the original code, and also the behaviour of objects within the game. Recreation of video games is done in one out of two ways- the first, and more obvious way, is to write the game code in a modern language. This is generally done in lua or C++, which are popular modern language for game development, or using HTML, CSS and JavaScript, if the game is to be made as a web-based game. Writing a game code from scratch in a modern language involves understanding a large part of the original game code, and also involves a lot of effort directed speciafically towards being able to recreate a single game.

The second, and less obvious way to recreate games is to develop an emulator for the game’s hardware on a modern architecture. An emulator is a software that enables a computer to behave like another machine. For example, an android emulator running on a PC would allow the PC to behave like an android device. Developing emulators involves understanding the hardware aspects of the machine that the old games were developed for, and then figuring out a way to recreate that behaviour on modern machines. Emulators for a lot of gaming systems have been developed already, and these allow us to play not just one game, but all games that were originally developed for that architecture.

Hope you liked the article! Stay tuned for more, and don’t forget to give it a like. Here, you can find links to other resources mentioned in the article:

  1. BBC article: The mysterious origins of an uncrackable video game
  2. Lemonade Stand (1973) source code

Have something to say about this post? Drop a comment here!