Making Might and Magic maps with Trenchbroom

From MM6 Wiki

Making maps for Might and Magic is a little bit tricky since it requires usage of some 3D software like Blender or 3Ds Max. To make it easier map editor can be used. MMEditor is used to edit Might and Magic maps. It can import 3D models in OBJ format. That means that any program that can export such models can be used for making objects or even entire maps for the games.

Trenchbroom is a map editor for Quake-based games.

Setting up the editor[edit | edit source]

There are pre-made texture collections for Trenchbroom:

Select one of depending on the game. Then extract it somewhere.

More information on how to make a custom texture pack can be found on the Discussion page.

Trenchbroom configuration[edit | edit source]

By default it seems that BMP image support in Trenchbroom is not enabled. That can be solved by creating a custom game configuration file.

Might and Magic game config

To add this configuration: extract the ZIP file into the Trenchbroom/Games directory. If the configuration files worked then the new entry will be visible when creating a new map:

Mm6 trenchbroom select game.png

Now Trenchbroom needs a path where the textures are stored. To set it, press the Open preferences... button. And set the path for Might and Magic preset to the texture pack (the folder that contains the textures directory).

Mm6 trenchbroom configure engines.png

After the path to textures is set Trenchbroom will be able to load all the texture collections within the directory.

The textures will be added once at least one texture collection is imported. Open the Face tab and in the Texture Collections section double click on any available texture collection. Once the texture collection is loaded the textures should be visible in the Texture Browser.

From now on the process is very similar to making a custom map for Quake, so the general tutorials for Trenchbroom apply.

Creating maps with Trenchbroom[edit | edit source]

Introduction[edit | edit source]

Mapping limitations[edit | edit source]

Might and Magic engine has its own limitations that are not present in Quake engine. Most of them are tied to texture mapping.

  • The textures can not be rotated
  • The textures can not be flipped
  • The textures can not be scaled

None of that will be applied after the model is exported. Importing a model like that will lead to inconsistent results between the editor and the game.

(As a workaround for all that a duplicate of the texture is usually created and altered in some editor to get a rotated / flipped / scaled version of the texture)

To get the most consistent results untick Texture Lock and UV lock in the Edit menu:

Mm6 trenchbroom texture lock.png

Mm6 trenchbroom object ready.png

Making invisible walls[edit | edit source]

Hiding faces is a nice way to make invisible walls and movement helpers (like ramps for example). Marking faces using texture named "_Invisible_" will ensure that the face is not visible in the game. The texture is already included in the pre-made texture pack, it is in the texture collection named mmeditor.

The texture itself can be anything, the only rule is that it has to be named exactly like that. The texture can be made in any image editor and then loaded within any texture collection.

Mm6 trenchbroom object ready 2.png

Making outdoor maps[edit | edit source]

Since MMEditor handles making terrain that is compatible with Might and Magic out of box then making outdoor maps completely in Trenchbroom is not really necessary. Instead it may be better to just make objects one by one and then import and place them using MMEditor. The example of pipeline will be something like that: Make a house / building in Trenchbroom -> Import in MMEditor -> Place it manually -> repeat

Faces / segments of the object that are really close to each other will blink / flicker / disappear in-game. To solve that the colliding parts can be masked using _Invisible_ texture. More information can be found in the Making invisible walls section.

Making indoor maps[edit | edit source]

Export to MMEditor[edit | edit source]

Once the object is finished export the model by using File -> Export -> Wavefront OBJ .... That will export the entire map regardless of what is selected.

Doing that will create 2 files: .OBJ and .MTL

Setting up MMEditor[edit | edit source]

MMEditor is used for editing maps in the game. Follow the steps for installation of MMEditor, afterwards run the game once to generate the required files and directories.

For MMEditor to correctly process the model the following script: mtl.lua

needs to be placed at the /Scripts/General directory.

Once the game is loaded press alt + F1 and open any internal map.

Importing objects (outdoor)[edit | edit source]

To import the model click on the Import button.

Select Cancel when asked to delete models, that will keep the rest of the map intact.

If the model was created not far from the center of coordinates in Trenchbroom it will be placed somewhere around 0,0,0 coordinates in the game, which is the center of the map. The newly imported object should be there.

Mm6 trenchbroom mmeditor import.png

Moving the object[edit | edit source]

Many building in the game are considered to be a single object by the engine. Those had many shapes merged in one using 3D software. In Trenchbroom objects are built using brushes and usually there are many brushes that constitute one object. When Trenchbroom exports a model it keeps the shapes separate. That means that the object can not be selected all at once.

To move imported object:

  1. Click on any face on the model
  2. Press the Model button
  3. Hold the Left Shift key and select the other parts

Mm6 trenchbroom mmeditor object selected.png

Now there are 2 options:

  • Use arrow keys + Page Up / Down to move the object around
  • Move the party to the destination and press the Move To Party button

! Note that the Land function will not help to align the object to the ground since it will align every segment individually and not the entire group.

The result:

Mm6 trenchbroom ingame.png

Importing objects (indoor)[edit | edit source]

To import map geometry for indoor map just select import object (not rooms) and select the .OBJ file exported from Trenchbroom. There are some drawbacks regarding this method:

1. The entire minimap will be revealed right away.

2. It can possibly result in lower performance than if importing rooms 1 by 1. Since that way the rooms are not being hidden if not visible.

Room import[edit | edit source]

As for now room import is a bit too convoluted since it will require a 3D modelling application like blender to merge all objects into 1 room since Trenchbroom exports each object separately.

Sample maps[edit | edit source]

Minecraft[edit | edit source]

minecraft.bitmaps.lod - LOD with map textures

map.dat - MMEditor project file - Trenchbroom map file

Texture collection for Trenchbroom used to make this map can be found in the section above.