A basic RPG-style levelling system

Many games from all genres take inspiration from RPGs in the form of a "level-up" system. This system typically rewards the player "experience points" for tasks, and gives the player a "level" when a milestone is hit. Each level will generally make the player stronger in some way.

For this guide, we'll be introducing such a system to Wolf3D. By the end you will have a functional but basic system for levelling, where kills will reward experience, and levels will influence the amount of damage weapons do.

Add a Rocket Launcher (Wolf4SDL)

Rocket launchers are a weapon introduced in the last three episodes of Wolfenstein 3D, but only for the Boss enemies. Let's fix that!

Compiling the code for shareware Wolfenstein 3D and Spear of Destiny

The source code comes prepared to build version 1.4 of the full version of Wolfenstein 3D, but is actually capable of building for multiple different versions of the game, as well as Spear of Destiny!

This guide will show you how to change the code to compile for different games and different versions of them. It assumes you already have a game project that successfully compiles. If not, you'll want to check out the guide for setting up a Wolf4SDL project.

Enabling Feature Flags (High Resolution Textures, Cloudy Skies, etc)

Wolf4SDL comes with extra features already added and just needing to be activated. This guide teaches you what is in Feature Flags, how to activate them, and how to use them.

Rearranging the status bar

In Wolfenstein 3D, the status bar is a static image, over which the stats pertaining to the player and game are displayed. Of course, in a different project, this design might not be relevant. Maybe the game has more than 4 keys, or the author doesn't want to display weapons, or simply wants things in different places.

Removing the Lives system from Wolf3D (Beta)

A holdover from arcade games, Wolfenstein 3D is one of many games that utilize a "Lives" system in it's game - each time the player dies they lose a life, and when they have used up all of their lives, the game is over. The choice of using Lives is a design choice, and of course everyone has a different vision. What if you don't want to use them in your game?

Saving Memory in DOS

Once you start adding things to the original Wolfenstein 3D engine, you may quickly come across an "Abnormal Program Termination" error. This is because for all of Wolfenstein 3D's ingenuity, it was restricted by DOS's capabilities. Prominently, a restriction in the amount of memory available to the game.

Setting up the DOS Wolf3D source code

Thanks to John Carmack releasing the source code to the public back in 1995, people interested in making their own games can modify the engine itself to create whole new features and effects.

At the end of this guide you will have learned how to compile a working exe for the full version of Wolfenstein 3D for DOS.

The tools you will need:

Setting up the Wolf4SDL Source Code

Wolf4SDL was released in 2007, a project by DHW member Moritz "Ripper" Kroll to port Wolfenstein 3D to modern systems. While there were other notable attempts at ports like NewWolf and WinWolf3D, this particular port stood out for it's closeness to the original look and feel of the game, as well as it's relative similarities to the original source in respect to modding.

This particular port has been one of the most common for people to make games using, and is even used as the base for ECWolf.