A Blast From The Past

Back in May 2006 the world was different than what it is today. No smartphones, no 4G internet, no iOS or Android. I wanted to become a game developer back then, because I couldn’t have wanted to be an app developer – there were no apps yet!

I was a typical nerd. I only cared about video games and my PC. In the years prior to 2006 I taught myself programming. First BASIC, with an old yellowed book from the public library.

I then learned PHP, creating small web-based strategy games. At first, we had no internet access at home, so I’d print out tutorials in the school library for 5 cents a page and completed the tutorials on my offline PC at home with a localhost webserver.

No MacBook – all my PCs were hand-me-downs, and I’m grateful for that.

I don’t remember how I came across the source code for Wolfenstein 3D. You know the game, right?

Wolfenstein 3D is a first-person shooter developed by id Software, originally released in 1992 for MS-DOS. In the game you play an Allied spy during World War 2. You escape prison and carry out 6 missions against the Nazis. One of the game’s lead programmers was John Carmack, who would later work on the Oculus Rift VR gear. Wolfenstein 3D is often regarded as the mother of all first-person shooters.

I clearly had no idea who John Carmack was, as evidenced by this email to a certain “mr. Carmack”. I was a naive teenager.

An inquisitive teenager too. I half-built many projects, like creating 3D animations, writing PHP scripts, even attempting to code a low-level Operating System.

Wolfenstein 3D: The Value of Meaningful Work

Building a mod for Wolfenstein 3D taught me the value of three things:

Project-based work

Communities

Coding tutorials

You know what’s odd? I didn’t know how to code C, the programming language Wolfenstein 3D is written in. I didn’t know anything about game and graphics programming. I could tell a “string” from an “int”, but that’s about it.

Yet I still managed to create a piece of art and technology, with a vision, something I tinkered on for weeks. It somehow “worked”.

At that time I joined a community of Wolfenstein 3D modders, called DieHard Wolfers. I just checked and the community is still going strong! Wolfenstein 3D was originally released in 1992. Can you believe it!?

The best thing about the Wolfers community were their tutorials. Expertly written, easy to follow, and in most cases you could just copy-and-paste code. Adding functionality to your game that way was easy, fulfilling and fun.

It’s only now that I realize the value and what that community brought me. It wasn’t just the sense of community, people I could chat with, or access to information that taught me how to code.

Within the community, I found the value of slowly building a project, with effort, and enjoying the results of that work. It’s a surprise, but not a coincidence, that I’m teaching app developers those same values, more than 10 years later.

How To Mod Wolfenstein 3D

I couldn’t show up here today with just a story. So, I dug a little deeper and managed to get my old code up and running.

The setup is relatively easy:

Install Windows 98 SE in a virtual machine, like VMware or VirtualBox

Get the Wolfenstein 3D source code and game files

Install the Borland C compiler and IDE

Open the source code in the IDE, compile and run

Profit!

Getting it back up and running wouldn’t have been possible without the DieHard Wolfenstein Bunker and its resources, which is part of that modders community.

You surely understand that installing Windows 98 evoked nostalgia, and familiar sights like the one below. I must have installed Windows 98 a hundred times back then, every few weeks, just to get a fresh system and play around with the hardware.

Then, here’s that Borland C compiler and IDE I spent so many hours with. Compilation wasn’t fast, and I needed to check my work often, so you can imagine how tedious of a process this was.

Fun Fact: Git didn’t exist back then, and I only learned about SVN years later. So, to keep my code manageable I simply copied my code to a backup folder once a major feature was built, and named the folder with a date and a number. Poor man’s version control!

The Mod: “Killer-suit: Masterminds”

It was called Killer-suit: Mastermind. I was, and still am, a fan of the Hitman video game series, so Agent 47 definitely was going to play the protagonists role. I also liked Hitman’s grimey environments, odd gameplay elements and open-ended playing style.

“It is 1999, six high profiles managed to form a plan that should erase earth out of existance. You are ID 50427, the best assassin of the British secret operation MI5. It is your task to eliminate these six profiles. Packed with high-tech gadgets you are sent to all the outskirts of the world to perform the most silent murders and save the world from it’s end.”

Quite dramatic! I would also make changes to the graphics engine itself, including “high-res” sprites, shading and lighting, multi-textures and decals, shot trails and blood splats, multiple weapons and ammo types, and new graphics.

Here’s some of the work I did:

Then, the memories get fuzzier. I remember leaving my mod and the Wolfers community for a while, to focus on my highschool exams in 2007. After graduating I effectively started a new life, going to college and studying, and slowly but surely forgot about Wolfenstein 3D and my mod…

I recently discovered some of the old source code for the Wolfenstein 3D mod on a rewritable CD. That’s how I saved files that didn’t fit on my PC’s disk – instead of buying an expensive USB pendrive I’d just endlessly burn a rewritable CD.

Unfortunately, it appears I have only saved the work I did based on those Wolfers tutorials. The Killer-suit: Masterminds mod will remain lost and unreleased forever…

It’s better like this.

I never finished the work anyway. The one, most important thing that remains is the experience of project-based work.

I clearly remember is sitting down in front of my PC, getting to work on my masterpiece, and doing the gradual, meaningful work of building something awesome. I don’t need source code for that!

Quick Note: You can still mod Wolfenstein 3D in 2017! Simply install DOS or an early version of Windows on a PC, or in VMware or VirtualBox, add the Borland C compiler and IDE to your system, load up the Wolfenstein 3D source code and get hacking with one of the many awesome DieHard Wolfers tutorials.

Further Reading

Did I ever hear back from “mr. Carmack”? No, I’m afraid not… I later learned that I was perfectly allowed to mod the game, as long as the release didn’t include id’s original game assets.

When it comes to modding Wolfenstein 3D, the real work is done by much greater coders than me. I never said bye or thanks to the DieHard Wolfers community – but I can now!

A big thank you to BrotherTank, MCS, Darkone, Ripper, WSJ, Dugtrio, Chris, Adam Biser and all other Wolfers that made modding Wolfenstein 3D awesome.

Browse Topics

Swift Sandbox

Reinder de Vries

Reinder de Vries is a professional iOS developer. He teaches app developers how to build their own apps at LearnAppMaking.com. Since 2009 he has developed a few dozen apps for iOS, worked for global brands and lead development at several startups. When he’s not coding, he enjoys strong espresso and traveling.