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 69: Line 69:
 
==Even more brushes==
 
==Even more brushes==
 
[[File:map_tutorial_5.png|thumb|Duplication]]
 
[[File:map_tutorial_5.png|thumb|Duplication]]
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''' before while 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 '''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'''.  
  
 
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.
 +
 +
  
 
==Add some functionality==
 
==Add some functionality==
Line 101: Line 103:
 
Now it's time to use Necros' CompilingGUI, as pictured below. Let's make sure this are set up properly before we begin.
 
Now it's time to use Necros' CompilingGUI, as pictured below. Let's make sure this are set up properly before we begin.
 
[[File:compile_gui.png|thumb|center|upright=2.5]]
 
[[File:compile_gui.png|thumb|center|upright=2.5]]
In '''Settings>Folder Setup''', we need to point the program at the location of our tools folder, which is the directory on your computer where you places the TyrUtils compilers you downloaded earlier. Ensure that the .exe file names of each of the compilers is correct (do not worry about skip.exe, we will not be using it). For now, we do not need to set any Command-line Arguments.  
+
In '''Settings>Preferences''', we need to point the program at the location of our tools folder, which is the directory on your computer where you places the TyrUtils compilers you downloaded earlier. Ensure that the .exe file names of each of the compilers is correct (do not worry about skip.exe, we will not be using it). For now, we do not need to set any Command-line Arguments.  
  
 
Working Folder should be set to where you save your .map files. Output Folder needs to be set to Quake's '''\id1\maps\''' directory where it searches for levels, such as '''C:\Quake\id1\maps\'''. You may need to create this directory if you do not already have it. When mapping for mods, such as [[Quoth]], this directory will be '''\quoth\maps\''' instead. Exit Preferences once this is all complete.
 
Working Folder should be set to where you save your .map files. Output Folder needs to be set to Quake's '''\id1\maps\''' directory where it searches for levels, such as '''C:\Quake\id1\maps\'''. You may need to create this directory if you do not already have it. When mapping for mods, such as [[Quoth]], this directory will be '''\quoth\maps\''' instead. Exit Preferences once this is all complete.
  
In the main dialog of the GUI, we need to set a couple of more things. First is the '''Source Map''', which is the .map file we just created. We also need to set the '''Quake Engine''' we are using. This will be an executable inside your Quake directory, such as "GLQuake.exe" or "Quakespasm.exe" or "Darkplaces.exe". If you require any Command-line Arguments when running Quake, or if you are mapping for a mod (ex: "-hipnotic -game quoth" when making a map for the Quoth mod), place them in the line provided.
+
In the main dialog of the GUI, we need to set a couple more things. First is the '''Source Map''', which is the .map file we just created. We also need to set the '''Quake Engine''' we are using. This will be an executable inside your Quake directory, such as "GLQuake.exe" or "Quakespasm.exe" or "Darkplaces.exe". If you require any Command-line Arguments when running Quake, or if you are mapping for a mod (ex: "-hipnotic -game quoth" when making a map for the Quoth mod), place them in the line provided.
  
 
==QBSP==
 
==QBSP==
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)