Go to QuArK Web Site
Advanced stuff
Updated 05 Apr 2018
Upper levels:
QuArK Information Base
2. Map editing
2.1. Tutorial - Creating a map

 2.1.4. Advanced stuff

 [ Prev - Up - Next ] 

This is the fourth and final part, which guides you through the methods and functions of creating a map in QuArK's map-editor. You should have read the first part, second part and third part before going through this fourth part.

The advanced stuff is optional, but learning these can help you set up your maps faster than normal.


 Index


 Wall maker and Hollow maker

Decker - 05 Apr 2018   [ Top ] 

If you don't want to waste time, making rooms by the brick-by-brick method (e.q. create a brush per wall/floor/ceiling), you should try out the two macro-objects; Wall Maker and Hollow Maker.
Both objects can be found in the 'Duplicators & Misc.' folder.
Once created, a default brush is assigned to the object, but you can of cause put more brushes into the Wall Maker-/Hollow Maker-object, like any other brush-entity or group.

Both the Wall maker and Hollow maker, consists of solid-cube(s) and negative-cube(s), but you only have to think about moving one.
Depending on which of the two objects you have created; Wall maker or Hollow maker, the size of the room they make, are whats matters:
  • A Hollow maker, will take the brush(es) which are assigned to it, and create a smaller room inside it.
  • The Wall maker, takes the size of the brush(es) for given as the room size, and then surrounds it with walls.

The size of the walls are determined by the specific  depth , which can be found in both objects. To increase the thickness of the walls, increase the value of depth.

 Group techniques

Decker - 05 Apr 2018   [ Top ] 

If you plan on using anyone of the below mentioned macro-objects; Digger, Negative brush, Duplicator, Copy-One or Mirror, you must use groups!
Since a macro-object apply its effects/actions to the group it is positioned in, and all of its sub-groups, it will be impossible to use the objects, if you don't use groups.
Another good point for using groups is, that this will allow you to move many brushes and entities, in just one movement. Just select the group of objects you want to move, and move them in the 2D-views.
At the moment, it is not possible in QuArK to lock brushes/entities in a group, so when you select a brush/entity in the 2D-view which belongs to the group, the entire group is selected instead. To do this, you have to first select the group in the tree-view, and then move it in the 2D-views, or use the 'Extend Selection' functionality.

With groups, you can also hide their contents from the 2D-views, or just gray it out. To do this, select the group in the tree-view, right-click to get its context-menu up, and select between:
  • Group is visible
  • Group is grayed out
  • Group is hidden
Notice that the last option, will also automatically select "Hide on textured views" and "Cannot select with the mouse". This way you won't accidently select parts of your map, that you can't currently see in the 2D-views.

You can also give a group a color to illustrate different things. Again in the context-menu you can choose the Group color, which will bring up a color-choice dialog.

 Creating holes (carving) using Diggers and Negative brushes

Decker - 05 Apr 2018   [ Top ] 

If you think, that to create a hole in a brush, you have to brush-subtract (carve), then think again when using QuArK!
A very powerful feature in QuArK, is the ability to use diggers and negative polys, which first does the real brush-subtraction when you compile your map. This lets you experiment placing a hole if you're not quite sure about its position, without messing with brush-subtraction and more brushes than necessary.
A digger and negative poly will only create holes in brushes of the same group, or sub-groups of that group, that they exists in.

There are no actual difference between a digger macro and a negative poly, other than in the tree-view you can see the Digger object. You can't see a negative poly, unless you rename it by selected it in the tree-view, and press the F2 key.
In the 2D-view, these cubes will be drawn with a different line-color (See also 'Colors'.)

The texture of a face on a digger or negative poly, will be applied to the brush that is carved, but only if that brush hasn't already been carved or cut at that coplanar plane that the face of the digger/negative poly will carve/cut it at. This can get tricky at times, and depends on which digger/negative poly does the first carving/cut.
Example: In the image to the right, there are two negative polys both with different textures (RED, BLUE), and two normal brushes.
After the negative polys have done their job (during compile), it may look like this in the game:
  • The cut-lines 1, 3 and C will get their texture from the negative polys' faces.
  • The cut-line A will keep its texture, because it was already cut  beforehand.
  • The cut-lines 2 and B will get their textures from the negative poly who first does the carving/cut. In this case, the face B12 became RED and face B23 became BLUE, but face 2AB is still RED.

 Creating copies using Duplicators, Copy-One and Mirrors

Decker - 05 Apr 2018   [ Top ] 

Say you wanted to make a staircase, with 20+ stairsteps. The dull method is to create a brush which is the first step, and then copy-paste-move it so you'll end up with 20+ brushes. Now imagine that you made an error, or found a new texture that'll look better - you would have to start all over.
Not so with QuArK! With a duplicator macro-object, you can create a master-stairstep, and let the duplicator automatically do the copy-paste-moving for you. Every change you make to the master, will instantaneously be duplicated.
Again, to use this duplicator properly, you must use groups!
Note that when duplicating, by default everything is duplicated, including anytargetname/target specifics any entities have. If you need to have different targetname/target in the copies, you should check whether the incrementable specifics described in 'Incrementing Specifics', or the 'Arg Replacer' plugin, or perhaps some other plug-in not available at the time of writing, is more suitable for your purposes.


There are two basic types of duplicator:
  • A basic one, which is usually used to create simple straight duplications. E.q. staircases or a row of columns.
  • An enhanced ('linear') one, which can apply linear rotations and scaling among other things. E.q. round staircases, enlarging or shrinking brushes. This is the basis for various further types.


In the image to the right, multiple things are shown:
  • You must put your master-objects within the same group as the Duplicator macro-object. In this example, only one 'new cube'-brush is our master, but any number of brushes and entities can be put in here.
  • Whenever the Duplicator is selected, the 2D-views will display a series of Duplicator-copy Handles. These are used to control the spacing and direction, between each copy. It can also be altered with the offset specific.
  • The count specific of the Duplicator, controls how many copies the duplicator must make.
The (New) Copy-One and Mirror macro-objects work similarly to the enhanced duplicator, but they are specialized to only make one copy.
  • Copy-One will create a copy of your master-objects, and allow you to place the copy somewhere else. New Copy-One has additional features making it more suitable for making multiple copies with irregular spacing.
  • Mirror <an axis> creates a copy of your master-objects, and mirror them along the axis specified, at the origin of the Mirror macro-object in the 2D-view.
It is possible to put a duplicator macro-object, into a sub-group of another duplicator, and so on. This way, you can, for instance, create multiple lines of a row of columns on many floors. See 'Advanced Duplicators' for more details, and additional types of duplicator.

 Face Sharing

QuickDeath - 05 Apr 2018   [ Top ] 

QuArK supports the advanced feature of "sharing" a face among several polyhedrons (NOTE: the term "polyhedron" and "brush" are interchangeable. Many editors use the term "brush" while QuArK uses "polyhedron" or simply "a poly").

Please note that face sharing requires the use of "groups". If you don't know how to use QuArK's group feature, you need to review the basics. Before we get into face sharing, we also need to review some Quake-engine basics.

Defining a world...

Quake-engine based games are comprised of polys. To define a poly, you need to define a number of planes. As we all remember from geometry, a plane is a flat, 2-dimensional object that has infinte length and width.

A poly in Quake is the intersection of a bunch of planes. A simple cube is defined by the intersection of six planes. Two planes define the top and bottom of the cube while four more planes define the four sides. Imagine a house of cards. A single "room" of this house would consist of one card face down on the table, four cards for each side and one card on top. Now imagine these cards as planes. The inside of this "room" (the place where all six of the planes intersect) creates a poly.

QuArK gives you individual access to the planes, or "faces", that define a poly. As we all know, you place textures on these faces to build your level. What you can also do is "share" a face among multiple polys. If two (or more) polys share the same face, you define the texture scaling and position once on that shared face and every poly using that face will have a smooth texture flow.

Putting Face Sharing to work

Imagine 3 polys in a row (part of a room). The middle one is the same height as the ones to the left and right, but its bottom is raised up. It's an entry way into a hallway. Here's the view if you're facing the 3 walls:

Assume we use the same texture for the "front" of these polys (the side that is facing us), we'll have to position the texture on the second and third polys very carefully so it flows nicely across the entire wall. Looking at the 3 polys from above, we'd see:

All 3 of these polys share 2 planes. If we look at the above view the "front" and "back" faces of all 3 polys run along the same plane:

To keep things simple, we'll just worry about the "front" plane.

Create a new group. We'll call the group "Wall1" and move all 3 polys into the group. Your treeview should look something like this:

Now open up the first poly to show all of the faces and move the "front" face to the top of the group (determing the face to move is easiest by just selecting it in the editor). You move the face by grabbing it with a right-click and dragging it to the top of the group (outside the poly). We'll assume the face to move is the one QuArK calls "south". After moving the "south" face, your treeview should now look something like this:

Now open up the face list of the second and third poly's and delete the front face of each of those -- this will usually  be the same face (i.e. "south") as the first one, but not always. Select the face in the editor to be sure.

The "south" face is now the "front" face that all of the three polys share. Define your texture for that face and you're all set! No problems with texture alignment because it's one face -- the texture is just pasted across the entire face!

This technique is also handy if you have a floor that is composed of multiple polys (because of the shape of the room -- non-convex). Assuming all of these polys are at the same height, put all of them in a group and share the side facing "up". Now when you want change the floor texture, change it on the one floor face and the entire floor (across all of the polys) changes since they're all sharing that face (plane).



Copyright (c) 2022, GNU General Public License by The QuArK (Quake Army Knife) Community - https://quark.sourceforge.io/

 [ Prev - Top - Next ]