Finding treasures in the code: Why the source code of classic games matters, even to non-coders

Darius Kazemi is writing a book about Jagged Alliance 2, and one of the resources he's using using for research is the game’s source code itself.

Kazemi gave a talk at Critical Proximity during the Game Developers Conference to discuss the importance of looking at the code of games as part of their history, even for those without background in programming.

"I’m absolutely not saying that source code is the only important factor when looking at a game," he stated. "I am saying that it’s ridiculous not to look at source code if you have it at your disposal."

Where to start looking, and how to look

Finding the code itself can be a challenge, although the modding communities of each game is a good place to start. Finding the Jagged Alliance 2 source code took around 30 minutes of searching and downloading dead links, and he noted that sometimes fans have to use "extra-legal" means to get at a game’s source code. The code for Jagged Alliance 2, luckily enough, was released under license in Jagged Alliance 2: Wildfire.

"You don’t need to be an expert programmer to read source code," he said. "If you’ve had one class of computer programming, or have taken some online tutorials, you can read source code. This isn’t hard to read. I’m not a C programmer and I can read this source code."

Looking through the source code of a game can be a daunting task, so getting a sense of how the code is laid out is important. Then? Just start skimming. "We might want to start by surveying the code. If you don’t have anything better to go on, you can use your intuition… you just want to skim through and see the lay of the land," he explained.

He brought up the source code for Wolfenstein: Spear of Destiny as an example. There was text in a block of code that looked at the day’s date and showed the player a message if the date was after a certain point saying that beta testing was over. After searching for specific dates in the code, he was able to find out the exact date when beta testing concluded. Sept. 30, 1992, if you care.

This isn’t a huge revelation, but it could be new information for fans of the game and it gives some context to the game’s timeline. Finding these details can feel like a form of archeology, and it can be rare that even gaming historians going give the source code of games even a cursory read.

And he found something interesting in Jagged Alliance 2.

"I found this in the source code in the strategic layer of the game," he said, before showing a block of text. "What we have here is a 300 word essay penned by one of the game developers laying out the overall philosophy behind the design of the strategic AI," he explained. "It’s a beautiful piece of writing about game design, and I think it’s even more beautiful because it was inserted directly into the source code as a way to guide people who were working on the AI on a day-to-day basis."

So if someone working on the source code had a question about how something should be handled, they had what amounts to a manifesto about the game, in plain text, right there in the code. That sort of note can be a guiding light for the team, and it’s a goldmine for people seeking to understand more of the game.

"I don’t have access to any of the design documents of Jagged Alliance 2, but I do have this," he said. "And I think it’s incredible that by looking at the source code something like this can be dug up and exposed to the world. It tells us something about the game that we didn’t know before."

More from Polygon

Hearthstone: Naxxramas Overview

  • Oddworld: New 'N' Tasty - Overview video

  • Destiny's beta comparison video: PS4 versus Xbox One

  • The Crew closed beta - Overview video

  • Polygon goes to Poland

Latest Discussions

X
Log In Sign Up

forgot?
Log In Sign Up

Forgot password?

We'll email you a reset link.

If you signed up using a 3rd party account like Facebook or Twitter, please login with it instead.

Forgot password?

Try another email?

Almost done,

By becoming a registered user, you are also agreeing to our Terms and confirming that you have read our Privacy Policy.
Spinner.vc97ec6e

Authenticating

Great!

Choose an available username to complete sign up.

In order to provide our users with a better overall experience, we ask for more information from Facebook when using it to login so that we can learn more about our audience and provide you with the best possible experience. We do not store specific user data and the sharing of it is not required to login with Facebook.

tracking_pixel_5353_tracker