Garry's Mod Wiki

Mapping Resources

Since this wiki aims to cover garry's mod specific content and mapping is more generic, instead of trying to rewrite already solid information here, I decided to compile a list of useful and relevant information since most of this information has started become lost due to its age.

Some of this information is source from the Quake era, the source engine and thus Garry's mod come from quake so the conceptual information can still be useful for understanding modern day source.

These are links to externals sites. Use Caution.

Mapping Articles

Will2k Collection

Will2k is an older mapper who doesn't appear to be active anymore but has left behind some invaluable documentation on just about everything about the source engine through is journey to optimize the source engine. You can find his own roadmap of what to follow here:

some links link to a gamebanana page which have a pdf download at the bottom.


Binary Space Partitioning (BSP)

Binary Space Partitioning is what the source engine uses to describe information about the level. During a map compile the compiler will recursively subdivide a space into sets of convex shapes (called leaves) which will either be entirely solid or entirely empty and then stores these subdivision's in memory as a tree.

Every plane that splits an area will create 2 new nodes in this tree representing the front and backside of the split area. The backside of this area will be the first node and the front side will be the second. This subdivision is done recursively until every area is solid or empty.

This is most notably important for two areas of the source engine. PVS and collision.

Relevant Resources


Potentially Visible Set (PVS)

As mentioned above, The source engine uses BSP data to calculate its visuality. Each time the area is subdivided into a convex shape this shape is now called a "leaf". Each leaf then has a set of triangles associated with it which will render if that leaf can be seen. This is determined by the "Precomputed Visibility List" for the players current leaf.

During compile times each leaf uses an algorithm to trace what it can see through "portals" (where each of these leaves touch) to other leaf's and then associates them with that leaf into the "Potentially Visible Set". This means that as the player moves from leaf to leaf the engine only needs to worry about rendering what's in the PVS and leave the rest unrendered saving on performance.

Relevant Resources


Optimizing Source Levels

The techniques used for optimizing source maps includes a few different practices. First and foremost there is level layout and design, which should occur before launching hammer. Source is best at rending indoors environments, large open areas where there is limited things blocking visibility in where source really starts showing its age. However that does not mean such levels are impossible, with modern hardware these large open environments can be run well enough now that computers are faster.

Many of the below resources target multiple areas of optimization. Links listed under "layout" for example can include good tips for placing hint brushes as-well.

Relevant Resources: Layout

Relevant Resources: Hint Brushes

Relevant Resources: Area Portals

Relevant Resources: Occluders

Relevant Resources: Visclusters

Relevant Resources: Lighting

Relevant Resources: Optimizations

Resource Banks

This section Directs you to the homepage of other mapping centric communities.

  • Interlopes.net - Links to the tutorials form section of the webpage where still many old useful articles can be found

  • MapCore Level Design Help Files - Mapcore as a whole is a good mapping community, however I wanted to link directly to this post as itself links to MANY very useful mapping articles

  • PHILIPK.NET - Very old website in near pure HTML, Navigate through the images, Still has useful information about the creation of materials and modular sets.

  • Nodraw.net - Tutorials are from 2010 but listed due to having niche articles that arnt covered in other places