So you’ve decided to begin modding Mega Man 8-Bit Deathmatch? We’re glad to have you on board! This page will walk you through using the DECORATE programming language which drives all the objects in the game. Along the way you’ll hopefully pick up some general programming skills which can be adapted to any programming language, including the other programming language of MM8BDM, ACS.

<aside> 💡 Required Materials:

Table of Contents

Zandronum and GZDoom


Before we begin modding for Mega Man 8-Bit Deathmatch, we need to take a step back and widen our view of what this game is built using. MM8BDM is what’s known as a total conversion that runs on the Zandronum game engine. This game engine is a multiplayer focused fork of another game engine now called GZDoom.

This context is important because it means that whenever you’re making a mod for MM8BDM, while you should be leveraging all the systems that MM8BDM itself implements, you are primarily using the systems implemented by Zandronum and the GZDoom version that Zandronum is forked off of.

That means that for any information that this wiki does not cover, you will want to reference the documentation wikis of Zandronum and GZDoom. As mentioned earlier, Zandronum is forked from an older version of GZDoom, so you can use this tool to convert a ZDoom wiki (GZDoom’s wiki) URL to the older version that reflects Zandronum’s version. With that out of the way, let’s begin modding!

File Structure and Organization


When we write code, we typically use specialized programs which are classed as Integrated Development Environments (IDEs). These provide us with some nice features such as directory manipulation, syntax highlighting, and tooltip information when hovering important elements.

SLADE 3 is a popular IDE for Zandronum modding because it is specialized to deal with the PK3 and WAD file formats which Zandronum runs off of. Once you have SLADE 3 installed, go ahead and open it up. You should see a view that looks similar to below:

Untitled

We’re going to want to start our modding ventures by creating a new PK3 file to place our code into. SLADE calls these “archives,” so let’s create a new archive by clicking the green icon in the top left. This will bring up a pop-up asking which type of archive we want to create. PK3 files are equivalent to ZIP archives, so we’ll use a ZIP archive for our project.

Untitled

We now have an entirely empty project, ready for some code to be placed into it!

The possibilities are limitless!

The possibilities are limitless!

One important thing to understand about DECORATE is that Zandronum only loads code that is located in a DECORATE file in the root of our project. This sounds pretty bad at first, all of our code localized in one single file? Let’s go with it for now and we’ll quickly figure out a way to better organize our code.

With that in mind, let’s go ahead and create that DECORATE file. We’ll do this by creating a new “entry.” Note that for Zandronum to recognize our DECORATE file, it must actually be named exactly that.

Untitled