Speed Mapping

by | December 29th, 2009 | Tutorials | 9 Comments »

There are a few things you can do to greatly improve the speed at which you map. I’ll be going through a few of these things, point by point, but you must use them in practice in order to get faster!

  1. Plan while not at hammer. Idle time spend at your keyboard adds up; know what you want to do before you sit down. All your time in hammer should be spent at maximum speed.
  2. Compile very infrequently. These take too much of your time that you could otherwise be spending working. Complete your daily task sheet and compile at the end of the day; take note of issues ingame and prepare to fix those tomorrow.
  3. Cordon compiles: Don’t lazily seal your map; do it methodically and strongly according to optimization practices. Until then, use the cordon method to test your compiles.
  4. Use your keyboard shortcuts wisely and swiftly! Proper hammer hand position is not on ASDF but on SHIFT Z X C V. Use your X finger to shift up to S. You should not be wasting time pressing buttons with the mouse, when you can do it in microseconds with shortcuts.
  • Shift: When you grab a brush, hold shift and drag it to duplicate the brush. Don’t bother making a new brush, this wastes your time! Grab the nearest, closest shaped brush and duplicate it into place
  • Shift+S: In a tool mode, but want to go back to selection? Shift+S hops you into the selection mode. CTRL Q releases your current selection.
  • Shift+X: Have a brush you need to split? Shift+X brings up the cut tool. Press again to cycle through modes.
  • Shift+V: Vertex editing; this should be your #1 used tool. Press again to cycle through modes.
  • CTRL C: Copy, duh! But use it with right click -> Paste Special to duplicate large selections onto the original’s position.
  • [ and ]: Use these to quickly alter grid size.
  • CTRL B: Snap to grid!
  • SHIFT A: Bring up the texture applicator.
  • ALT ENTER: Brings up entity window.
  • SHIFT O: Overlays
  • CTRL+T ties to entity, usually func_detail. CTRL W will bring it back to world.
  • Shift when rotating takes you off 15 degree increments for fine tuning.
  • CTRL+M allows you to scale selections, rotate and more.

5. Set up your displacements properly. A little vertex manipulation here will save you time down the road.
6. Paint displacements face normal. Face normal is by default on the Z axis; alt+right click on a face or displacement vertex to shift the plane of displacement alteration. This will vastly speed up your displacement painting.
7. Use viewgroups wisely. Turn off tool textures whenever you’re not working with them; likewise brush ents can often get in the way. Remove everything but world brushes when optimizing and func_detailing.
8. When working with symmetrical maps, center an enormous skip brush around the center of your map; you can then duplicate pieces of one side and select the brush to rotate them cleanly to the correspondent area on the other half of the map. CTRL L flips horizontally for bilaterally symmetric maps.
9. Make use of your fellow mappers’ tools! These can eliminate painful processes that take too long but have to be often done. Examples:

Full List of Hammer Shortcuts

Mapping for a Competitive Audience

by | December 26th, 2009 | Articles | 4 Comments »

Competitive players can seem fickle and picky and sometimes downright rude, but there are also lots of great communities playing the 6v6 format in tf2 and you’re sure to meet a lot of great guys while mapping for them. There are several things you need to do and several things to avoid when mapping for competitive players as opposed to casual players; I will run through them briefly and introduce you to the game type in short.


The 6v6 metagame is based around two teams of, well, 6 players; there is a CL1 (class limit 1) on medics and demos and CL2 on every other class. In this smaller format, many classes do better than they would in the larger settings pubs provide; for this reason, the typical setup is 2 soldiers, 2 scouts, 1 medic and 1 demo. The medic is required for a team to compete, and the metagame revolves heavily around protecting the medic, acquiring ubers and using them tactfully to push forward. Typically when classes are switched out, the roles are “2 heavy classes” “2 light classes” and then the medic and demo slot; so you might see a rare heavy switched in for a soldier, or a sniper or spy for scout; the sniper is the most common substitution, as he can get picks on the medic and deny ubers in that fashion. Note that engineers are used very rarely, and only in defensive situations: without a full twelve player team, the sentries go down very fast to skilled demomen and soldiers, not to mention the ubers.


There are, right now, mainly two game modes being played: the 5 cp ‘push’ maps like granary, badlands or my Yukon, and the attack/defense game mode like gravelpit. In the push maps, it’s simply first to 4 or 5, depending; some leagues have halftimes nowadays. In a/d maps, tournament mode has a stopwatch setting: each side takes turns defending and attacking, and the goal is to beat the other team’s point total, or if tied, their time; so in gravelpit, if one team gets 2 points and the other gets all 3, they win, but if one team gets 3 points and so does the other, but one team does it in 9 minutes and the other in 8, the one with the lower time will win.

As a result of this mechanic, both teams can win a map and a winner will still emerge: for this reason it is better for an a/d map to be easy to win rather than hard; this is one of the reasons gravelpit is the only popular a/d map in the competitive scene. 6v6 matches need to play fast and aggressive, and things like solid sentry positions, excessively long spawn times or capture times, poor ammo/health placement and long walk times can all slow a map down. If a map is too hard to ‘win’ in the sense of capturing all the points as attackers, the match will run on and on with little to no back-and-forth that makes a game exciting.

This is in direct contrast to 5cp maps, where a match can be really long and still be exciting because points can be recaptured. However, you must  carefully balance point vs point in all 3 situations (assaulting mid at the beginning, mid vs 4th, 4th vs 5th ) so that the better team will always win in the given situation.

DOs and DON’Ts

Here are some common pitfalls that make maps undesirable to 6v6 players:

  1. Insta-death and other environmental hazards. The joy of fighting in tf2, as opposed to CS or MW, is that a battle is decided by DM skill rather than ‘who sees who first’; insta-death regions are very polar in the sense that once you hit one, you’re done, no more fight involved. Suggestion: Remove the area, fence it off, allow a way out and make it damage very slowly; ignite the player on fire (players know how to deal with this) or some other punishment that isn’t so harsh. In 6v6, often the loss of height advantage will be enough of a punishment!
  2. Poor clipping. CLIP EVERYTHING! Nothing frustrates a top tier player more than backing into a beam and getting screwed as a result. Run through your map hugging its sides, ensuring every transition is smooth. Take notes and correct in Hammer.
  3. Slow doors/ other moving parts. It’s terribly frustrating having to rely on the speed of an external map piece rather than your own movement skills. Make sure your doors open at the right time of approach and speedily at that.
  4. Low skyboxes. Movement skills (rocket, sticky and double jumps) are very important in 6v6 gameplay as they speed up the game and promote aggressive play. Make sure your skybox ceilings are huuuuge so that players don’t run into them. This is frustrating as hell, and easyyyyyy to fix!
  5. Spawn time disjoints. Spawns should be from 5-10 units in hammer; anything else is too damn fast or slow. Remember average spawn time is 1.5* whatever you set it in hammer; the spawn range is from the set unit in seconds to 2* that unit so 10 hammer seconds means spawn times are from 10-20s.
  6. Misleading areas. If an area looks reachable and you clip it off, this can be horribly annoying and make the decision to jump to it a costly one. Make sure your ledges look clearly out of bounds, or if the playerclipped area is low, maybe it’d be better to simply allow gameplay there.
  7. Gimmicky/confusing mechanics. Simple, don’t make your map’s gameplay too complex. If you want easy penetration into the scene, tried and true is best.
  8. OPTIMIZE! Check out my other guide here on nodraw. For some reason many 6v6 players have really shitty computers, nearly all of them run FPS configs to get very high framerates , so make sure it’s well optimized!
  9. File size, tend towards low.
  10. Iterate rarely and largely. Your playtesters don’t want to be trying the same shit over and over again, constantly downloading new files. Iterate slowly and powerfully with plenty of positive changes in each version.
  11. Put your resup cabinets far back! If these are exploitable it really slows down gameplay.

Here are some suggestions I’d have you do on your competitive map:

  1. Start playing with your audience. To make Yukon I shoved myself into the scene and played as often as I could in pugs and watched scrims, recaps, read articles etc etc (I still do watch and I came away with a lasting interest in the scene). You have to make friends with the players; tf2, unlike some games, is a rather close knit competitive scene and it really helps to learn the big names and watch as many games as you can. Do all this before you ever set your hand down in hammer to make a competitive map.
  2. Never pester. No one likes being bugged! Just try to get your map tested when people have time.
  3. Don’t get pissed off. People are usually not open to new maps, although this is slowly changing. Remember they need time to get accustomed to your map before they’ll like it. Unlike at tf2maps you won’t always be getting constructive criticism.
  4. Don’t be surprised if you’re spectating more than playing. Remember you’re a guest in most situations.
  5. Build cubemaps, no one wants to see purple, even in an alpha.
  6. Take hints from popular maps. There’s a reason why blands’ spire is so fun to play on, so learn it and apply it. However, make it your own! There are several maps being played that are too close to already popular maps to be fun in a different respect.
  7. Scale is the most important aspect of mapping. Snipers can rape at the 6v6 level, and longer sightlines promote spammy gameplay. Determine this early.

Hope it helps- at some point I may expand this article with suggestions/comments.

Optimization in Source: A Practical Demonstration

by | December 13th, 2009 | Tutorials | 9 Comments »

Optimization is one of the least understood parts of mapping in source; there is a lot of hearsay on the matter and generally the topic can appear overwhelming to new mappers. Today we’re going to discuss how optimization in source works, not from a theoretical approach, but from an example-by-example method that will hopefully bring us around to understanding the underlying theory. When implemented correctly, good optimization can be more beautiful than the aesthetics of a map itself.

This tutorial assumes you have an intermediate understanding of using hammer and the terminology used for its processes.

Part I: Visibility in Source

For this exercise we will be considering the source game TF2, though these techniques will apply to source in general. Our players will consist of a brick wall, an engineer representing the player, and a sentry representing the high-polygon props that end up creating framerate loss on our players’ end. Our goal today will be to instruct the engine not to draw the sentry when it is indeed hidden by the brick wall.


Read more…

A Look at Lights

by | December 12th, 2009 | Articles | 4 Comments »

Whilst adding detail to a warehouse in my section of Paving the Way I came to a particular situation that I’d just normaly whack in a light-spot, turn up the values until it lit the area well enough and then move on. Today though I decided to experiment and see what I could actually do with my knowledge of lighting in source. Here are some of the scenarios, I started with just a single light entity.

Just a plain 'light' entity used, placed a few units infront of the glass of the model with 200 brightness and a slightly off-white colour.

Just a plain 'light' entity used, placed a few units infront of the glass of the model with 200 brightness and a slightly off-white colour.

A 'light_spot' entity placed in the same place, same brightness, outer angle: 70, inner angle: 40

A 'light_spot' entity placed in the same place, same brightness, outer angle: 70, inner angle: 40

A 'light' entity with a blockbullets brush just above it simulating the top part of the model that would block light going above it.

A 'light' entity with a blocklight brush just above it simulating the top part of the model that would block light going above it.

The light on its own didn’t produce that bad a result, certainly a lot better than the light_spot did. Even if I’d attempted turning up the light_spot’s brightness I still feel the area above the light model wouldn’t recieve enough light to look realistic. I found that the blocklight actually produced the best result with minimal effort, this whole excercise probably took me only 20 minutes including taking pictures.

You can see in the first image that a little bit of the light is blocked above the lamp by the model but the real point of this post is to illustrate how simple the blocklight toolbrush can be to use, just a quick wedge and a more realistic amount of light is blocked without it being way too dark.

Seamless Textures

by | December 8th, 2009 | Articles | 6 Comments »

I’ve not been doing much recently due to the grind of real life and being distracted by borderlands (which is, by the way, an excellent game only let down by its lack of user created content) But I thought I’d finally find out just how the seamless texture stuff added for the antlion tunnels in episode 2 works.  It’s actually incredibly awesome and will have major applications in HL2 mods going forward provided people actually pay it some attention.

Not a single seam visible

Remember how they managed to have such complex displacements inside these intricate caves and yet not a single visible texture seam?

After a bit of tinkering I was able to make my own, I believe they’ll only work as displacements but I might be wrong. You can do the full range of normal texture options with them as well: specularity maps, normal maps, blend textures etc. are all very possible. I whipped up my own texture to show clearly how it worked, here is the texture side by side with the .vmt for it:

I chose a strong horizontal element to see how it blended directions

I chose a strong horizontal element to see how it blended directions

It really is as simple as adding the “$seamless_scale” value into your texture! Be warned though the scale is set per-material instead of in hammer and it doesn’t use the conventional hammer scale, in this case smaller numbers give larger textures. When I thought I’d want to initially try a scale of 1 I found that the entire 1024 pixel texture was tiling every ~5 hammer units. That is, far too often! Making myself as complex a test map as I could be bothered I resorted to subdivide to get smooth displacements, which didn’t let me down too badly.

Here is the geometry I made from inside hammer compared to the same geometry subdivided. Appologies for the orange-ness of it, but you can definitely see seams along the lines od the displacements.

Here is the geometry I made from inside hammer compared to the same geometry subdivided. Apologies for the orange-ness of it, but you can definitely see seams along the lines of the displacements.

When compiled and run in episode 2 here is what it looks like, you can see that it doesn’t make any attempt to keep the texture’s rotation which makes this example not so good. It lends itself well to noisy materials that don’t have a logical orientation (such as the antlion web) since you won’t notice they’re rotated on some walls. You can also see that the scale is different to that in hammer, since the scale you make it in hammer is irrelevant. Most importantly it blends all my seams together so into a nice smooth transition.

No more nasty seams for complex displacements! Huzzar!

No more nasty seams for complex displacements! Huzzar!

Now go see what you can do with this amazing feature!

YM’s introduction

by | November 5th, 2009 | Articles | 2 Comments »

I’m thrilled to be a part of Nodraw.net finally.  I look forward to exploring the potential of a site full of blogging mappers for source, certainly seems like a place to breed creativity!

Who am I? What have I done? What will I be doing?

I’m YM, I map for source games. To date I’ve made around 7 maps for Team fortress 2, attempted a massive project for portal that was sadly scrapped after many months work and more recently venturing back into singple player mods, this time based off Episode 2. You’re likely to see posts about my two currently active TF2 maps, ctf_slate and cp_stark as well as my section of Paving the way (the Ep2 mod I’m part of).

I’m finding mapping for single player is quite entertaining, it’s a good challenge after doing multiplayer where entity work is rather lacking. Areas such as controlling a player’s movement through the level can be much easier than multiplayer but it can also be a lot harder, which is where it gets fun. So far I’ve spent most of my time recreating two puzzles from episode 2 for my own usage. The first being the ‘cable puzzle’, introduced when Gordon and Alyx contact white forest a mere 5 minutes into the episode and used in its full nature again moments before Gordon’s first combat with the hunters. The other being the ‘gear+winch’ mechanism from the base of the elevator deep with in the antlion tunnels, just before the vortigaunt takes Gordon to the nectarium.

Here’s a preview of my section so far:

Hammer preview of Paving the way

Hammer preview of Paving the way

Welcome to Nodraw.net

by | October 4th, 2009 | Uncategorized | 1 Comment »

Me and a few others have been looking for a way to share Source engine level design ideas, philosophy, tutorials, news, and more with the level design community at large. I bought the domain nodraw.net a while ago intending to build a map host, but plans for that fell through, leaving me with the domain but nothing to do. I thought I’d set up a blog and bring on some friends as writers.

And so we stand here today.