Textures
Source uses
materials, which are made up of two files. The
VMT (Valve Material Type) and the
VTF (Valve Texture Format). The VTF is the actual image file, and is compressed using one of a few formats the engine supports (the most commonly-used are DXT1 and DXT5). It's also where mipmaps are kept. The VMT is a text file that specifies how VTFs will be used, and what properties brush faces with the material applied to them will have. For instance, surface properties such as metal and concrete, scale, rotation, scrolling, illumination and reflectivity (in the shiny sense).
As mentioned above, you can make textures in any paint package, and convert them from TGA or PNG files to VTF using an application like
VTFEdit. The dimensions of textures need to be a power of 2 (e.g. 256, 512, 1024). TF2 supports the use of normal maps in its materials to use shading to imitate protrusions and recessions, and specular maps to control which parts of a texture should be reflective and how much. Every VTF needs a VMT in order to see it in Hammer and use it in a map, and VTFs can be referenced by multiple VMTs. This allows you to display your texture using different properties and only need to create a new VMT file for each version, saving disk space.
Sounds
TF2 supports wav files of most bitrates, and special looping wav files. It supports MP3 files at 128kbps, 44.1khz. MP3 should be used in almost all situations. Sound files should be placed inside the tf/sounds directiry (or tf/custom/<whatever>/sounds) and can be addressed directly in Hammer, though MP3 files can't be previewed in Hammer. You can incorporate bunches of sounds into soundscapes and soundscripts. Soundscapes are scripts that control the environmental sound effects one hears in the background of a map. Soundscripts are lists of audio files with pre-set parameters like speed, pitch, volume and attenuation. The use is soundscripts is preferable to directly addressing sound files because it makes sound louder, and lets you tweak them after you compile the map, so you don't need to keep editing them in Hammer and recompiling. Soundscape and soundscript files are text files that can be edited in a text editor.
Audacity is a free audio editing program that will take care of most of the things you'll need to prepare audio files.
Props
Props are better than brushes for objects that have fine detail, shading, and will be used repeatedly. Maps have a maximum number of brush sides (a ceiling that can be hit by maps that have a lot of brushes in them) so using props will reduce the number of brushes. You can make basic props out of brushes using Propper, but in the long-term it's best to learn to use a 3D modelling program such as
Blender. Learning how to use a 3D modelling program can be daunting, but once you start to grasp the basics, they will seem as easy to use as Hammer (assuming you feel that way about Hammer). Of course, finding tutorials to help you grasp the basics can be tricky. Pop into the chat room or ask on the forum for recommendations.
There are three types of props: static (doesn't move, has the best lighting and shading), dynamic (can move, be toggled off or is animated) and physics (tumbles around in a realistic fashion when receiving force). Dynamic and physics props count as networked entities. Servers should typically handle a maximum of 1400 networked entities/edicts. They are made up of players, weapons, cosmetics, projectiles, map logic entities and basically any other thing that moves or changes and needs to be kept track of. The movement of physics props is calculated and tracked by the server and broadcast to clients, so they should be used sparingly otherwise they will cause lag.
Other tools
You may need to pack custom content in to your maps if you intend to distribute them, so that players will see it. We commonly recommend
VIDE for manual and semi-automatic packing, and
CompilePal for fully automatic packing.
When Hammer compiles a map, it locks up and you can't use it. You can use external frontends for compiling maps.
CompilePal is the most-often recommended compile tool. Using an external compiler lets you continue working in Hammer as well as being able to see the compile log in real-time. An older alternative frontend is
VBCT.
You may need to look inside map BSP files, or inside TF2's VPK files to extract and study assets. No mapper should be without
GCFScape.
ABS' Ultimate Mapping Resource Pack is a package of additional and replacement materials, models and entity data files for Hammer. It's well worth installing.
If you find yourself thinking "How do I do this?", and a search doesn't give you the answers you need, come to the Steam chat room and we will give you direct answers.