Ads keep us online. Without them, we wouldn't exist. We don't have paywalls or sell mods - we never will. But every month we have large bills and running ads is our only way to cover them. Please consider unblocking us. Thank you from GameBanana <3

Poly reduction - Tips & Tricks 01 - A Tutorial for Counter-Strike 1.6

This tutorial addresses the issue of polygon cutting, a dreaded issue that can greatly decrease the performance of your maps.

### Overview In this series of tutorials I will teach you how to optimize your map to have a smaller polygon count possible, in other words to have the best performance possible in-game. In this tutorial itself I will talk about Polygon cutting which happens when you compile your map, and how this can increase the polygon count in your map by a lot, as well as how to solve this problem, moving your polygon count back to where it should be, increasing the performance in other words. Introduction ============ What separates a good mapper from a bad one is how great of a map he can create - it's true, but a great mapper must also know how to make the map he created have the best performance possible, to allow players playing it to have the best and most lag-free experience possible. That's why I'm creating this tutorial, I'll be teaching you different methods on making your maps as they are have the best performance possible - without optimizing any visuals or objects you may have already or want to create. In this tutorial in particular I will be teaching you about Poly cutting, what it is, how it happens and how to prevent it. ### _What is Poly cutting?_ First of all you should know how the gldsrc (gold-source a.k.a. the thing that runs counter-strike) engine works to understand what I'm talking about, let me show you some examples here: ![](http://img228.imageshack.us/img228/2619/tutimage01.png "") This solid box has six faces, and each face has four edges, therefore each face counts for two polygons. The box is not tied to an entity therefore it counts for twelve world polygons (W-Poly) in-game in total. If I took this box and placed it exactly on top of the floor (which is also a box) like so... ![](http://img3.imageshack.us/img3/3333/tutimage02.png "") ...and then compiled the map, the engine would cut these objects into each other combining all the touching faces together into one larger object like this... ![](http://img263.imageshack.us/img263/3152/tutimage03.png "") The bottom of the crate completely disappears, taking away one face (2 W-Polys). _However_ the floor is sliced into four different faces rather than the one face it previously was, so the top face of the floor goes from 2 W-Polys in total, to a massive 8 W_Polys like in the image. A change of 4-6 Polygons in-game won't make a massive difference, but if this problem is present all over the map then it will make a massive difference in the maps performance. The crate/box has four sides, so it splits the floor into four pieces, however if you placed a cylinder of lets say 12 side faces and then made it touch the floor, the floor would be split a massive 12 times! ![](http://img89.imageshack.us/img89/1451/wpolytutsketch05.jpg "") Multiple objects on the same piece of floor are even worse. This is what might happen if you placed multiple objects on one floor: ![](http://img685.imageshack.us/img685/3276/wpolytutsketch06.jpg "") This splitting doesn't simply happen on floors only, it happens on every single object or solid in your map. If you put a ceiling light in your map with four sides and place it on the ceiling, the ceiling will be split four times, and so on. There are easy ways how to solve this problem however, and I will show them to you now. ### _Solving the problem_ So, how is this solved? There are two methods in doing this, the first is to very simply move objects one unit apart from each other. Its simple, but it will turn this: ![](http://img263.imageshack.us/img263/3152/tutimage03.png "") Into this: ![](http://img3.imageshack.us/img3/3333/tutimage02.png "") A method like this will benefit each mapper massively because if done correctly this can incredibly improve the performance of your maps. Always remember to do it; no matter what the object is. The second method would be to turn these objects into an entity like func-wall. The reason being is because entities and world brushes do not react to each other, they will not cut each other like the brushes do to each other as I stated before. If you have a singular object like a box then tieing it to a func-wall will work just as well as moving it one unit from the ground, however you must keep in mind that just like world brushes cut each other, entity brushes will do so to themselves if touching too. ### _Applying & Combining the two methods_ When learning about the two methods, you must also know how to combine them for an even greater effect. Lets say you have a map with a table on the floor. ![](http://img171.imageshack.us/img171/1153/img10072011100331.png "") the table has four legs and a square surface. Can you think of which method to use on this table to prevent it from cutting any surface? Have a guess now. If you wanted to func-wall the entire table, you would have been wrong because the legs would still split the upper part of the table. Also if you taught to move the entire table up one unit, you would have been wrong because even though the legs aren't touching the floor anymore, they are still touching the upper table surface. the best thing to do in this situation would in fact be to not move anything at all, but instead tie the legs of the table to func-wall alone, leaving the top part non-entity. Neither the floor nor the top part will be split because the legs that would have been doing the splitting are no longer conflicting with the brush floor and brush table due to being entities. Of course there are more ways of solving this problem, these methods would work well too: 1. moving the table legs one unit up and moving the table top one unit up from the table legs. 2. tieing the entire table to an entity but separating the table legs from the table top by one unit. This is what it would look like if the legs would have been touching the table-top. ![](http://img683.imageshack.us/img683/5388/img10072011100338.png "") ### _In-game screenshots of how the method works_ Let me show you the difference these methods can make, I made an example map for you. ![](http://img845.imageshack.us/img845/3175/skalswpolytut01.jpg "") Here is a map of mine, it has some planks on the floor and two crates. If you look carefully then you can see that the two crates are touching the floor as well as one of the walls, and the planks are touching the floor and each other. this means the floor will be split into many peaces, so will the planks and the wall. If you look at the top left corner you can see the total W-Polys. The W_Poly amount is 61. Next I made the same map with everything 1 unit apart from each other. Here it is: ![](http://img833.imageshack.us/img833/2089/skalswpolytut02.jpg "") Now the fps does not change much since my video card is powerful, but you can see the W-Polys get almost halved! If I had a larger room with things on the walls the floor and the ceiling all at once you can imagine the difference this would make! Lets see exactly what happens, here's the map one more time before being fixed: ![](http://img829.imageshack.us/img829/48/skalswpolytut06.jpg "") You can see very well that the floor and the wall is being split very badly by each object... ![](http://img39.imageshack.us/img39/4540/skalswpolytut05.jpg "") ...and here the fixed version. Very nice very clean and all I had to do was move these objects 1 unit apart from each other in hammer. ### _Advantages & Disadvantages of both methods_ now I should probably tell you what's good and whats bad about each method before I end this tutorial. Let me make a list of them right here: 1 unit method: + Easy way to solve face cutting problems. - If viewed from some angles the player can see the one unit gap sometimes. - Keeps the unwanted face of an object, for a box it would keep the bottom face of the box when the map is compiled, however this can be easily solved by Nulling / Beveling unwanted faces. func-wall method: + Does not require for objects to be moved apart by one unit. - Greatly affects the shadow of the object, func-walls do not create shadows as good as normal brushes do. - Cuts other brush entities if touching them. However this can be solved by moving func-walls 1 unit apart from each other :). ### _Overview of everything learned_ So always remember about face cutting when you make your maps, and how it can be prevented by separating objects or by tieing these objects to an entity like func_wall. But also remember that brush entities affect each other just like non-entity brushes do. With this knowledge your maps should start working a lot smoother while looking just as good as they did before. ###### Credits: Massive thanks to Stojke for great illustrations, and thanks to timmycakes for tips on how to improve the tutorial.
1-10 of 16
1
Pages
  • 1
  • 2
Go to page:
  • Glock18 avatar
    Glock18 username pic Joined 8y ago
    Offline
    4,331 points Ranked 2,204th
    29 medals 1 legendary 4 rare
    • Returned 5000 times Medal icon
    • Returned 1000 times Medal icon
    • Reached 50 subscribers Medal icon
    • Submitted 20 Maps Medal icon
    • 6 years a member Medal icon
    • Winter Worlds Mapping Contest Entrant Medal icon
    7y
    Okay makes sense. I'll give it a shot and see what happens! Btw, how did the creator of this tutorial get that gray scale image (the first 2 screenshots)? I know how to make wire frame, but how the plain gray with no texture?
    Need a mapper? PM me!
    URL to post:
  • timmycakes avatar
    timmycakes Joined 13y ago
    Offline
    48,982 points Ranked 91st
    28 medals 2 legendary 5 rare
    • 10 years a member Medal icon
    • Returned 5000 times Medal icon
    • 6 years a member Medal icon
    • Returned 1000 times Medal icon
    • Submitted 20 Maps Medal icon
    • Submitted 15 Mods Medal icon
    7y
    > **Posted by Glock18** > > I'll try out a method first and if I'm stuck, then I'll send you over the .rmf. I feel as if it'd be too much work for you, and I should try it myself :) > > So in your screenshots I see that the polygons haven't been divided. That's what I get as well (I'm using the same technique as you for cliffs), however I've noticed that my floors get divided up a lot more than I would like and I think that's the issue here. > You think it would be optimal to make the base cliff parts E_poly? i mean you can give making them epolys a shot and see how it goes. i usually try not to make "structural" brushes entities since that causes leaks but it may help you get the result you want so it wouldnt hurt to try
    Bananite
    URL to post:
  • Glock18 avatar
    Glock18 username pic Joined 8y ago
    Offline
    4,331 points Ranked 2,204th
    29 medals 1 legendary 4 rare
    • Returned 5000 times Medal icon
    • Returned 1000 times Medal icon
    • Reached 50 subscribers Medal icon
    • Submitted 20 Maps Medal icon
    • 6 years a member Medal icon
    • Winter Worlds Mapping Contest Entrant Medal icon
    7y
    I'll try out a method first and if I'm stuck, then I'll send you over the .rmf. I feel as if it'd be too much work for you, and I should try it myself :) So in your screenshots I see that the polygons haven't been divided. That's what I get as well (I'm using the same technique as you for cliffs), however I've noticed that my floors get divided up a lot more than I would like and I think that's the issue here. You think it would be optimal to make the base cliff parts E_poly?
    Need a mapper? PM me!
    URL to post:
  • timmycakes avatar
    timmycakes Joined 13y ago
    Offline
    48,982 points Ranked 91st
    28 medals 2 legendary 5 rare
    • 10 years a member Medal icon
    • Returned 5000 times Medal icon
    • 6 years a member Medal icon
    • Returned 1000 times Medal icon
    • Submitted 20 Maps Medal icon
    • Submitted 15 Mods Medal icon
    7y
    > **Posted by Glock18** > > Excellent tutorial there mate. I have a question however: > > I'm currently creating map that features a lot of natural terrain, meaning I'm using a large amount of solids to create interesting rock faces and ground. All these solids touch each other, but they're all the same size. So would it be advisable to alternate the solids going w-poly to e-poly. Or will there be no splitting since they're the same size? looking at various maps with rock formations, i am seeing a lot of extra polys made by them touching. i if u want me to take a look at them when u are all finished i might be able to merge as many as possible into single larger brushes and thus eliminate some of the extra polys. ive done it a number of times in maps. here is an example from a map ive made: cave where each triangular face is a separate brush: http://puu.sh/bgZmY/e5556e0ffc.jpg same cave except many of the triangular faces have been merged into larger multi-faced brushes: http://puu.sh/bgZue/926efca4d6.jpg *note* the poly count is only higher in the 2nd SS because func-detail was used for detail brushwork as opposed to func-wall (which is what was used in the first SS) and func-detail brushes are rendered as w-polys. so if you would like me to try, send me a PM and we can work out the details.
    Bananite
    URL to post:
  • Glock18 avatar
    Glock18 username pic Joined 8y ago
    Offline
    4,331 points Ranked 2,204th
    29 medals 1 legendary 4 rare
    • Returned 5000 times Medal icon
    • Returned 1000 times Medal icon
    • Reached 50 subscribers Medal icon
    • Submitted 20 Maps Medal icon
    • 6 years a member Medal icon
    • Winter Worlds Mapping Contest Entrant Medal icon
    7y
    Excellent tutorial there mate. I have a question however: I'm currently creating map that features a lot of natural terrain, meaning I'm using a large amount of solids to create interesting rock faces and ground. All these solids touch each other, but they're all the same size. So would it be advisable to alternate the solids going w-poly to e-poly. Or will there be no splitting since they're the same size?
    Need a mapper? PM me!
    URL to post:
  • sToP ! avatar
    sToP ! Joined 10y ago
    Offline
    5,589 points Ranked 1,621st
    15 medals 2 rare
    • Submitted 20 Maps Medal icon
    • 6 years a member Medal icon
    • Gamefiler of the Month, February 2013 Medal icon
    • Became a Studio Leader Medal icon
    • Reached 1,000 Points Medal icon
    • Reached 2,500 Points Medal icon
    9y
    > **Posted by GuskiS** > Does it make any change if I have many func_wall`s or I make them as one? For example, all crates all over the map have func_wall, but then I make one func_wall for all crates? It's better to let a 1 unit gap between the ground and the crates. All the func_wall/illusionary will be drawn by the engine no matter you are near them or in the opposite part of the map.
    URL to post:
  • FV7VR3 avatar
    FV7VR3 Joined 13y ago
    Offline
    1,075 points Ranked 27,315th
    10 medals 1 legendary 1 rare
    • 10 years a member Medal icon
    • 6 years a member Medal icon
    • Winter Props/Prefabs Contest Entrant Medal icon
    • 1 post awarded Exemplary Feedback Medal icon
    • One month a member Medal icon
    • 6 months a member Medal icon
    10y
    It's hard to find a tutorial like this that has good example images. **Pros:** - Excellent use of example images **Improvements:** - None that I can think of
    URL to post:
  • Skals avatar
    Skals Joined 11y ago
    Offline
    2,759 points Ranked 21,029th
    10y
    > **Posted by GuskiS** > Does it make any change if I have many func_wall`s or I make them as one? For example, all crates all over the map have func_wall, but then I make one func_wall for all crates? It does not make a difference weather you tie one crate to one func_wall, or ten crates to one func_wall, the face cutting will stay the same, although I would not recommend putting many boxes to one func_wall because that can cause bugs in hammer sometimes.
    Another one bites De_Dust.
    URL to post:
  • GuskiS avatar
    GuskiS Joined 14y ago
    Offline
    4,456 points Ranked 2,133rd
    11 medals 1 rare
    • 6 years a member Medal icon
    • Returned 100 times Medal icon
    • Reached 1,000 Points Medal icon
    • Reached 2,500 Points Medal icon
    • 1 post awarded Exemplary Feedback Medal icon
    • One month a member Medal icon
    10y
    Does it make any change if I have many func_wall`s or I make them as one? For example, all crates all over the map have func_wall, but then I make one func_wall for all crates?
    www.heal.lv
    URL to post:
  • Tank Lord avatar
    Tank Lord Joined 11y ago
    Offline
    1,421 points Ranked 24,415th
    11y
    > **Posted by Skals** > > **Posted by Zuliza92** > > > is this works for weapon too??? > > Zuliza92, creating models for counter-strike and creating maps for counter-strike are 2 different things. This tutorial is for counter-strike mapping, it has nothing to do with modeling weapons so no, its not for weapons too. aww man...oh alright...
    RETIRED avatar
    Mantra
    RETIRED
    URL to post: