optimising frame rate in large levels w/ complex scripts ect

Post topics regarding Level Building/Design and Entity Usage with Reality Factory
Post Reply
User avatar
fps
Posts: 504
Joined: Mon Sep 26, 2005 9:54 pm
Location: in a magical land devoid of hope, happiness, and sanity.

optimising frame rate in large levels w/ complex scripts ect

Post by fps »

what are the best ways i can optimise the frame rate of my game?

My games levels are large with open skys and mountains, there are towers, buildings with interriors, windows, lifts, many textures from the high def texture pack, combative pawns, scripted vehicles, maxed out 40 wepons, multi button doors, and lots of sounds and special effects.

i want my game to look good and run well so i have certain parts of levels load in different sections but sometimes the interriors of buildings need to be able to see to the outside, and the more complex levels are as small as i can accept them.

I am having trouble with rf edit pro crashing in large levels and after i put pawns in them, i might as well forget working on that level again. i dont know why but after that i will not repoen the level.

some parts of levels are outdoors but behind walls and stuff, sometimes there will be up to 20 pawns on the screen at a time running combative scripts and such.

my pawn models of from counter strike condition zero aso they are fairly complex.

in the main level i am working on now, there ar a lot of things going on at once and as many choices you can make. from sneaking in the back to flying a helicopter right over the top of the whole level. some parts of levels are also include sniping across the whole level form a tower.

there are many different areas, but the one i am working on is ontop of a cliff in the nevada desert, in and around a base like in the half life games.

so far my levels are all made up from the basic shapes provided.


wow i'm long winded.

What should i do to optimise this overly complicated sequence of levels and distruction so that it runs at a playable frame rate?

i see three catagories of things i can work on (if i'm not leaving any thing out);

pawns (model, scripting, ect...)

levels (complexity, effects, etc...)

and

textures(don't really know much about)


what would you guys suggest?

If this is to complicated of a problem i could try to post some screen shots and level design sketches. (i have billions of hand drawn blueprints and concept art peices but no scanner at my house)

thanks,
fps
User avatar
zany_001
Posts: 1047
Joined: Fri Mar 02, 2007 8:36 am
Location: Aotearoa

Post by zany_001 »

you can use lods on your characters,and use hint brushes on your mountains and valleys,and use farclipping and distance fog,that all helps.
Once I was sad, and I stopped being sad and was awesome instead.
True story.
User avatar
fps
Posts: 504
Joined: Mon Sep 26, 2005 9:54 pm
Location: in a magical land devoid of hope, happiness, and sanity.

Post by fps »

how do i use hint bruses for the mountains?
do i just make them hint brushes under their properties?

thanks,
fps
User avatar
zany_001
Posts: 1047
Joined: Fri Mar 02, 2007 8:36 am
Location: Aotearoa

Post by zany_001 »

no,what you do is put invisible brushes around the mountain and make them horizontal.theres a tute,or something on the forums if you look around.
Once I was sad, and I stopped being sad and was awesome instead.
True story.
Jay
RF Dev Team
Posts: 1232
Joined: Fri Jul 08, 2005 1:56 pm
Location: Germany

Post by Jay »

http://www.realityfactory.info/forum/vi ... 0&start=45

scoll down until the last post.
As i said in the topic i gave you a link for, hint brushes are VERY difficult to use, i remember only a couple of times where they actually worked...

In outdoor level they are even harder to get working - you could try them out and then use the wire frame driver (in REalityfactory.ini set driver = wire) to look if it's working or not.
Everyone can see the difficult, but only the wise can see the simple.
-----
User avatar
fps
Posts: 504
Joined: Mon Sep 26, 2005 9:54 pm
Location: in a magical land devoid of hope, happiness, and sanity.

Post by fps »

Is there a way to set certian brushes never to be rendered?
User avatar
Spyrewolf
Posts: 450
Joined: Tue Jul 05, 2005 4:53 am
Location: Wellington::New Zealand

Post by Spyrewolf »

you can render them as sky this negates them from the renderer i beleive, don't quote me on that though, the best way so far i've found, if the player can't get to it, (i.e walk on it) make L.O.D, models for it, and make it an SEP.

also don't try make one huge map with full detail, this wont work. even engine's like the ones "Rockstar" uses for games such as GTA, Bully a full optimized in LOD chunks, if you have used engines like the one used for Oblivion the maps are made in a patch work form, so when your in square X its like a ripple effect that the squares closet to you render every thing 1 step back, and the ones around that 1 step back ect. untill you hit the horizon which in our case is just a TGA.

here's a detialed look at hint brushes
also a link if you want to read it later, it for quake based mapping techniques basically hint brushs are only really any good indoors, i myself do tend to use them, and are unsure how accurate this info is for RF, im assuming it'sthe same as we use BSP. but i don't know if we do things slightly different.

http://lfire.planetquake.gamespy.com/Le ... nt-brushes <- really bad formating on the pages dunno what the author was thinking.
Contrary to earlier tutorials on hint brushes, they do not have to intersect your walls. If you're dividing up player-accessible space, it is preferable to draw your hint brush so that it doesn't intersect any existing brushes, but rather just meets up with them at the faces.

Hint brushes do not block visibility. Hint brushes only help to split up the map so that portal placement takes the maximum advantage of existing visibility-blocking features of your map. This is probably the most important point of all. Your map still has to block visibility. But when you put a hint brush into player-accessible space, you draw portals in the air. (It's a little more than drawing portals in the air, but that's a helpful way to think about it.)

The area that a hint brush affects is, generally, not much larger than its own extent and the empty space around it. Remember the way the BSP splitter chooses the next map-splitting side. It tries to pick a plane that, for the remaining portion of the map, doesn't cut too many brushes, is aligned with as many visible faces as possible, and creates an even number of remaining brushes on each side. If you create a hint brush that cuts a room in half but otherwise is flush with the walls, that diagonal hint plane isn't likely to become a good candidate for splitting the map until the remainder of the map is not much larger than the room. This is as we want it.

So the first purpose of hint brushes is to split up the player-accessible space so that portal placement will lead to good vis. Their second purpose is to prevent certain brushes from being used to split up player-accessible space because such would lead to bad vis.

Enclose your problematic brushes inside of a hint brush. Do not let any part of the problem brushes touch the faces of the hint brush, or it won't work. But the hint brush must completely surround them.

Now, the BSP splitter will (on the average) break around it before it starts breaking inside of it, and therefore limit the space-splitting effects of a particular feature.

Note this is similar to a detail brush!

They're similar because the BSP splitter chooses structural brushes over detail brushes, and so would (on the average) split on the detail brush's planes after the room's planes had been used. The hint brush, in this case, provides a more tempting place to split than what it encloses. (Hint brushes can even be used to create "hierarchical" details, by enclosing hint brushes inside of hint brushes. I don't know why you'd want to do that, but you can.)

But they're different because a detail brush doesn't block visibility during qvis3 calculations. The enclosed brushes will still generate portals that have to be analyzed. But you can get the best of both worlds by enclosing groups of detail brushes in hint brushes! Now they won't interfere with the visibility calculations, and they won't fragment the empty space around them!

Detail brushes, since they don't block vis, are drawn in their entirety when any part of them are visible. So they should be used for items that don't make a big difference to vis, either because they're a detail on a wall or because the player can typically see all the way around the object at most times.
User avatar
fps
Posts: 504
Joined: Mon Sep 26, 2005 9:54 pm
Location: in a magical land devoid of hope, happiness, and sanity.

Post by fps »

Has setting faces as sky improved the frame rates in your levels?

LOD chunks, if you have used engines like the one used for Oblivion the maps are made in a patch work form, so when your in square X its like a ripple effect that the squares closet to you render every thing 1 step back, and the ones around that 1 step back ect. untill you hit the horizon which in our case is just a TGA.
Do you think that there is a way to do this in RF so that it dosent have to stop and load each section for 5 minutes? if not, then do you think that there is a way i could get certain brushes or groups of brushes to only be visable at a certain range without using distance clipping on the whole level?

also in the end of your quote it says somthing about detail brushes.
since my enviroments are rather large at times, ive been making things like building walls and entitre interriors into detail brushes under the assumption that this will make my levels run faster... am i wrong to do so?

thanks,
fps
Jay
RF Dev Team
Posts: 1232
Joined: Fri Jul 08, 2005 1:56 pm
Location: Germany

Post by Jay »

fps wrote:also in the end of your quote it says somthing about detail brushes.
since my enviroments are rather large at times, ive been making things like building walls and entitre interriors into detail brushes under the assumption that this will make my levels run faster... am i wrong to do so?
A thing like a chair or a table can be made out of detail brushes and could possibly speed up things because the BSP tree gets smaller. But if you make a big thing like a building wall a detail brush, that's the worst thing you can do with detail brushes, because with this you actually PREVENT that thinghs behind it are culled, that means reagardless if you can see them, they will always be rendered. basically with this you prevent that thinghs run fast. For the interriors you should make the walls normal bruhses but everything else detail brushes.
Everyone can see the difficult, but only the wise can see the simple.
-----
User avatar
zany_001
Posts: 1047
Joined: Fri Mar 02, 2007 8:36 am
Location: Aotearoa

Post by zany_001 »

can u use LODs for brushes,or do you have to use static entities?
Once I was sad, and I stopped being sad and was awesome instead.
True story.
Jay
RF Dev Team
Posts: 1232
Joined: Fri Jul 08, 2005 1:56 pm
Location: Germany

Post by Jay »

brushes cannot have LODs. You have to use actors.
Everyone can see the difficult, but only the wise can see the simple.
-----
User avatar
zany_001
Posts: 1047
Joined: Fri Mar 02, 2007 8:36 am
Location: Aotearoa

Post by zany_001 »

Well fps,if u use actors for your buildings,then u could use LODs and for things like trees,and stuff like that.
Once I was sad, and I stopped being sad and was awesome instead.
True story.
Post Reply