optimization / constructive critisism

  • Thread starter Thread starter hedgehog
  • Start date Start date
H

hedgehog

Guest
my first lil' map's nearly done (not just for hl2, but it's literally the first 3d level map i've ever tried to make).

considering this, i'm sure there's plenty of room for optimization and other improvements. there's a few problems with the ladders not allowing downward travel, but i'm fairly certain i've probably just overlooked something silly.

anyway, vmf is here should you have a moment to check it out:


http://www.graphicsdesign.org/dm_hedgelake_beta2.zip

my one irritation (that i know of) is that i didn't plan ahead on what i wanted (next time i'll sketch something out first), and so i wound up with three displacement maps instead of one, and finding they were unsewable to boot.

i've only done a fast compile so far, but it seems to be reasonably fast (about 19 mins on my 3ghz/1gig ram machine).

creating the little interior building in the corner was rather fun, but i'm hoping i did it right, as i didn't really bother looking up any tutorials beforehand. it seemed the proper way i guess.

anyway, thanks to the forum for the help the past few days. feedback appreciated :]
 
the map's a bit laggy; it might be due to three or four overlapping brushes, it might just be the size of it: i could definitely use an expert --or even casual user's-- opinion on techniques i could employ to get things running smoother.

one bump attempt in the hopes of garnering interest :]
 
update:

i've managed to cut my compile time down from 4 hours to about twenty minutes, all while the map nearly doubled in size, yet there's still a few spots that it's really slowing down on during multiplayer testing.

for some reason, r_speeds doesn't seem to be recognized in the console for me; is there something i'm missing to get that functionality?

additionally, i'm curious if anyone thinks it's advisable / a bad idea to use hints on outdoor portions of a map? there's a few multilevel walkways, where people far down in a ditch don't need to be aware of the rest of the world's presence. i can afford the extra compile time atm, but is there really any success with using hints in such a large semi-open space?
 
just in case anyone looking for the same answers should happen upon this thread:

a] the r_speeds command is now replaced by +showbudget.
http://developer.valvesoftware.com/wiki/Showbudget

b] the ladders are really, really picky about stuff being even remotely near them. i thought it was just the useableladder part that couldn't be obstructed, turns out it's also the landing pads, which i s'pose makes sense.

c] in the end, covering everything that wasn't seen using nodraw and reducing the amount of water used did the trick on getting down to acceptable r_speeds (as well as cutting compile time down to about an eight of itself.

there's still two tricky points on the map, one is a solid object in water, the other is a high-reflective object (crab canister) in a rather busy room. avoiding the above situations can also markedly improve performance.

hope this helps someone.

(EOT)
 
Honestly I don't know how you compiled this garbage in the first place. There's no sense of direction with the map, there are about a hundred obvious flaws with optimization with even a short glance through the map, there are even entities that are NULL, like info_player_deathmatch. I didn't dare compile this hunk of problem ridden collection of assorted brushes and props; my CPU would have thrown up chunks of tomatoes and beef were it to try and peice together this jigsaw of a map. Really dude, I can even see how much of a field day you had with it, it's almost like your monitor is an input for map editing, and you were throwing feces and dated lego peices into it. It's obvious that you skipped the "first room" project and dove in the deep end at first glance, but went too far down the pool and hit your head on the concrete, causing hemorrhaging in the brain which led invariably to the creation of this peice of shit.

• Overuse of brushes where they need not be
• Props existing in both water and non-water areas (rendered twice)
• No real direction in the map, no theme, no nothing
• From what I see, there's no point in the map where they can't see the entire map, causing probable considerable bad fps.
• Weird, unessecary entities
• Bollarky optimization, there really is none. The sky box is WAY too big, it should only be used where THERE SHOULD BE A SKY. toolsnoclip for cleaning leaks.
• 20 minutes compile time could, estimately, be reduced to 3 or 4 minutes. The only real compile time usage is in lighting, and you should think about clearing up some of those lightmap scales.
• Some really funky color grid came up when I selected a brush and zoomed in on it, I dunno wtf it is, but it can't be good.
 
If your looking to optimize the map make sure you have the nodraw texture on everything you can't see.
 
Pesmerga said:

er, yeah that's why i started a thread asking for help with optimization :]

just to be clear, i've never designed anything for video games, ever. i'm just a lowly graphic designer / php programmer. i've no idea what i'm doing, not just in hammer, but in level design at all.

at all.

anyway, this any better?
http://www.graphicsdesign.org/dm_hedgehog-map1_test.zip

it'll probably be painfully obvious i don't know what the hell i'm doing as far as hint brushes go, but everything that should be noclipped is probably noclipped now.

you'll also probably hate the number of lil rubbly prop_statics around the destroyed building; though really the only performance hit that seems to be happening there now is the headcrab canisters.

there are even entities that are NULL, like info_player_deathmatch.

i don't know what this means :]

toolsnoclip for cleaning leaks.

you mean nodraw, yeah? i couldn't find a noclip material.


as for the point of it, i'm not entirely sure i wanted one at the moment. i just kind of wanted to make a thing. i know theme and immersability are generally important in gaming and mapping, but i don't really know if i'm doing it specifically for that; i mostly just wanted to get a basic level of understanding of how maps get made. i'm sure like anything it's one of those minute to learn / lifetime to master sort of things. sorry if i've offended anyone with my newbie garbage :]
 
Make a 256x256x128 room, make it as pretty as you think possible, send me the .vmf and I'll give you advise :D
 
aw come on, it's not even a touch better?

show me an example of a 265x265x128 room that you think is actually "pretty" or interesting, and i'll use that as inspiration and take you up on the offer. otherwise it just seems overly pedestrian really. there's a few basic rooms on the latest .vmf -- if you'd like to simplify things by giving a critique of just a portion of that, i'm game.

seriously i'm sure you guys are sick to death of every little newbie coming in and posting utter crap, but you're going to enjoy a long lonely period of elitism if that's the best encouragement you can muster to new folks. i'm a bit older so it doesn't really bother me, but some of the folks that'll come here are just kids.

thanks for the interest, but right now your derision to helpfullness ratio is way off the charts. i should probably find a newbie maphelp board, but the only people that ever help around those places are other newbs :P
 
Pesmerga said:


true! the first post was awesome -- i implimented nearly every suggestion you made and it's cut the compile times down a ton, as well as helping the fps considerably; cheers for that. i guess i was excited to help my messy lil frankenstien along further, heh :]

ah well, thanks for the offer anyway though. maybe i'll build a lil 256 mess sometime and we can all gasp at the horror of that as well, heh.


btw the weird multicolor effect you were seeing was due to the grid being at its smallest. if you hit bigger grid a bunch it tones down.
 
You should probably stick to doing a smaller test map and get them wrong, rather than doing a huge map like that one then trying to find all the mistakes. I only looked at it for 10 seconds, and it seems 100x better than most beginner attempts anyway.

One huge thing I noticed is that every brush you've used is a world brush. Most of them could be converted to a func_detail (click the toEntity button with it selected), especially those arches. If it doesn't block the player's view of anything, then make it a func_detail. func_details do not block vis, so you can't seal leaks with them, they are technically "see-through" to the engine.

http://www.student.kun.nl/rvanhoorn/Optimization.htm

I say take Pes' advice. Make a smaller series of rooms connected by doorways then post it. Who knows, you might be making even simple rooms totally wrongly. It shouldn't take too long to make one, then you can go back to your larger maps... :)
 
StardogChampion said:
One huge thing I noticed is that every brush you've used is a world brush. Most of them could be converted to a func_detail

*jaw drops*

...you can do that? :D


thanks for the link. praps i'll give pes' advice a whirl.
 
Beyond what is said here, you really need to just study Binary compiles and see how source splits and functions with brushes/props/meshes.

Every map is optimized differently. Don't rely on func_detailing every specific convex brush[hehe...old ns mapping joke]. That is a terrible ideal to use, much like carving. Zombie has a great understanding of theoretical void map design. Use that as your bible, and remember that the best maps are optimized first and built second.

A mapping goal is to trick the player into logical belief. Render what can be seen, and nodraw what cannot. This act alone seems simple, but many mappers fail to execute it. There is a definite art behind this, and the best mappers understand it.

There are many egotistical mappers out there. The ones who really know what they are doing complete maps over and over. Finish this map, optimize it the best you can--and move on. Do it again, and 10 maps from now you will look back and laugh.

The Conqueror Worm Lead Programmer--
Polykarbon--
 
right; i think i get the idea that func_detail isn't a good idea if as a world brush it's actually got some benefit to blocking a player's view (with or without the assistence of hints), and that's probably a better sollution performance-wise than adding occlusion behind every func_detail wall on the map.

and sure, there's of course a reasonable amount of self-awareness that i realize anything i make now --or 200 maps from now-- will be embarassing to look back on.

i guess in my mind this was a pretty simple first test that included a variety of basic elements: displacements, water, world brushes, a skybox, an interior, a few doors, a camera, some buttons, some input/output elements (lights, elevator), a few npcs (and vague attempts at paths), etcetera, and then tried to figure out how best to optimize it. by nature this makes it a tricky task, but i like the idea that if i can get a mess like this to work marginally, planning the next map in advance would be much easier, having done the lessons-learned on a wide variety of different elements.

i tend to brute force my way around things. the early to midterm results of learning like that can and will of course be quite gross :]

the way i see it; i used water here. had i started with just a firstroom project, i wouldn't know about cheap vs. expensive water, water lods, env_cubemaps, and a variety of other considerations that came to my attention by including that. i also wouldn't know about displacement maps, etc.

yesterday while testing, some kid came in and asked how i got the ground all hilly like that. he's still doing firstroom projects, since that's what he learned first, so that's what he's comfortable with, and he doesn't have any strong desire to work outside his comfort zone. i tend to think that sort of result is far more offensive to someone learning something new.

result? the next map i have a better idea of how to make use of water should i want it. well, probably knowing just enough to be dangerous.

but yeah, i don't take it or myself seriously in the slightest, this tends to just be the way i learn things and approach problems, and i can fully appreciate it's usually rather bizarre and irritating. :P

the real victim here is my graphics card.

</self indulgent rambling>
 
You sound like you have both the desire and passion to become a solid structured mapper.

Keep us posted as you progress.

I look foward to your maps
 
cheers for the encouragement;

i've picked apart the things i liked / thought worked about my previous monstrosity and started scaling it back into something sensible. we'll see how it goes :]
 
Back
Top