1. Forums
  2. Discord
  3. About Mapcore
  4. Patreon Supporters
  • Login
  • Register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • More Options
  1. Mapcore
  2. Discussions
  3. Level Design

Source Engine Optimization roadmap

  • will2k
  • April 22, 2016 at 5:05 PM
  • will2k
    • April 22, 2016 at 5:05 PM
    • #1

    What is this?

    This is a simple roadmap of my optimization papers/articles for any newcomers to Source optimization or for folks who would like to further strengthen their knowledge about the subject. The goal eventually is to produce solid, well optimized maps.

    I keep seeing some simple questions being asked such as “what’s a hint brush and what does it do? Where do I place an areaportal? I also see many confusion and misconceptions about Source optimization on topics such as visleaves and PVS. Many folks contact me saying “hey, I read your paper/article X but I missed/wasn’t aware of your paper Y, Z, U, V…which is an additional reason of having this roadmap in one place for people to use for navigation through the different hoops of Source optimization.

    The roadmap

    Think of this roadmap as a course syllabus depicting the various topics and logical progression of the course, in this case, Source optimization.

    1- Man vs Engine

    This is a comprehensive paper covering the process of optimization in the Source engine and providing a systematic approach to be used for winning your optimization battles.

    This paper should be the first step in your optimization course and it shouldn’t take you more than an hour on a slow evening to finish the read. It is a good idea to keep the Valve developer community wiki open if you need to look up the definitions of any terms that you come across in the paper (to be on the safe side, read the entry related to visibility optimization which contains all the keywords definition like hints, areaportals, etc…).

    2- Optimization Testing in Source Engine

    It’s a technical paper tackling the issue of methodically testing the frame rate and optimization system in the Source engine.

    This should be the second read after Man Vs Engine to get a solid grasp of map performance testing.

    • Practical work: test the average fps using the timedemo technique on a map of yours (or a stock map if you do not have a finished map yet). Practice all the testing console commands that I gave in the paper to become familiar with them.

    3- Demystifying Source Engine Visleaves

    This is an article in which I explain Source visleaves in layman's terms to allow beginners and veterans alike to understand the cornerstone of source optimization.

    After the first 2 papers being more hands-on and practical, this 3rd read in the roadmap is more on the theoretical side to allow one to fully understand the inner workings on Source’s BSP and visleaves systems.

    4- Source Engine PVS - A Closer Look

    This is an in-depth technical article where I delve into more details about the PVS creation and visibility calculation and their implication on optimization in the Source engine.

    This 4th read is a natural follow up to the previous article and will cement your intimate knowledge of Source engine.

    5- Common Misconceptions in Source Engine Optimization

    It’s an article in which I identify common misconceptions in Source engine optimization process to help demystify some optimization “myths” and bust them once and for all, thus allowing designers to avoid the costly pitfalls that could hinder their maps’ optimization setup.

    This 5th step in the roadmap should come as an easy read once you understood the previous 2 steps (visleaves and PVS)

    6- Hints about Hints - Practical guide on hint brushes placement

    This is a technical article in which I showcase how I think about and approach hints placement in Source engine and how I systematically proceed with hint brushes with practical examples.

    With the theoretical side taken care of in the 3 previous steps, it’s now time to dive into the technicalities of using hint brushes properly and efficiently, and this article will amply show that.

    • Practical work: make a small test map where you can test the different hinting techniques that I showcased in the article. Make a version with hints and one without and test in-game using mat_leafvis and mat_wireframe console commands to see hints live in action.

    7- Practical guide on areaportals placement

    It’s a technical article that deals with the systematic placement of areaportals in the Source optimization process. This is the 2nd article in the "practical placement guide" series.

    As with the previous step, this one dives deeply into proper areaportal placement with solid examples.

    • Practical work: make a small test map where you can test the different areaportals techniques/locations that I showcased in the article. Make a version with areaportals and one without and test in-game using r_drawportals, mat_leafvis, and mat_wireframe console commands to see areaportals live in action.

    8- Practical guide on occluders placement

    It’s a technical article that tackles the systematic placement of occluders in the Source optimization process. This is the 3rd and final article in the "practical placement guide" series.

    Occluders have always been a grey area and a big question mark for a lot of designers, and this article will clearly showcase how to practically proceed with them in your map, if needed.

    • Practical work: make a small test map where you can test the different occluders techniques/locations that I showcased in the article. Make a version with occluders and one without and test in-game using r_visocclusion, r_occlusion, and mat_wireframe console commands to see occluders live in action.

    9- Comparative fps study in Source Engine Optimization System

    This is an in-depth article where I showcase the clear difference between having a solid optimization system and not having one in a Source engine map. The article will have plenty of numbers, for a complete comparative study that shows the frame rate variation with and without the optimization system in place.

    If you have read and followed this roadmap closely, then you are now ready to witness and understand the importance of a good optimization system and the consequences of not having an effective one on the overall frame rate.

    • Practical work: In one of your maps, uncheck the visgroups of hints/areaportals/occluders in Hammer and save it under a different name. Compile it on final settings then compare the fps with the original version that had all the visgroups enabled to see the difference.

    10- Source FPS Cost of Cheap and Expensive Assets

    It’s a short technical article that compares the frame rate cost of cheap vs. expensive assets in Source engine optimization.

    In the same spirit of the previous step, this one shines the spotlight on the cost of expensive assets so one doesn’t go wild while using them in their map, at the risk of considerably affecting frame rate.

    11- Displacement Vs. Func_detail - A comparative fps study

    It’s a short technical article that aims at comparing the frame rate of func_detail vs. displacement in the context of the Source engine and the repercussion on their usage in maps.

    12- Optimizing An Open Map in Source Engine

    This is a technical article that showcases how to tackle optimizing open maps in Source engine.


    Conclusion

    The roadmap presented above should cover “optimization 101” through “501” courses and cater for a broad range of Source engine users. There are no more reasons for one to feel confused and “not sure where to start/look” when it comes to Source optimization.

    If after reading and experimenting with all the above you still have some questions about optimization, then feel free to post here and I’ll try my best to help.

    Once you finish all the reading with all practical work, please pass by my office so I can schedule your final exams.

    Happy reading :)

  • JSadones
    • May 14, 2016 at 6:10 PM
    • #2

    Just an FYI : The mediafire link doesn't work anymore and the Bananalink is 404 (for Man vs engine).

  • will2k
    • May 15, 2016 at 4:09 PM
    • #3
    Quote from JSadones

    21 hours ago, JSadones said: Just an FYI : The mediafire link doesn't work anymore and the Bananalink is 404 (for Man vs engine).

    Thanks for the heads up.

    I checked it out and it seems that Gamebanana has recently drastically changed/messed up the markup language used as well as the layout and general formatting of the site. This has royally screwed up my articles and tutorials formatting as well as changed the hyperlinks in them.

    Instead of nicely formatted articles, they are now one giant unbroken wall of text, and useless new tags have been automatically added to the links (files and some images) altering them and leading to the 404 page you experienced.

    I'll get to correcting these issues as soon as possible (bear in mind there are roughly 20 articles and 6 tutorials to go through)

    In the meantime, you can access Man vs Engine through this direct link to mediafire

    http://www.mediafire.com/download/u5go4…+vs.+Engine.pdf

    Thanks again for notifying me.

  • will2k
    • May 25, 2016 at 2:57 PM
    • #4

    The site owner at GB just rolled out an update that reverted the site to the old markdown language, and corrected the effects of the previous update; this has automatically fixed the formatting and missing links/images in all my articles and tutorials.

    Everything should be running smoothly now; enjoy the read again [Blocked Image: https://migrationtest.mapcore.org/uploads/emoticons/default_mapcore_smilies/emot_smile.gif]

  • will2k
    • October 17, 2016 at 7:13 PM
    • #5

    I have a couple of new optimization articles planned and outlined; one will be titled optimizing an open map in Source engine (started it back in June then shelved it because...real life :))

    Now I just have to make a little time for them, stay tuned.

  • FMPONE
    • October 17, 2016 at 10:05 PM
    • #6
    Quote from will2k

    2 hours ago, will2k said: I have a couple of new optimization articles planned and outlined; one will be titled optimizing an open map in Source engine (started it back in June then shelved it because...real life :))

    Now I just have to make a little time for them, stay tuned.

    Could be really useful for people in our new contest :)

  • will2k
    • October 18, 2016 at 4:17 PM
    • #7
    Quote from FMPONE

    18 hours ago, FMPONE said: Could be really useful for people in our new contest :)

    That's the idea ;)

    @Vaya also poked me couple of weeks ago about resuming and finishing the article, so thanks for that too :D

  • Squad
    • October 18, 2016 at 10:46 PM
    • #8
    Quote from will2k

    6 hours ago, will2k said: That's the idea ;)

    @Vaya also poked me couple of weeks ago about resuming and finishing the article, so thanks for that too :D

    This could come in handy ;)

  • will2k
    • October 19, 2016 at 6:22 PM
    • #9
    Quote from Squad

    19 hours ago, Squad said: This could come in handy ;)

    Writing is underway...at full speed...at night :D

    I have also prepared most of the screenshots and annotated diagrams

  • will2k
    • October 24, 2016 at 9:07 PM
    • #10

    The new article is live and the roadmap above is updated to reflect this addition

    Enjoy the read

  • will2k
    • June 20, 2017 at 7:02 PM
    • #11

    Just realized that I haven't released any new articles in 8 months

    I think I'll push for a new optimization article that deals with practical examples of Source engine optimization (it's like a journey inside my head to see how I deal with optimization situations from my perspective)

  • blackdog
    • June 20, 2017 at 9:27 PM
    • #12

    Is there more that can be written?

  • grapen
    • June 21, 2017 at 9:40 AM
    • #13
    Quote from blackdog

    12 hours ago, blackdog said: Is there more that can be written?

    For sure, there's so much that's still undocumented. I had to ask @will2k about some stuff in a private convo recently, because Google came up empty :)

  • will2k
    • June 21, 2017 at 12:14 PM
    • #14
    Quote from blackdog

    14 hours ago, blackdog said: Is there more that can be written?

    yes

    Quote from grapen

    2 hours ago, grapen said: For sure, there's so much that's still undocumented. I had to ask @will2k about some stuff in a private convo recently, because Google came up empty :)

    anytime :)

    For anyone who wants to ask specific questions about optimization or have good ideas for future optimization articles, feel free to post in this thread

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!

Register Yourself Login
Discord

The Mapcore Discord is our lively IRC channel of the 2000s reborn. Chat about level design, gaming, and more.

Latest Posts

  1. About our archived forums

    Thrik
    June 30, 2026 at 2:12 PM
  2. Mapcore Discord

    mason_fan123
    June 24, 2026 at 8:52 PM
  3. [CS2] Valley

    Serialmapper
    June 22, 2026 at 11:56 AM
  4. Any of the old guard still around? D:

    Thrik
    June 20, 2026 at 10:11 PM
  5. Free Music / SFX Resource - Over 2500 Tracks

    Eric Matyas
    June 18, 2026 at 12:32 PM
  6. Pango [WIP]

    Elowen
    June 11, 2026 at 10:13 AM
  7. [CS2] Dvina

    Jeremy Rivera
    June 11, 2026 at 10:03 AM
  8. Bridges 2.0 by NEXSIDE, MAP SHOWCASE. ( Steam Workshop )

    MrTrane18
    June 1, 2026 at 7:46 PM
  9. Classic Maps Reborn For CS2

    SillySpaceCat
    May 31, 2026 at 10:33 PM
  10. [CS2] Dvina

    Pulbusha
    May 29, 2026 at 5:54 PM
  1. Privacy Policy
  2. Contact
Powered by WoltLab Suite™