Ello Ello... it's Elmo!
Woo, it's awesome to be on this side of the fence after sitting on the other side for so long, waiting for these dev journals and announcements to explain WTF the/us FF devs are actually doing!?
It's awesome to be on the team but not because I get to see the bits that haven't been released yet, but because they frequently TALK to one another, find out what tasks are required and just get on with it! I have much faith for FF’s success yet! I think this influx of new devs (like me) has really brought some extra life and progress to the mod too. I can't seem sit here for more than half an hour without there being a reply to read on the dev forum!!
Right, now on to the stuff you may care about! I'll be Optimising some of the existing maps, starting with ff_monkey, and boy do I have my work cut out for me. I've almost done one base, as you will see if you haven't already skipped to the links.
PLEASE NOTE:
This is work in progress - IT ISNT FINISHED!! I am aware there are some things missing around the level and that water is far from finished, dont worry. Also I don't have any env_cubemaps in, this means anything that has a reflective material is only reflecting the skybox and not its surroundings e.g. water & objects.
I'll explain what I've done so far... I've rebuilt it... completely... almost every brush... I don’t plan on doing that for the others in order to optimise/clean them up but ff_monkey really was made badly and there are quite a few improvements I’ve made already.
1. For those of you that ramp slide on the left ramp from front door and have got stuck halfway up on that stupid physically nonexistent lip, you'll be glad to be know it has gone. The ramp was - for no reason - made up of two (perfectly aligned) brushes; it’s now one, problem solved, simple.
2. Texture alignment is now/will be as perfect as I can make it throughout the base. Once I've completed the base I will probably ‘nodraw’ it all and apply all the textures again to be sure! I’m a perfectionist...
Texture Alignment Example (Ceiling Curve)
3. Previous Lazy mapping is no more... such as cutting the heads off those 'poor' T monkeys
and no more gaps behind wall props.
T Monkies (Heads)
Wall Prop Gaps (Gone...)
4. OPTIMISATION – Now that I've mapped it properly, you WILL have considerably better FPS in most areas, comparisons are below but you will mainly notice the improvement during full game play. No more standing in flag room rendering fights going on in the ramp room/lower spawn/water way that you can’t actually see!! No more standing in ramp room rendering the water from the route beneath the base! No more crossing mid map and rendering too much of the action inside the base, which was increasing the strain from the already detailed mid map. No more standing here there and everywhere using more resources than necessary.... You get the point so here are the comparisons.
Flag Room 1
Flag Room 2 (T Junction)
Ramp Room 1
Ramp Room 2 (In Top Spawn)
5. Lighting is currently darker in some places but only because I haven’t grabbed some of the floating lights. I don’t believe in adding lights unless there’s a prop to act as a believable light source. I WILL ensure the lighting is PERFECT for the released version but that will be the last thing to be adjusted.
Some more General Comparisons
Flag Room
T Junction
Ramp Room
Lower Spawn
Water Entrence
Water
So what left to be done??
With regards to ff_monkey, I have almost completed one base, which can then be copied and flipped for the red side, I will remake the front of the bases but the mid map shouldn't be too much of problem as I will be copying a lot from the original.
I will now explain my current workings. I've been having some trouble deciding on how to ‘map’ the water way with regards to how it previously linked to the mid map; beforehand, one could look towards mid map and see the trees in the distance. Rendering areas other than the one you are in is usually undesirable for performance issues, but in this case it added a nice depth to the map.
I hadn’t needed to consider this for the rest of the base but I felt this depth would be missed if I weren’t to include it. I have now reached ‘the point’ during mapping that I have to deal with it and have realised that I need to change my mapping technique to get it. The same mapping technique I’ve been using to make my custom map ff_medieval, and if you’re interested, I will elaborate further... just you try and stop me (lol).
Think of the map (any well made map) as being made up of a series of closed boxes, the sides of these boxes are made up of key walls in the base, anything that should considerably block the players visibility from drawing what’s behind it.
Just to explain, ff_monkey was not made in this sealed box manor, or rather there were unwanted ‘links’ or rather suitably named leaks through to the other parts – ‘boxes’ in the map, which is why it ran so badly and why I couldn’t just simply ‘add optimisation’ to improve performance.
ANYWAY, these boxes are normally ONLY linked with doorways and/or corridors. Okay? Well In order for me to get my desired outside depth (distant trees), this method of sealing the player’s visibility into boxes isn’t quite appropriate. Let’s say all of these ‘boxes’ have a sort of lid, be it the ceiling or the sky. To get my desired depth in ff_monkey, the water and mid map ‘boxes’, need to, in effect, have their sky lids removed and then be sealed again by a new sky box placed over the top of them both.
So that you can picture it:
http://developer.valvesoftware.com/w...t_example3.jpg - Brown = mid map/yard
- Yellow = water way
- Red = skybox
- White Line = hint
^^ The hint is some good old optimisation, I’m not going to explain hints, if you’re interested read up on them for yourself
here. In this example hints kind of act as a way of maintaining the original box forms, it maintains that lid we took off. So ONLY if you’re looking through the lid will you see its contents, unless of course its contents are sticking out of its box.... the tops of the trees! My desired depth is now possible and controlled to minimise on PC strain.
The engine now knows that (only) the trees in mid map, can be seen from water and so are allowed to be rendered once again; it’s simple really. Honest. I use this technique as described above all over the level, hint brushes within these ‘boxes’, placed off corners and higher platforms to make smaller boxes, separating the level. Then add some well placed area portals (that’s another thing) and your optimisation is complete!
Now I can finally shut up and actually get on with it I guess. Even if you don’t understand what I said above, it may at least give you some confidence that I know what I’m doing! *Strokes Fortress Forever* “Ah, yes, you can be calm now... my precious!”
Not sure what I'll be working on once ff_monkey is finished, and I am unsure when I will finish it as I'm off to download festival in 3 days for 5 days.
Eventually signing out after two and a half pages in a word document... hmm I wonder what the word count is... ~1,300! lol Taken me days to finish this post! 12hr day of work then 3 hour bike ride to end up at 1230am finally finishing this!
Elmo!