This is a port of my 2017 tutorial from GameBanana, slightly edited there and there. Hopefully, I’ll start a mapping series if this gains enough attention.
With sophisticated map editing tools, compilers and source ports which have increased limits, Quake mapping has never been sweeter.
To start making maps for Quake, you need:
A Quake WAD: Q.wad at Quaddicted
A map editor: J.A.C.K.
Other map editors are: Trenchbroom | QuArK | gtkRadiant
A Quake FGD: Quake456 or use the one that came with J.A.C.K.
A set of modern compilers: TyrUtils-ericw
Since I’ve never used Trenchbroom nor gtkRadiant, and QuArK is user-hostile for you beginners (it’s UH in general), the tutorial will explain creating a map with J.A.C.K.
There are other map editors and it’s your choice. I’ve used J.A.C.K. the most, QuArK is extremely customisable but clunky, Trenchbroom has some neat features which J.A.C.K. doesn’t have etc.
Just avoid using ancient software if you want to do ‘serious’ mapping.
| INSTALLATION & SETUP |
When you open the J.A.C.K. installer, make sure to choose an installation directory that is NOT Program Files or Program Files (x86). Windows will hate it when J.A.C.K. tries to write its configuration files to its directory otherwise.
You will be asked your Quake directory at some point. If you have Half-Life, Quake 2 or the other games mentioned there, you can freely write their paths as well.
After J.A.C.K. is done installing, we will have to do some preparations first. This isn’t mandatory, but it helps with your workflow, especially if this is your first time mapping.
(I’ve seen people placing their map files on the desktop, and I think that’s HORRIBLY DISGUSTING, don’t do that)
| FILES AND FOLDERS |
I suggest you create a new folder, e.g. your documents. Call it Quake.
Somewhere in my E:/ drive, I have a Workfolders folder, and my Quake work folder is in there. It’s a hierarchy.
This will basically be like a deposit for your files. Sort of like a storage area for most of your work files.
This is fairly clean, you’d say.
This is probably what will collect after a few years:
After you’ve done that, I’d suggest you to also make a new folder where you will save your map files.
When you press the Save button in J.A.C.K., it will generate a .jmf file, and it has to go somewhere.
An example of such folder is depicted in the screenshot above.
You don’t need to do it exactly like I did, I’m only giving you an idea how to keep it organised and tidy. :3
Now, we need the Quake WAD file, which I listed at the beginning of the tutorial. I have it installed right here:
(Don’t worry! The WAD file doesn’t have to be in the Quake game folder. Quake textures are stored in the BSP files, whereas mappers can extract those textures and use them)
The WAD file basically provides textures for the map editor to work with. There are special texture types, but I’ll discuss those much later on.
Next, we need a Quake FGD. You can use the one provided with J.A.C.K., you can use my custom one, as long as it’s compatible with the map editor.
After downloading the FGD, you can drop it somewhere like this:
And, lastly, you’ll need TyrUtils.
They’re very important. They convert the raw map data into a (readable by the game) .bsp format, as well as doing some visibility calculations and lightmaps. Think of your map file as a recipe. The compilers (TyrUtils) are the (robotic) cooks, and they will bake something according to the recipe, so you gotta make sure the recipe is good.
You could place them here:
By now, your Quake work folder will have an FGD folder, a textures folder, a tools folder and maybe a maps folder. (or it’ll all end up somewhere on the desktop if you didn’t listen to me)
| SETTING UP THE MAP EDITOR |
Now that you’ve done the preparations, launch J.A.C.K.
I highly suggest you to right-click and select “Start as administrator”, to prevent any access problems, just in case.
(ignore the custom colour scheme and button layout)
Go to Tools -> Options
Or press F2 on your keyboard.
Let’s go to Game Profiles:
This is where you choose which FGD file to use.
At first, you’ll see the standard quake.fgd which comes with J.A.C.K. You may click Remove if you used a custom one, and then click Add and find where you installed your custom FGD.
You don’t need to fiddle with other settings in this tab.
Move on to Directories:
This is how it should look.
Game Executable – The .exe which launches the game.
If you have it on Steam, it should be something like
C:/Program Files (x86)/Steam/steamapps/common/Quake/[source port name].exe
I use Mark V, so for example I’d write the path to markv.exe.
Base Game Directory – The directory where the base game assets are stored.
Mod Directory – Directory where the mod assets are stored.
This is useful when you’re working on a Quake mod.
Source Maps Directory – Where J.A.C.K.’s .jmf files go.
I advise you use a folder in your Documents folder, or a folder on your desktop, for the sake of J.A.C.K.’s accesibility, and the tidiness.
Model Viewer – Not really needed, but it’s an external model viewer. I don’t know any for Quake. This doesn’t have anything to do with the in-editor models for entities.
Now go to Textures.
As you can see, the map editor will load the textures somewhere from our work folder.
Press Add Files… in order to add the Quake WAD file. Ignore sptex.wad for now.
Lastly, Build Programs:
BSP executable – “Binary Space Partition”; parses the .map file, and generates a .bsp file. It generates clipnodes (collision) for the map, as well as portals and visleaves (visibility stuff).
VIS executable – short for “Visible Instruction Set”; calculates what the engine should render at times and what not to render, depending on the player’s position and line of sight.
LIGHT executable – calculates lightmaps which are a special type of texture, and produces .lit files so that the lighting can have different colours.
| MAKING A ROOM |
Now you’ve set up J.A.C.K. to be used with your maps.
Click File -> New or press Ctrl+N. If you’ve got multiple game configs, you’ll get asked to choose between them:
And click OK.
You can see 10 big buttons. Those are the tools you craft the map with.
From left to right (top to bottom in your case):
Select Tool (Shift+S) – Selects objects, moves objects, scales, skews and rotates objects
Magnifier Tool (Shift+G) – Zoom in/out
Camera Tool (Shift+C) – Places the in-editor 3D camera
Entity Tool (Shift+E) – Creates entities according to the definitions in the FGD file (basically, when you create an entity, it loads its parameters and properties from the FGD file)
Block Tool (Shift+B) – Creates brushes (technical term: polyhedrons)
Texture Application (Shift+A) – Applies, scales, drags, replaces textures etc.
Apply Texture (Shift+T) – Literally applies the chosen texture to the selected brush(es)
Clipping Tool (Shift+X) – Used for cutting brushes. Imagine it as a knife, and brushes as cake. Knife slices the cake. >:)
Vertex Manipulation Tool (Shift+V) – Each brush has vertexes (points in space which define a geometric object). The VM tool allows advanced control of the shape of your brushes.
Paths Tool (Shift+P) – Defines points for train paths etc.
For starters, let’s just make a room.
Go to the Texture toolbox, and click Browse…
Type wall into the filter, and find a suitable wall texture like TWALL3_1.
Double-click the texture.
Now your texture is selected.
Press Shift+B on your keyboard.
Then, go into the top (x/y) view and drag a box:
In the front (and side) view, you can drag the brush up and down, and you can also scale it vertically.
Now press Enter.
You’ve successfully created your first Quake brush. You should feel proud of yourself.
Now, you might be wondering how I moved the camera there.
1. Place your cursor into the 3D view
2. Press Z
3. Use WASD and the mouse to move and look around
4. When you’re done moving, press Z again
Now, let’s make 5 more brushes.
Remember that you’re still in the Block tool (Shift+B).
Press Shift+S (Select tool) and click the brush.
Now, hold Shift and drag the brush upwards in the side or front view. Then release the left mouse button.
And do the same, but like this:
And do the same for the other side as well:
Excellent, now you’ve got a room!
Next, select a floor texture and click the floor brush. Then press Shift+T.
Do the same for the ceiling and you’ll get this:
However, we need a player spawn and a light.
| PLAYER SPAWN & LIGHTING |
Press Shift+E and select info_player_start:
Click somewhere in the top view:
And move it downwards onto the floor:
And then, press Enter.
You may go back to the Select tool and place the player spawn directly on the floor. It’s up to you.
You see a gap between the player and the floor.
If you want to align the entity to the grid, press Ctrl+B.
Lastly, using all the knowledge you have gained in this tutorial, throw in some light:
Select the light entity and press Alt+Enter:
(in this screenshot, you see the many sorts of parameters you get with a custom FGD, but the default one will work just fine!)
Now you can customise your light.
The light colour is like a scale of RGB. 1 1 1 means full red, full green and full blue.
1 1 0.6 would produce a warm light colour. :3
Lastly, press Ctrl+S and save your map somewhere.
Then, go to File -> Export Map… after which you will export the map to your Quake/id1/maps directory.
After that, press F9.
I use the Expert compile dialogue:
You can tweak many parameters for the compilation (“baking”) process here. But that’s a bit too complicated for a beginner user. So, use the normal mode and just press OK.
After it finishes compiling, J.A.C.K. should launch the game in the map for you:
That’s pretty much it.
| WHAT NEXT |
Ask me 9000 questions, go watch/read some general level design guides and tutorials, post your first map screen here, annoy me to start off a tutorial series on Quake mapping, there are many options.
Most importantly, learn by playing around. Fiddle with brush entities (select a brush and press Ctrl+T), place enemies, more lights, try constructing a hallway connecting two rooms. You’ve got so much to discover.