I took a screenshot of it: gyazo.com/8ed8ef2041366abccd47a1cbd305648a Big part of it are sound files and .sfk files(which, as far as I know, are Sony Vegas files).
Probably the most helpful tutorial for optimization I've seen. Now I ACTUALLY understand how to use hints and areaportals instead of spamming them dumbly.
So THAT's what those hint things do! I had a look inside some of Valve's Portal 2 maps and couldn't figure out why they were there, I literally thought it was something to give the player a hint on how to play or something like that, no wonder it didn't seem to make any sense.
I know this video is over a decade old but I will never stop appreciating the areaportal tool texture zooming in at 3:50 like it's going to come out of my screen and snatch me like it does all the props around the corners.
Searched for hint/skip usage a little bit. I didnt understand it from other youtubers (they show examples but not how it works). Nice explaining now I understand!
Guys, if your areaportal isn't working, load a pointfile, under Map > Load Pointfile. It will point out exactly where your areaportals are leaking from: where you have to place the areaportal/have to extend the areaportal to fill the gap.
You should have talked about the nodraw texture a lot of people don't understand it (or don't know about it) and it is very useful. I'm glad you made this, it'll help me make my level run so much smoother.
Haha, great ending. 3kliks, I've followed your videos for a long long time, used your tuts in my final year project back at uni and still using them now. Another great tut.
Really good and informative, well explained too. I wasn't aware of the possibility of optimization, but this has definitely been worth watching. Thanks.
One thing people need to realize is that they have to have optimization in mind when designing the whole layout of the map. I think people should start out trying to make maps for cs 1.6, because a lot of people playing that will have slower computers, optimization is a lot more important, and the core design of the map needs to be made with an idea of how vis works. I've learned a lot about optimization making a few cs 1.6 maps. I wish goldsrc had area portals! It would be so helpful!
Brilliant tutorial, I think this may be why my map was messing up, I had no Optimization at all, so as I'm looking up at the whole tower everything inside it is being rendered. Will be trying this out now.
Thank you. This explained the optimization tools in a very easy to understand tutorial. I never quite understood if from just reading the tutorials but this made it very clear. Appreciate the upload and effort went into making the vid. cheers
@3kliksphilip Love your tutorials. Little addition to this comment - If you're mapping for other-than cs:s, you can use func_illusionary to achieve the same effect.
wow... I'm gob-smacked, you just made the difficult things easier. EXCELLENT Tutorial, you are god of hammer tutorials, seriously, lots of people reccomend you for mapping tutorials.
1)Prop_static, select tree model, name the prop 2)Put Func_tanktrain brush with nodraw texture inside Prop_static 3)Make two path_track(s) and name them (path1, path2) 4)Make the First stop target in Func_tanktrain named path1, go to flags and flag this things (No User Control, Fixed Operation, Is unblockable by player) 5)Put the path_track named path1 where you want your tree come from :3, and do next thing inside it (operation type No change).
@3kliksphilip I think he means put the hint block in a wall so that nothing on the other side is rendered, like if you have a wall infront of you, and you want to not render anything on the side.
6)Make a trigger_hurt and trigger_once 7)Name the trigger_hurt and parent it to Func_tanktrain(if it possible :3) 8)Go inside trigger_once properties and go to output(s) and do this: OnStartTouch *your func_tanktrain name* StartForward 0.00 9)Put it inside your map and have fun with tree :P
So much thanks :) You explain very well how the Source engine works, and now i understand how to optimizating my maps. I'll take care of that tree later :P
oi, it's also about the server side performance and hit registration. for ideal reg both the client fps and the server tick need to be at exactly 100 (or 101) fps. with cmd and update rates at 100 (101) on the client and rate 25000 or 30000 (depnding on how much data needs to be sent, its rarely over even 20000 in intense areas but we dont want choking when it would be) again, the server needs to be over 500fps. but the most crucial thing is correct map optomisation
@hummer4200 On the camera viewport (default top left) if you hover over the top left corner, there should be text appear saying "Camera". Click on that and you should get a list popup. Click on 3D Textured to see the textures, or Shaded Textured Polygons for slight lighting. Hope this helped! :)
to continue... with ideal client and server conditions, if the map is badly optimised (but still runs at 1000 fps server side and 100 fps client side) the hit reg will still suffer, the reasons behind it are highly confusing. But one suggestion is that every time a player changes visgroups the server and client have to do a lot of recalculations which mean - for a split second - the frame rate drops. The most important factor is the constant frame rate 500 is just as good as 1k if it is solid.
Thanks for this, I always find your videos entertaining and helpful! Quick question, though: If I optimize by hand, do I need to set VIS to normal, or will fast do?
Oh okay. I ended up deleting it but I will try to put another one in there. I was really just wondering why it wouldn't already have been set to that when I just opened the map and never even touched that portal. Great tutorial, btw.
I think the way he made that tree kill him is by parenting that tree to a trigger_hurt entity. Then he creates a func_tanktrain and parents that to both of the other entities.
You could have also mentioned about nodraw-ing all of the stuff you won't normally or ever see in your levels, like high roofs or background backwalls... BUT, 1. this is a fantastic video/tutorial, as always; and 2. optimisation is a big thing, surely you will do a follow up at some point. :)
how did you do that tree? Surely when it broke the top part of the door it broke the area portal thingy? Great tutorial by the way, it was really helpful.
+031000ron1 it did break the portal since theres an extra space not portal'd and he made a func_ somewhere when he reached that place the tree moves automatically and kill him , so easy to do it
+ComputersAreRealCool The top of the door is not a part of the world geometry. It's an entity that breaks into pieces when the tree moves into it. Areaportals only care about sealing off world geometry, they "don't see" entities. So, Philip just extended the areaportal to the top of the ceiling, ignoring the top part of the door.
think you have this wrong i think the hint works by giving the computer something to do optimizion from without it needing to find out where to put them itself so it will load in what it thinks your seeing not by where the hint is
I was glad you stressed the cleanness of level's using the grid system. It took me a long frustrating time to figure that out. The only problem I have is clipping or resizing object that becomes off grid, I try to use snap 2 grid but it doesn't always work on angles?? Any suggestions.
Great tutorial once again, and this is something I didn't know! :D I love the tree part at the end, you used trigger for the breakable debris/brushes and trigger for sound right and moving_pane or what it's called? Or am I wrong?
LOL at the tree really nice tut there phill i think it's the best one yet AND... ...i could understand it! :D that must have taken you ages too get it all understanderbul? anyway good job can't wait 4 da next one :D biggist fan...you know who :P
@3kliksphilip i figured out what did wrong... I selected all the blocks with the areaportal texture and pressed "ctrl t" and it grouped them all xD so i had to redo them all individually.
yeah. but even if you don't upload them. if you host a server with that map people will still have to download your map. it would be an idea to optimize your map just in case.
@DODSProject Get the occluder texture, make a brush inside the hill like this: ---::-\___/-::--- where :: is the occluder and \___/ is the trench. Then make the brush a func_occluder then see what difference it makes with mat_wireframe in game, if it doesnt make much difference then get rid of it as it is like an areaportal; can slow computer down if not used properly.
ok lets say i make a mine made outta displacements with nodraw behind them.. fully sealed by nodraw and you cant see the nodraw and there is 2 openings in each ending of the mine. is it best to have one area portal in each ending? they lead to each side of a big map. i am pretty sure this will make compile time faster and smoother gameplay too.
to continue. vvis often seems to divid up where I intend on the visleafs being. say I have a room with 2 doorways in (the geometry round the doors thinner than the walls and the geometry above the door being func_detail) and I have a skip/hint box placed right in the doorway. That room becomes 2 or more visgroups, carved along my hint texture correctly - but sub divided for NO reson inside :(. After checking, I realise that these 2 visleaves can both see the same ones - so it makes no sense.
My brushes are sealed. All my maps are snapped to a 32 unit grid to ensure that, and the places where my hint/skips are, are sealed, and do not intersect anything other than solid brushes. I added some areaportals to certain places, and now my custom hints are used, but they're only effective when I'm standing within them. I thought all they did was tell the engine where to cut a visleaf. Why is it that I have to be standing in it for it to block the other brushes? It doesn't even make sense.
@3kliksphilip Dammit, I wish I knew this before I did a 1x1 - 8x8 map :( ... Hmm Would grouping them with func_detail help to clean up my common area? (The area where my map opens up into a huge section) :D tys for your wise knowledge :)
I see what your saying. I think my problems are in not using the vertex tool and creating brushes that are not within grid spaces. When creating so many and such large brushes I can't always tell without zooming in intensely weather or not the brush has been drawn on the grid. Any suggestion?
0:37
The desktop of a madman.
+Bladeclone -- I had to make a Maps file so that wont happen, the lin, bsp, vmf, and more..
Bladeclon
I took a screenshot of it:
gyazo.com/8ed8ef2041366abccd47a1cbd305648a
Big part of it are sound files and .sfk files(which, as far as I know, are Sony Vegas files).
looks like my mothers desktop
@@Architector_4 "Jizz in my pants"
Even after so many years, I always come back to this.
Hello there
Future
I always show this to unexperienced mappers
And sometimes to valve on Twitter...
@@badhaloninja oop-
@@Ultra289 lmaooooo
Probably the most helpful tutorial for optimization I've seen. Now I ACTUALLY understand how to use hints and areaportals instead of spamming them dumbly.
So THAT's what those hint things do! I had a look inside some of Valve's Portal 2 maps and couldn't figure out why they were there, I literally thought it was something to give the player a hint on how to play or something like that, no wonder it didn't seem to make any sense.
I also thinked that works like instructorhint
Going back over and over again to learn such "simple" things, thanks Philip
I know this video is over a decade old but I will never stop appreciating the areaportal tool texture zooming in at 3:50 like it's going to come out of my screen and snatch me like it does all the props around the corners.
It's awesome to see how far Kliksphillip has come!
TREES? WHY DOES IT ALWAYS HAVE TO BE TREES!
GFYS AHOLE
Drama Stuhl someone didn't get the reference
Sliphantom you actually think im serious
Drama Stuhl You wouldn't believe the stupid shit people will say while being totally serious.
NOT THE TREES!
Nice! I liked the func_treetrain at the end there.
This tutorial is not even pure gold, it's pure, polished platinum
Searched for hint/skip usage a little bit. I didnt understand it from other youtubers (they show examples but not how it works). Nice explaining now I understand!
Guys, if your areaportal isn't working, load a pointfile, under Map > Load Pointfile. It will point out exactly where your areaportals are leaking from: where you have to place the areaportal/have to extend the areaportal to fill the gap.
Gamzee Makara thanks, I had exactly that problem and thanks to you I could fix
You should have talked about the nodraw texture a lot of people don't understand it (or don't know about it) and it is very useful.
I'm glad you made this, it'll help me make my level run so much smoother.
Looks like a func_train
this is the oldest comment ive seen
that three was best :D
h
Arcade? You? Here? wat? i didn't know that you played Counter-Strike
You're really making it easy to understand for mapping-noobs like me. Thanks a lot!
Best, most concise description for source mapping i've seen :o
i can just imagine a rebel about to be crushed by that tree screaming
"no... No.... NOOOOOOOOOOO"
Thanks for the great tutorial! I now finally know how to use hint and skip, and they're actually pretty simple! :D
Loved the tree bit 🎄
Ubisoft should learn a thing or two from you :p
amir ranjbar Or the guys who made Arkham Knight
TheCatOfWar | CS:GO Stuff lol those guys are hopeless XD nothing will make them better haha
Haha, great ending. 3kliks, I've followed your videos for a long long time, used your tuts in my final year project back at uni and still using them now.
Another great tut.
You could do an updated version of this :p
+Martjin .Ishøj why?
Really good and informative, well explained too. I wasn't aware of the possibility of optimization, but this has definitely been worth watching. Thanks.
"The Killer Tree" Coming this Summer....
Nice tutorial by the way :D
One thing people need to realize is that they have to have optimization in mind when designing the whole layout of the map. I think people should start out trying to make maps for cs 1.6, because a lot of people playing that will have slower computers, optimization is a lot more important, and the core design of the map needs to be made with an idea of how vis works. I've learned a lot about optimization making a few cs 1.6 maps. I wish goldsrc had area portals! It would be so helpful!
Brilliant tutorial, I think this may be why my map was messing up, I had no Optimization at all, so as I'm looking up at the whole tower everything inside it is being rendered. Will be trying this out now.
Optimization is not the only thing that is useful, this video is too.
Rated 5
Thank you. This explained the optimization tools in a very easy to understand tutorial. I never quite understood if from just reading the tutorials but this made it very clear. Appreciate the upload and effort went into making the vid. cheers
@3kliksphilip Love your tutorials. Little addition to this comment - If you're mapping for other-than cs:s, you can use func_illusionary to achieve the same effect.
Will you please update this video philip?
doesnt it still apply though?
dildodickgollum it does
I love your videos, they're entertaining to watch even though I haven't used hammer in over a year.
wow... I'm gob-smacked, you just made the difficult things easier. EXCELLENT Tutorial, you are god of hammer tutorials, seriously, lots of people reccomend you for mapping tutorials.
1)Prop_static, select tree model, name the prop
2)Put Func_tanktrain brush with nodraw texture inside Prop_static
3)Make two path_track(s) and name them (path1, path2)
4)Make the First stop target in Func_tanktrain named path1, go to flags and flag this things (No User Control, Fixed Operation, Is unblockable by player)
5)Put the path_track named path1 where you want your tree come from :3, and do next thing inside it (operation type No change).
@3kliksphilip I think he means put the hint block in a wall so that nothing on the other side is rendered, like if you have a wall infront of you, and you want to not render anything on the side.
nice ending. didnt expect that
great that you are finally making tutorials again :D
nice tree by the way.. (;
Great tutorial and I'll keep an eye out for trees, thanks!
yay a very useful video in my suggestions today :)
6)Make a trigger_hurt and trigger_once
7)Name the trigger_hurt and parent it to Func_tanktrain(if it possible :3)
8)Go inside trigger_once properties and go to output(s) and do this:
OnStartTouch *your func_tanktrain name* StartForward 0.00
9)Put it inside your map and have fun with tree :P
So much thanks :)
You explain very well how the Source engine works, and now i understand how to optimizating my maps.
I'll take care of that tree later :P
oi, it's also about the server side performance and hit registration. for ideal reg both the client fps and the server tick need to be at exactly 100 (or 101) fps. with cmd and update rates at 100 (101) on the client and rate 25000 or 30000 (depnding on how much data needs to be sent, its rarely over even 20000 in intense areas but we dont want choking when it would be) again, the server needs to be over 500fps. but the most crucial thing is correct map optomisation
This was way more useful than it looked like :d
that tree was awesome :D
nice tut
@hummer4200 On the camera viewport (default top left) if you hover over the top left corner, there should be text appear saying "Camera". Click on that and you should get a list popup. Click on 3D Textured to see the textures, or Shaded Textured Polygons for slight lighting. Hope this helped! :)
to continue...
with ideal client and server conditions, if the map is badly optimised (but still runs at 1000 fps server side and 100 fps client side) the hit reg will still suffer, the reasons behind it are highly confusing. But one suggestion is that every time a player changes visgroups the server and client have to do a lot of recalculations which mean - for a split second - the frame rate drops. The most important factor is the constant frame rate 500 is just as good as 1k if it is solid.
This video has scarred my for life. I have cut down the tress in my yard and will be terrorified of any others I see.
Somehow the algorithm got me here
i've watch your videos, its really helpful, and quite funny with the trees. :D
Thanks for this, I always find your videos entertaining and helpful!
Quick question, though: If I optimize by hand, do I need to set VIS to normal, or will fast do?
Oh okay.
I ended up deleting it but I will try to put another one in there.
I was really just wondering why it wouldn't already have been set to that when I just opened the map and never even touched that portal.
Great tutorial, btw.
If your maps not nice and tidy 3kliksphilip will map your face in the middle of the night.
Pretty cool. Didn't know that... I'll most likely use this in my map.
I mapped out my home.
I think the way he made that tree kill him is by parenting that tree to a trigger_hurt entity. Then he creates a func_tanktrain and parents that to both of the other entities.
Very helpful! Thank god you spent 7 hours on it!
i like this tut cuz i neve knew how to use areaportal
...and the ending was great 5 stars
source 2 tutorials please(you don't need to i just find the way you explained the other stuff to be understandable and easy to grasp)
Thanks, Philip, thank you alot!!
You could have also mentioned about nodraw-ing all of the stuff you won't normally or ever see in your levels, like high roofs or background backwalls...
BUT, 1. this is a fantastic video/tutorial, as always; and 2. optimisation is a big thing, surely you will do a follow up at some point. :)
wow
your voice has changed drastically
how did you do that tree? Surely when it broke the top part of the door it broke the area portal thingy? Great tutorial by the way, it was really helpful.
ComputersAreRealCool I'm guessing it did, however, I don't think it slowed his map down that much or at all.
+031000ron1 it did break the portal since theres an extra space not portal'd and he made a func_ somewhere when he reached that place the tree moves automatically and kill him , so easy to do it
+ComputersAreRealCool The top of the door is not a part of the world geometry. It's an entity that breaks into pieces when the tree moves into it. Areaportals only care about sealing off world geometry, they "don't see" entities. So, Philip just extended the areaportal to the top of the ceiling, ignoring the top part of the door.
Thanks for the tutorial. Great tutorial like always, and I was wondering what those textures do =P
Thanks,this helped me so much!
think you have this wrong i think the hint works by giving the computer something to do optimizion from without it needing to find out where to put them itself so it will load in what it thinks your seeing not by where the hint is
Show this tutorial to authors of gmod workshop maps
@GamingSithLord
over the undo key there is a button, press it and the grid will be back
Your tree made me laugh a LOT.
You're awesome.
Thanks so much I really needed this my map had so many problems, that my level always running at five FPS
have fun and watch out for trees!
Have fun, and watch out for trees!
I was glad you stressed the cleanness of level's using the grid system. It took me a long frustrating time to figure that out. The only problem I have is clipping or resizing object that becomes off grid, I try to use snap 2 grid but it doesn't always work on angles?? Any suggestions.
Cheers m8, helped a lot. Nice clear instructions, thanks.
Great tutorial once again, and this is something I didn't know! :D
I love the tree part at the end, you used trigger for the breakable debris/brushes and trigger for sound right and moving_pane or what it's called?
Or am I wrong?
LOL at the tree
really nice tut there phill i think it's the best one yet AND...
...i could understand it! :D
that must have taken you ages too get it all understanderbul?
anyway good job can't wait 4 da next one :D
biggist fan...you know who :P
Bloody excellent tutorial, thanks!
@3kliksphilip i figured out what did wrong...
I selected all the blocks with the areaportal texture and pressed "ctrl t" and it grouped them all xD
so i had to redo them all individually.
yeah. but even if you don't upload them. if you host a server with that map people will still have to download your map.
it would be an idea to optimize your map just in case.
Great work on this and watch out for trees! =)
This might sound weird but your voice is really interesting..
this helpes me! tnx! i always wondering what those blocks of textures do's.
@3kliksphilip func_details AROUND the area portal, like a doorframe
Your best tutorial. Cheers, gonna pull of my hat for that one!
/Helix
how can i do this on a HUGE map, which haven't brushes like your ? (only a skybox and a lot of displacement, 25% are brushes)
Zool Smith Oh hi! :D
WhEn CLaSsiC oFfeNsIvE wIlL bE oN sTeAm? :D
Thank you for explaining this..
@DODSProject Get the occluder texture, make a brush inside the hill like this:
---::-\___/-::--- where :: is the occluder and \___/ is the trench.
Then make the brush a func_occluder
then see what difference it makes with mat_wireframe in game, if it doesnt make much difference then get rid of it as it is like an areaportal; can slow computer down if not used properly.
Nice. :)
Finally, i will use this for my L4D map. :D
Thanks dude.
if i have a surf map where ther are many blocks but no closed rooms is it good to make everything funk_detail?
yes
@3kliksphilip yeah i have no problems with other games. Just source SDK. And no, it's installed on c drive
Killing Trees, awesome idea for a HL2 mod xD
nice map in 0:48! if that is a playable map, can u make a sneek peak on the map ?:D and when its done u can put it on fps banana?;)
ok lets say i make a mine made outta displacements with nodraw behind them.. fully sealed by nodraw and you cant see the nodraw and there is 2 openings in each ending of the mine. is it best to have one area portal in each ending? they lead to each side of a big map. i am pretty sure this will make compile time faster and smoother gameplay too.
@3kliksphilip Your a life saver! Thanks!
You are king , thanks men !!!
+/Rade / old video, but still useful
+Kirby W Yes yes yes ...
+/Rade / He forgot to say about area portals that sealed area must not be a func_detail.
to continue.
vvis often seems to divid up where I intend on the visleafs being. say I have a room with 2 doorways in (the geometry round the doors thinner than the walls and the geometry above the door being func_detail) and I have a skip/hint box placed right in the doorway. That room becomes 2 or more visgroups, carved along my hint texture correctly - but sub divided for NO reson inside :(. After checking, I realise that these 2 visleaves can both see the same ones - so it makes no sense.
could you do a tutorial on how to make a wall break into pieces like what you showed with the tree?
good tutorial
lol my computer froze right when you said it would slow down people computers
My brushes are sealed. All my maps are snapped to a 32 unit grid to ensure that, and the places where my hint/skips are, are sealed, and do not intersect anything other than solid brushes.
I added some areaportals to certain places, and now my custom hints are used, but they're only effective when I'm standing within them. I thought all they did was tell the engine where to cut a visleaf. Why is it that I have to be standing in it for it to block the other brushes? It doesn't even make sense.
Agreed, Epically awesome!
@3kliksphilip Dammit, I wish I knew this before I did a 1x1 - 8x8 map :( ... Hmm Would grouping them with func_detail help to clean up my common area? (The area where my map opens up into a huge section) :D tys for your wise knowledge :)
I see what your saying. I think my problems are in not using the vertex tool and creating brushes that are not within grid spaces. When creating so many and such large brushes I can't always tell without zooming in intensely weather or not the brush has been drawn on the grid. Any suggestion?