Hosting and domain costs until October 2024 have been generously sponsored by dumptruck_ds. Thank you!

Editing Getting Started Mapping

From Quake Wiki

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 31: Line 31:
 
Now that we have definitions out of the way, let's get all the tools we will need. Trenchbroom you will need to install, the others are loose files which you will need to put somewhere accessible. I personally have a folder on my hard drive E:\q1maps\ where I keep all my .wads, compiling tools, .maps, etc.
 
Now that we have definitions out of the way, let's get all the tools we will need. Trenchbroom you will need to install, the others are loose files which you will need to put somewhere accessible. I personally have a folder on my hard drive E:\q1maps\ where I keep all my .wads, compiling tools, .maps, etc.
  
'''Editing Software''': This tutorial will use Trenchbroom. [[https://trenchbroom.github.io/ Homepage]]
+
'''Editing Software''': This tutorial will use Trenchbroom. [[http://kristianduske.com/trenchbroom/ Homepage]]
  
 
'''A texture .wad''': We will use Q.wad, which are all the textures from Quake. [[http://www.quaddicted.com/files/wads/q.zip Download]]
 
'''A texture .wad''': We will use Q.wad, which are all the textures from Quake. [[http://www.quaddicted.com/files/wads/q.zip Download]]
Line 38: Line 38:
  
 
'''Necros' CompilingGUI''' ''(optional)'': This is a handy front end for the compilers so you do not have to use command prompt or batch files to run the compilers. [[http://shoresofnis.wordpress.com/2010/03/30/ne_q1spcompilinggui/ Homepage]]
 
'''Necros' CompilingGUI''' ''(optional)'': This is a handy front end for the compilers so you do not have to use command prompt or batch files to run the compilers. [[http://shoresofnis.wordpress.com/2010/03/30/ne_q1spcompilinggui/ Homepage]]
 +
 +
  
 
=Putting it together=
 
=Putting it together=
Line 71: Line 73:
 
Let's keep going with constructing our room. To make another wall, let's '''Duplicate''' the wall we already have by selecting it, and pressing '''Ctrl-D'''. Now position it on the opposite edge of our floor. Let's also make a ceiling, so select the floor, and duplicate it as well. Now, we need our brush to '''Move Vertically''', and for that, we '''Hold down Alt''' whilst moving our brush, notice your cursor changes to 2 arrows pointing up and down. Let's give this a nice ceiling texture, I am using ''city5_3''.
 
Let's keep going with constructing our room. To make another wall, let's '''Duplicate''' the wall we already have by selecting it, and pressing '''Ctrl-D'''. Now position it on the opposite edge of our floor. Let's also make a ceiling, so select the floor, and duplicate it as well. Now, we need our brush to '''Move Vertically''', and for that, we '''Hold down Alt''' whilst moving our brush, notice your cursor changes to 2 arrows pointing up and down. Let's give this a nice ceiling texture, I am using ''city5_3''.
  
Although not pictured to the right, let's close up our room now. '''Select Multiple Brushes''' by '''Ctrl-Left Clicking''' them, and select both of our walls. Duplicate them, and let's rotate them. You can quickly '''Rotate 90° Horizontally''' by pressing '''Alt-Left Arrow''' and '''Alt-Right Arrow'''. You can also '''Rotate 90° Vertically''' by pressing '''Alt-Up Arrow''' and '''Alt-Down Arrow'''. You can also '''Flip Horizontally''' with '''Ctrl-F''' and '''Flip Vertically''' with '''Ctrl-Alt-F'''.  
+
Although not pictured to the right, let's close up our room now. '''Select Multiple Brushes''' by '''Ctrl-Left Clicking''' them, and select both of our walls. Duplicate them, and let's rotate them. You can quickly '''Rotate 90° Horizontally''' by pressing '''Ctrl-Left Arrow''' and '''Ctrl-Right Arrow'''. You can also '''Rotate 90° Vertically''' by pressing '''Ctrl-Up Arrow''' and '''Ctrl-Down Arrow'''. You can also '''Flip Horizontally''' with '''Ctrl-F''' and '''Flip Vertically''' with '''Ctrl-Alt-F'''.  
  
 
Again, make sure all of our brushes have their edges aligned so our room is sealed. For our simple room this is not the end of the world if they are not, but it is good habit to get started with and will be required on larger, more complex maps to ensure they do not [[leak]]. Leaks occur when your brushes don't form a complete seal around the playable world, and prevent the compiling process Vis from running.
 
Again, make sure all of our brushes have their edges aligned so our room is sealed. For our simple room this is not the end of the world if they are not, but it is good habit to get started with and will be required on larger, more complex maps to ensure they do not [[leak]]. Leaks occur when your brushes don't form a complete seal around the playable world, and prevent the compiling process Vis from running.
Line 121: Line 123:
 
Once you're done examining our full-bright room, exit Quake and let's get some light working. Back in our compiling GUI, uncheck the box next to the word "QBSP", and check the box next to the word "LIGHT". Compile again, and once back in Quake, our map is now nicely shadowed!  
 
Once you're done examining our full-bright room, exit Quake and let's get some light working. Back in our compiling GUI, uncheck the box next to the word "QBSP", and check the box next to the word "LIGHT". Compile again, and once back in Quake, our map is now nicely shadowed!  
  
General lighting in Quake is not dynamic, but is calculated by our light compiler into what are known as "lightmaps", which are stored in our .bsp file. By default, all lights have a linear falloff, but more modern light compilers (such as the light compiler provided in TyrUtils) have functionality to support other falloffs. Light, especially with some of it's command-line arguments for improving details, on more complex maps can often take awhile to complete, so often when testing small changes to your map like a couple of new monsters, you may not bother running it. This may be obvious, but if you have no light entities in your map and run light, your map will be fully dark.
+
General lighting in Quake is not dynamic, but is calculated by our light compiler into what are known as "lightmaps", which are stored in our .bsp file. By default, all lights have a linear falloff, but more modern light compilers (such as the light compiler provided in TyrUtils) have functionality to support other falloffs. Light, especially with some of it's command-line arguments for improving details, on more complex maps can often take awhile to complete, so often when testing small changes to your map like a couple new monsters, you may not bother running it. This may be obvious, but if you have no light entities in your map and run light, your map will be fully dark.
  
 
See [[Light (map compiling)]] for more information and common command-line arguments.
 
See [[Light (map compiling)]] for more information and common command-line arguments.
  
 
==Vis==
 
==Vis==
[[File:map_tutorial_vis1.jpg|thumb|No PVS]][[File:map_tutorial_vis2.jpg|thumb|PVS]]
+
[[File:map_tutorial_vis1.jpg|thumb|No Vis]][[File:map_tutorial_vis2.jpg|thumb|Vis'd]]
 
You can now compile with Vis if you'd like. Unfortunately, our little single room map is a bit too simple to actually show what it does. Vis is a process which computes visibility of areas, and creates a table known as the [http://en.wikipedia.org/wiki/Potentially_visible_set Potentially Visible Set] (often shortened to PVS), which Quake uses to determine areas which the player cannot possibly see, and thus, does not need to render. Note that brush entities (or any entities), such as doors or triggers, do not block Vis, nor do special brushes like clips or liquids. Only solid brush geometry.
 
You can now compile with Vis if you'd like. Unfortunately, our little single room map is a bit too simple to actually show what it does. Vis is a process which computes visibility of areas, and creates a table known as the [http://en.wikipedia.org/wiki/Potentially_visible_set Potentially Visible Set] (often shortened to PVS), which Quake uses to determine areas which the player cannot possibly see, and thus, does not need to render. Note that brush entities (or any entities), such as doors or triggers, do not block Vis, nor do special brushes like clips or liquids. Only solid brush geometry.
  
I have constructed a simple snaking hallway map to demonstrate. In the pictures to the right, I have enabled "r_showtris 1" in Quakespasm, which outlines the polygons rendered by Quake. Notice that in the picture with No PVS, there are polygons in the distance around corners which are being rendered, which in the PVS picture, these polygons are no longer rendered. Even in this simple map it is not a huge amount of savings, but as your levels get larger and more complex, this will be a large optimization.
+
I have constructed a simple snaking hallway map to demonstrate. In the pictures to the right, I have enabled "r_showtris 1" in Quakespasm, which outlines the polygons rendered by Quake. Notice that in the picture with no Vis, there are polygons in the distance around corners which are being rendered, which in the Vis'd picture, these polygons are no longer rendered. Even in this simple map it is not a huge amount of savings, but as your levels get larger and more complex, this will be a large optimization.
  
 
Vis requires that a .bsp be fully sealed to run. This means that all of your entities must be surrounded by brushes, and cannot trace a line into the [[void]]. QBSP will warn you when a .bsp [[leaks]] like this, and generate a [[pointfile]] which can be loaded in either Quake or Trenchbroom to help you find where you need to seal your level.
 
Vis requires that a .bsp be fully sealed to run. This means that all of your entities must be surrounded by brushes, and cannot trace a line into the [[void]]. QBSP will warn you when a .bsp [[leaks]] like this, and generate a [[pointfile]] which can be loaded in either Quake or Trenchbroom to help you find where you need to seal your level.

Please note that all contributions to Quake Wiki are considered to be released under the GNU Free Documentation License 1.3 or later (see Quake Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)