Dernière mise à jour : 28/10/2019 à 13h35

Current Project : Who knows?

Back to Miscellaneous

QuArK Subtractive Space

Using QuArK as a Subtractive editor

First I would like to say that, though this idea is not new to me, the exact method described here is inspired by an article by Hardcoal I can't find today.

Trying to adapt to Quake Engine editors when used to UnrealEd is made very difficult by the opposed paradigm of Additive and Subtractive space. In Quake, the world is empty, and the Level-Designer has to add solid blocks as floor, walls and ceilings, whereas in Unreal, the world is full and the designer has to Define empty volumes inside it. Having to learn how to use a new software is hard in itself, but having to adapt to a completely different philosophy make it even harder, so here is how to have fun in Quake with Subtractive UnrealEd-Style BSP. It may help you not to suffer too much when moving from one to the other.

First, this trick can only be done with QuArK, which is, I think, the best editor for Quake-Engine based game. Its solid interface, powerful features and large infobase are a blessing in the badly-documented world of Quake editing.

QuArK introduces numerous classes of objects, such as "duplicators", abstract brushes and entities (actors) that can be used to duplicate actors, create patterns or mirror entire maps. One of its main features is the support for "digger brushes" and "negative brushes". These are just what their names suggest: carving objects. I toyed with the idea of using them extensively for a while, and finally I found out it is working great for that purpose.

You will need a big brush to carve your map out of. But negative brushes can only subtract brushes they are grouped with. So in most cases, you will have a big group containing both your giant cube and a group of negative brushes. To simulate additive brushes, you will need a third group of brushes containing normal brushes. Usually, I do something like this:

QuArK tree-view of a subtractive map

The World group contains two groups : Solid Space, a group whose flags (RMB on the group) are "Hidden in textured view", "Cannot select with the mouse", and "Group is grayed out", so that it doesn't bother me. It contains only one big brush, Origin Brush, the massive solid block from which the map is going to be carved out. World also contains Subtracted Space, whose flags are default, but has the "Negative" specific (the second icon from the left, just above the tree-view, opens the specific/args window for the selected group/brush). This group contains every subtractive cube. Apart from World is another group, completely normal, Solid Details. These are normal added brushes. I only changed the group colour to yellow in order to have a good contrast between subtracted brushes and added brushes, as negative brushes appear purple in the wireframe viewports.

With this organisation, however, you cannot subtract matter from a brush in Solid Details with a subtracted brush in Subtracted Space. If you want to do that, I suggest creating a last group inside Solid Details, in which you will place brushes with the individual specific "neg". With that in mind, you can create complete maps from subtracted space, just like in UnrealEd. However, there are a few problems I have to discuss:

First, the .map file will be horrible, so consider releasing the .qkm or .qrk file used, instead, for QuArK users. Finally, there are limitations because of the very specific way QuArK emulates this subtractive space. Two coplanar faces, even completely separated, will share one texture, no matter what you do, so consider a slight difference in height if you need to change texture, or adapt your map. These two problems are caused by the way QuArK splits the Origin Brush to create the empty space :

Brush cuts

The engine splits the brush along the edge of a brush. If another brush has a coplanar face, the texture applied to the face of the first brush is extended to the face of the other brush. Exact information on how this works can be found on this page of the QuArK infobase.

Also, if the Origin brush is too large, the builder will warn you with a weird error notice. If you have troubles building the map, consider shrinking the massive solid brush before trying anything else. Then, very sharp angles might create little geometric errors, but this is easily avoidable by using more brushes or filling in the angle with a solid brush. Finally, negative brushes are not displayed in textured and solid-colour modes, if they are not selected. This will force you to use the powerful tag/wrap from tag feature of QuArK. Group Selection, anyway, is very useful and this will let you see only parts of the map you are working on.

Another way to use this is to create the map as a series of blocks carved out. This will prevent the .map file from being too ugly. This would mean using one block per part of the map (one block for a room, one block for a corridor etc...). This way of doing is much prettier in the 2D views and will produce less useless polygons. On the other side, you will have to take more steps for each part of the map.

2005-2022, by Hellkeeper.

Valid XHTML 1.1 CSS 2.1