We've had a lot of new mappers recently, and I keep seeing the same mistakes over and over again. You need to learn the tools before you make a map. Before you even attempt to start on your great mapping adventure, you need to make 5-10 test maps just to figure out how the tools work.
You need to master the following basics before you even start
making your main design:
- Compiling. Don't go trying to build some masterpiece when you can't even figure out how to compile your map. All you need to start out is a box with an info_player_start.
- Light-emitting surfaces. These provide the easiest and most natural looking way to light your map. You should never
release a map or screenshots without lighting, even if they're previews/beta/whatever. Lighting is essential.
- Finding and fixing leaks (or avoiding them entirely). If you see "*** LEAKED ***" in the compile window, stop everything and go fix it.
- Texture alignment. This is extremely important. Learn to use the surface dialog ("S" key in BSP) to scale and transform textures. Learn how to lock textures (alt-l) to keep textures aligned on things like crates.
- Clipping planes. Map brushes are made up of planes. Learning how to think and edit using planes will not only help you make maps faster, but it will make your maps more efficient. Once you've mastered clipping planes, you've mastered brush editing.
- Clip brushes. These are invisible brushes to help players from getting stuck on lights, posts, and other details. Use them everywhere. Nobody wants to be in the middle of an intense battle, then get caught on something and killed because the mapper was too lazy to put clip brushes in.
- Arghrad's sun lighting. If you're making an outdoor map, this is essential.
- Entity placement. Before you go making a big map, learn how to create team spawn points, flags, bases, etc. Test out the different game modes. There's an outdated entity list here that you can use for reference: http://digitalpaint.planetquake.gamespy.com/v2/docs/ents.html
- Anything else you plan to use in your map. Test things before using them. Compiling small test maps is a lot faster than trying implement things you've never used before in a full-sized map, then waiting for it to compile, finding out it doesn't work, and having to compile the full map again.
- Use a common prefix for your test maps, so you can easily delete them to remove the clutter. I just use _ at the beginning, _testlighting.map, _testplat.map, etc. That way they're all together and I can just select and delete them when I'm done.
- See how other people have done things. The entity data is in plain text at the end of .bsp files. You can open them in wordpad or other text editors. Just search for "worldspawn" and that will bring you to the beginning of the entity data.
- Create map layouts so that there's an average of 2 players per path, with at least 2 paths available to/from any given location.
- r_speeds. Type r_speeds 1 at the console. Try to keep wpoly below 1000. Design your map so that it's detailed, but not too much detail is visible at any one time.