Skip to content

Recent Articles

24
Jan

Contact!

All of my contact forms are back online, and improved! Try them out if you want!

24
Jan

Contacting me

Apprently all of my contact forms have been broken for over a month… I wondered why I was not getting any emails from my site. So if you have tried to reach me via the contact forms on my site in the past month, sorry. I’m going to be looking for a fix as soon as I can. Until then email me directly at:doug@tophattwaffle.com

ill make a post when they are fixed

13
Jan

River tutorial progress

It is being made! It’s just taking a lot longer to make all of the textures that I need to make it look real. Here is what I have so far!

27
Dec

River tutorial

Just letting you guys know that I will be making the river tutorial. I just need to make some textures for you guys first. I want this to be a high quality tutorial that will place rivers in ALL THE MAPS.

9
Dec

Hammer Tutorial #95 “Dynamic Lighting, env_projectedtexture”

2
Dec

Mapping Workflow, Keeping Your Sanity for the Extra Long Projects

If you’re even reading this right now it’s because you use Hammer editor, and know that is can be a black vortex of your time. Knowing how to work through a project without giving Hammer too much of your time is always a wonderful thing to do. You could be spending that time on having a life in the great outdoors, or making another level in hammer. So with that you are the artist, and that newly created map file is your canvas. Lets turn it into something wonderful.

Planning Stage

Planning your level can do wonders for the time spend creating the level. It also helps reduce the amount of reworks that do you because you think that you can do better. When planning your level out you should know your skill cap, and the limitations of hammer along with the engine. Planning to do something that you can’t, or something that is impossible for the engine is a waste of time and will make you feel like crap for wasting your time on it. So keep it simple, working around you. If you see something in another level and want to emulate it for your own level but don’t know how find out. You can either contact the creator of that level and ask for help on the situation, or decompile the level. Now when I say decompile the level, I’m saying this as a learning purpose only. If you go and just copy what they have made you’re not learning anything, you’re just hurting yourself.

Once you have the idea in your head you might want to get it onto paper, or some other form or medium that you can store it in. You don’t need to be Van Gogh with your design when putting it onto paper. You are most likely the only one that is going to be looking at in anyways. Here are some of the doodles that my Lab Rat team have come up with for designs.

As you can see they are by no mean pretty, but they get the point across. You mainly want it to prevent you from forgetting what you wanted to do. You might find that you will constantly get ideas for your level just going about your daily life. I get a lot of mine right before bed and I keep a notebook near by so I can jot them down before I go to bed. If you’re not the kind of person to doodle, then you can always just make a rough outline in hammer with the dev textures. It takes no more than 20 minutes to lay out an entire level.

Start Mapping

You now have your layout, and you’re most likely feeling like you’ve gotten a lot done. This is in fact not that case! I don’t want to burst your bubble but the longest part has just begun. You now start building your level in hammer, for all of the screenshots in this I’ll be using one level that I’ve made. (a level for Portal 2 Lab Rat.)

You might not even know where to begin your level, believe me we have all been there. I’m also sure we all start at the same spot, the player spawn. It’s best to make your level the same way you play it, start to finish.

You can now build your level in two different ways:

  • You can build in passes. When building in passes you doing things 1 pass at a time.
    1. You do the brush pass. You lay out the entire level in brush. Place no models, and do no detail work at all.
    2. Functionality pass. You then go back and all of the functionality parts of the level. This is stuff like doors, entity systems, anything that the player HAS to do to complete the level.
    3. Detail pass. You go back, and add full detail to your level. In this you would place all of your models, lights, sounds, and everything else that your level is missing.
    4. Test pass. You test the entire level, then go back and fix what you found to be broken.
  • You can build in areas/steps. When building like this you build like the pass method, but you do it one room at a time. You fully complete one room, before moving onto another room. You are basically breaking down the map into little maps, and finishing them faster.
I like the areas/steps method better, it makes me feel like I’ve done something in my level and have not just laid out brushes. While both of the methods work it all comes down to how you like to build your levels. I cannot spend hours on end doing brushes, then hours on end doing detail, it just drives me crazy. Doing one area at a time lets me bounce area in the areas, and finish one thing before moving on.

Work Flow, and Time Management

Your time is precious, and you need to spend it wisely. This can be done by having good work flow, basically a lot of little things to help speed up the total process. One of the biggest things that you can do to speed up mapping is to use the mouse as little as you can. No matter how fast you may think you are with it the keyboard is always faster. So use hot keys, the time you spend by pressing the hot key is less then moving the mouse from where ever it to to Edit->Map properties. Here is a complete list of Hammer’s hot keys to help you speed up the process. Hammer Editor Hot Keys. Once you’ve started using hot keys you should find that the whole process is a little faster, does it not feel good to be a keyboard warrior?

The grid is a wonderful thing to help stay organized, and hammer enjoys when things are on it as well. Without getting to much into optimization the grid helps you stay sane, because there won’t be a ton of lines scattered all over the place.

Sense vision is so important to us we need to help keep it clear. While starting the level off you can see everything fine because there is not much there yet. But give it time, soon your level will be filled by your masterfully placed brushes, and props. Yet when the grid gets too cluttered you’ll need to clean it up, and you’ll use vis groups for this. They allow you hid certain things from your level so you have better vision of what you’re working on. You can also toggle prop, and displacement from bring drawn to just the bounding box. To toggle this just click the “Toggle Models in 2D” button, it’s located 2 icons to the right of “Run map” and looks like this:

Here is what it looks like when you have them enabled, and disabled.

 

 

You can see that on the left there is so much more going on, and it’s hard for me to see what I’m doing. Where as on the right I can see exactly what I’m doing. You can see my vis group’s filter control to the left. In it I have my map organized into the areas of my map, I can easily toggle what I do and don’t want to see. If you want to know how to create vis groups you can watch: Tutorial 39, Vis grouping.

We all like to test what we’ve just made, and sometimes we are doing a lot of testing because of the guess work we are doing. But with every test you are required to compile your level. Depending on how good your computer is, and how well the level is optimized the compile can take anywhere from 5 minutes, to 3 hours. Knowing what compile settings are needed to test your level are very important. If you’re just testing entities you don’t need VVIS or VRAD, so you can just compile with VBSP. The level will be laggy, but you will only spend 15 seconds compiling, compared to the longer compile time including lighting and vis data.

But testing lighting information can be a little longer, because VRAD needs to fire rays so it knows how to light your level. You can test certain level of you area by using the cordon tool.  When you use the cordon tool it hides everything outside of the cordon box, and seals the map from leaks. This will allows you to test lighting much faster, because you’re only compile a room, as opposed to compiling the entire level to just test said room.

 Finalizing

You are now moving on to last bend of the mapping process, finalizing. At the end of this  is a check list on how to finish up a level, but I’ll write out some of my thoughts on the process, but the check list is king!

There are a few things that you need to do, make sure you have cubemaps added to your level. The cubemaps are what the engine use for cheap reflections. Add them, then buildcubemaps. Then you need to make sure the FPS is acceptable in your level, this means optimizing your level, not one likes it but it has to be done. If you don’t know how to do this watch: Tutorial 21, Optimization. Then compile your level on normal settings, you don’t want to do a final compile here because you’re just doing a test run here. (If you want to test with the advanced compile settings you can.)

Next run though your level, find any and all bugs that you can and fix them. Next you’ll want to send your level off to some testers, don’t send it to everyone on your friends list. Once you’ve sent it to your tester(s) make sure they know it’s a beta, and that they are to find any problems they can. Listen to them, I’ve made this mistake before thinking that I knew what was best. Not everyone thinks like you, you may have made things hard to find and will need to place some hints to nudge the player along in the right direction.

After you’ve fixed all of the problems that your testers have found fix them, then run though one more time and see if you have made any more problems by fixing the previous bugs. If you’re all good then pack the level (if needed, you’ll only need to do this if you have custom content in the level.) After the packing you are all done!

 

I hope that this is what you guys meant, and wanted by a “work flow” tutorial, if you feel I’ve missed anything let me know and I’ll try to fix it when I can. Thanks, and happy mapping!!! <3

 

Finalizing a level check list

  1. Add env_cubemaps to your level.
  2. Optimize your level. (If you don’t know how, watch THIS)
  3. Do a rough compile of the level. Compile with VRAD and VVIS set to normal.
    1. If compile takes long on VVIS, Go to your level and make sure you have func_detailed the correct things. (If you don’t know what “func_detail” is, watch THIS)
  4. Build cube maps, type: “Buildcubemaps” in console for this.
  5. Play through your level for about an hour or more. Look for game play and visual flaws, then correct them. If none Start back at #3.
  6. Get (a) friend(s) to play your level, have him/her look for game play and visual flaws, then correct them. If none Start back at #3.
  7. If your map has passed the testing phases you can move on to the Final Compile
    1. Settings up a final compile takes a few steps, first click “run map”
    2. Click “Expert”
    3. Click “Edit”
    4. Select Default, and Click “Copy”
    5. Name it: Final Compile (Slow)
    6. Select “Final Compile (Slow)” from the drop down.
    7. Under “$light_exe” add the following to the parameters, before “-game”: -final -textureshadows -hdr -StaticPropLighting -StaticPropPolys
    8. Add a new command, put: $light_exe in the command area.
    9. Add the following to the newly created commands parameters: -final -textureshadows -ldr -StaticPropLighting -StaticPropPolys -game $gamedir $path\$file
    10. Move the new command to be above the old $light_exe command.
  8. Compile the map under the new compile settings.
  9. Build cube maps again, type: “Buildcubemaps” in console for this.
  10. Toggle HDR modes. (If it’s on, turn it off. if It’s off turn it on)
  11. Build cube maps again under the new HDR settings, type: “Buildcubemaps” in console for this.
  12. Close the game.
  13. Pack all your custom content (if any) into your level using: PakRat, VIDE, MAN, or PackBSP. (PackBSP does the best job)
  14. Remove your: Materials, Models, and Sounds folder from your root directory of your game. (Rename them, move them to desktop. Just make the game create new ones)
  15. Load the packed level, make sure the map packer got all of the custom content into the level. If not, go to step 13 and try a different packer.
  16. If everything is good to go. Release the map.
1
Dec

Hammer hot key list

There are many hotkeys in Hammer that can help you turn the blank map into a wonderful masterpiece in no time. Hammer does give you a list of most of then in various places, but some are completely hidden and have little, to no way to be found. There is currently a hotkey reference on the VDC but I feel that it lacks some definition, so I’m going to put some detail into this.

File Operations

Hot KeyCommandMore Info
CTRL+OOpen FileOpens a previously saved map file.
CTRL+SSave fileSaves the currently open, and selected map file. Not a bad idea to train yourself to press this every 2 minutes.
ALT+BExport AgainExport the currently open map file.
F9Run MapCompiles the map to a BSP file to be played by the engine.
CTRL+SHIFT+SOpen Sound BrowserOpens Hammer's sound browser.
CTRL+NNew FileOpens a new, blank map file.

Clipboard

Hot KeyCommandDescription
CTRL+CCopyAdds selected object to clipboard
CTRL+XCutAdds selected object to clipboard, while removing the source object.
CTRL+VPastePastes the current object in clipboard to world.
CTRL+SHIFT+VPaste SpecialOpens the paste special window.

Tools

Hot KeyCommandDescription
SHIFT+SSelection ToolMakes the selection tool active, with it you can select various map elements.
SHIFT+GMagnify ToolMakes the Magnify Tool active, with it you can zoom the views in hammer.
SHIFT+CCamera ToolMakes the Camera Tool, active. You can use it to fly through your level in the 3D view.
SHIFT+EEntity ToolSelects the entity tool, with it you can place new entities in your level.
SHIFT+BBlock ToolSelects the block tool, with it you can make new brushes in then 2D views.
SHIFT+AFace Edit SheetSelects the Face Edit Sheet. With it you can change textures of single faces, or turn brushes into displacements.
SHIFT+TApply Current TextureApplies the currently selected texture to the selected brush(es)
SHIFT+DDecal ToolSelects decal tool. You can then apply the selected texture as decals.
SHIFT+OOverlay ToolSelects overlay tool. You can then apply the selected texture as overlays.
SHIFT+XClipping ToolSelects the clipping tool, you can cut brushes with it. Press the hot key again to change the clipping setting.
SHIFT+VVertex ToolMakes the vertex tool active, you can edit brush vertex points once selected.

Grid Operations

Hot KeyCommandDescription
[Decrease Grid sizeDecrease the grid size by a power of 2
]Increase Grid sizeIncrease the grid size by a power of 2
SHIFT+RToggle Viewport GridEnable/disable the viewport's grid.
SHIFT+WToggle Grid SnapEnable/disable the snap to grid feature of Hammer.
PToggle 3D Brush GridEnable/disable the grid on selected brushes in the 3D view.
CTRL+BSnap selected to gridSnap the selected object(s) to the grid, based on the selection's bounding box.
CTRL+SHIFT+BSnap selected to gridSnap the selected object(s) to the grid, individually.

Grouping

Hot KeyCommandDescription
CTRL+GGroupGroup the selected objects.
CTRL+UUngroupUngroup the selected objects.
CTRL+RCreate prefabCreates a prefab with the currently selected object(s)
CTRL+WToggle group selectionsToggle Ignore Groups mode to bypass entity and group selection.
CTRL+TMove selected to entityMakes the selected brush(es) a entity.
CTRL+SHIFT+WMove selected to worldRemoves all entity status from the selected brush(es)

Viewports

Hot keyCommandDescription
CTRL+AAuto size view portsRe-sizes all 4 view ports to be the same size.
SHIFT+ZMaximize/Restore view portFull screens the active view port, or restores the status before the full screen.
Arrow KeysPan view/Nudge selectedPan view, or nudge the selected object(s).
SHIFT+Arrow KeysClone selected+nudgeClose the selected object(s), whilst nudging them.
CTRL+IFlip VerticallyFlip the selected object(s) vertically.
CTRL+LFlip HorizontallyFlip the selected object(s) Horizontally.
F2Switch to 2D top view (X/Y)
F3Switch to 2D Side view (X/Z)
F4Switch to 2D Front view (Y/Z)
F5Switch to 3D Textured view
SHIFT+F5Switch to 3D Shaded textured view
TABCycle view portsCycles active viewport view.

2D Views

Hot KeyCommandDescription
NumPad +/-Zoom in/outZooms in and out the active 2D view. You can hold control to sync all 2D views.
Mouse WheelSee: NumPad +/-See: NumPad +/-
1-9Zoom presets
Spacebar+M1+DragDrags the active view aroundYou can use this to move the view in a tablet computer style.`
ALT (Hold)Disable Snap to gridCompletely disables snap to grid. This is not recommended for brushes, as it messes with VVIS and VRAD.
CTRL+ECenter 2D viewsCenters the 2D views on the selected object(s).

3D view

Hot KeyCommandDescription
Spacebar (Hold)Various movements optionsHold M1, allows you to rotate the angle of the view.
Hold M2, allows you to move the position of the camera, without changing the angle.
Hold M1+M2, Move the camera without changing the angle.
Spacebar+SHIFTVarious movements optionsHold M1, same as above.
Hold M2, move forward and backwards, as well as pan side to side.
Arrow keysAimChange aim
Mouse WheelZoomZoom
W,A,S,DMoveMove in 3D space
ZToggle Mouse lookLocks the mouse to the 3D view as a look method.
PToggle 3D gridSee Grid settings
ODisplay FPSDisplay FPS, rather useless.
IToggle bounding boxesToggles bounding boxes for all visible object(s), annoying to me.
X or CTRL+F9Enables editing in 3D viewAllows you to move, re-size, and rotate objects in the 3D view.
1Decrease clipping planeDecreases the draw distance of hammer, nice for slower machines.
2Increases clipping planeIncreases the draw distance, do you like lag?
CTRL+SHIFT+ECenter 3D view on selection<---
Hot KeyCommandDescription
Mouse 1Selects object, or cycles editing modesSelects an un-selected object, or cycles through: re-size, rotate, and skew.
Mouse 1 (Holding)Cycle though objects under cursorCycles through all objects under the cursor, useful for getting those hard to reach items. (3D view only)
Mouse 1 (Click and Drag)Makes a selection box/selects objectsWill make a selection box, or selects objects under the box. Depending on your settings.
CTRL (Hold)Multi selectUsed to select multiple object(s)
SHIFT (Click and drag)CloneClones the selected object to a new position. You'll notice that I do this a lot in my tutorials.
SHIFT (Hold)Unconstrained 15 degree rotationIf you have the 15 degree rotation lock on (under 2d views in options) this will allow you to turn it off whilst you're holding it.
SHIFT+Q/ESCClear selectionDeselects all selected objects. Pleases my OCD.
PGUPPrevious selection in hit listWill cycle through all objects that could be selected if no other object was in the way.
PGDNNext selection in hit listWill cycle through all objects that could be selected if no other object was in the way.
CTRL+TMove selected to entityMakes the selected brush(es) a entity.
CTRL+SHIFT+WMove selected to worldRemoves all entity status from the selected brush(es)
ALT+ENTERObject propertiesOpen the object properties for the select object(s)

Camera Tool

Hot KeyCommandDescription
SHIFT (Hold)+M1 (Drag)Creates new cameraCreates a new camera position to be used later.
PGUPCycle previous camera position<---
PGDNCycle next camera position<---
DeleteDeletes current camera position<---
CTRL (Hold)+Drag a cameraMove a camera, and it's point of interest together<---
Mouse WheelMove active cameraMove active camera forward or backwards.

Block tool

Hot KeyCommandDescription
M1+DragCreates a new block outline<---
EnterCreates a blockCreates a block from a previously made block outline.
ESCCancel block creation<---
ALT+SHIFT+CInsert original prefab<---

Entity Tool

Hot KeyCommandDescription
M1Create entityCreates the currently selected entity in the 3D view. If used in the 2D view you get to create the entity like a brush.
DeleteRemoves last made entity

Face edit sheet

Hot KeyCommandDescription
CTRL (Hold)Select multiple faces<---
SHIFT (Hold)Select all faces on brushSelects all faces on the desired brush.
M2Apply materialApplies the currently selected mater to the clicked face.
Shift+M2Apply material to all facesApplies the selected material to all faces on the clicked brush.
ALT+M2Apply materials with wrappingApplies the currently selected material to the clicked face, whilst using the previously selected material to wrap and align the new texture.
ALT+SHIFT+M2Apply material to all faces with wrappingSee above, but will all faces on the brush

Displacement editing sheet

Hot KeyCommandDescription
CTRL+M1Select multiple faces<---
SHIFT (Hold)Select all faces on brush<---
SHIFT (Hold)+CTRL (Hold)Add all un-selected faces to selection<---

Displacement editing tool, paint geometry

Hot KeyCommandDescription
M1Paints geometryApplies the currently selected settings to the displacement.
M2Paints geometryApplies the currently selected settings to the displacement, but inverses it.
CTRL+M1Select/Deselect face
SHIFT+CTRL+M1Select all un-selected faces
ALT+M1Change editing sphere sizeIncrease/Decrease the painting sphere size.
SHIFTDrags vertex in lineMoves a vertex point in the direction of the currently selected axis

Displacement editing tool, paint alpha

Hot KeyCommandDescription
M1Applies 2nd texturePaints the displacement with the textures $basetexture2
M2Applies first texturePaints the displacement with the textures $basetexture
CTRL+M1Select multiple faces
SHIFT+CTRLSelect all un-selected faces

Overlay tool

Hot KeyCommandDescription
SHIFT+OSelects/Changes overlay modeWill select the overlay tool, and if pressed again will change to overlay vertex mode.
CTRL (Hold)Selects multiple overylays
SHIFT (Hold)Makes over lay vertex points snap to each otherMakes overlay's vertex point snap, so you can create a seamless overlay path with them.

Clipping tool

Hot KeyCommand Description
M1Create new clipping planeMakes a new plane to clip the selected brush(es) across.
SHIFT (Hold)+M1Override old plane with new oneMakes a new clipping plane, while override, and removing the old one.
ENTERClipPreform the clip action
CTRL (Hold)+M1Move both clipping handlesMoves both clipping handles at the same time.
OToggles clip measurementsEnables/disables the clipping measurements in the 2D view while clipping a brush.
SHIFT+XCycle clipping modesCycle clipping modes from Cut+Delete to Split.

Vertex edit tool

Hot KeysCommandDescription
M1Select vertex or edges
CTRL (Hold)+M1Add, or remove vertex points from selection
CTRL+FSplit facesSplits the faces on a brush, so you can make the brush more complex. (You must have two points currently selected for this to work)
ALT+EOpens scaling boxSummons the vertex scaling box so you can scale your vertex points from a point.
ENTERPreform vertex scale
SHIFT+VCycle vertex display modes

Miscellaneous

Hot KeyCommandDescription
CTRL+ZUndoYour best friend, treat him nice!
CTRL+YRedoRedo what you just undid. Silly.
SHIFT+LToggle Texture lockEnables/disables the texture lock when moving textures.
CTRL+MTransformOpens the transform box so you can scale, rotate, and move any selected object(s) by a certain amount.
ALT+PCheck for problemsOpens the check for problems box.
ESCClear/cancelCancels a various amount of tools/actions.
CTRL+SHIFT+GOpen find brush number window
CTRL+SHIFT+FOpen fine entities window
CTRL+SHIFT+ROpen replace entities window
F1HelpOpens the VDC.
CTRL+RCreates prefab from selection
HHides object from viewHides the objects from view, and does not compile them until un-hidden
UUn-hide hidden objectsBrings all hidden objects back into view.
27
Nov

New tutorials coming soon!

Hey everyone, I’ve finally cleaned out my email box of all your tutorial requests and have added them to a list. I plan to make one from this list each week, maybe two a week if I’m feeling up to it. I’ll make a new poll every week where you can vote for the tutorial that you want me to make. You can find the poll on the right side of the site.

16
Nov

Hammer Tutorial #94 “Info_Lighting/Lighting Origin”

16
Nov

Hammer Tutorial #93 “Fog”