News | Forum | People | FAQ | Links | Search | Register | Log in
Mapping Help
This is the place to ask about mapping problems, techniques, and bug fixing, and pretty much anything else you want to do in the level editor.

For questions about coding, check out the Coding Help thread: https://www.celephais.net/board/view_thread.php?id=60097
First | Previous | Next | Last
Practical Experiment 
A little func_ bonus content from that blog post. I tried some very simple experiments into how the order of brushes in the map file affects the BSP output. It's easy to replicate, just create a single 6 brush box, with a 7th cube floating inside(texture this one differently so you can recognise it). Export the map, and use a text editor to cut & paste the floating brush entry up and down the brush order - you can create 7 different map files in this way.

I then tried compiling all 7 maps with Rebb's compiler, first without the new switch. In this case, there actually was a small change in the number of markfaces: when the floating box was moved high enough in the map file, the number of marksurfaces fell from 193 to 191. Yup, that's a 1% saving!.

When I repeated the compilation with -forcegoodtree turned on, the marksurfaces held at 177 for all 7 map files, but that's a 9% saving over the earlier worst map. Seeing no variation does not seem surprising after the last post, where we saw that the "slow" method considers all brushes at once. But there were variations in other quantities like edges and clipnodes. How?

Well, I can think of two possible explanations. One is that these other quantities depend on some other part of the compiler we haven't considered, and bit that is sensitive to order of brushes. I think the more likely explanation is that even when always applying the "slow" method there are still occasional "ties" where two splits look as good as each other, and the compiler picks one solely on order in the map file.

This is consistent with the observation that all the faces in our test are axis-aligned, so we don't ever test the code in the "fast" method which compiles brushes strictly in order. It appears that the variations in the former compilations were only due to ties being broken by brush order. The fast way appears to generate more ties than the slow way (which is believable from the code), and these ties might result in greater variation (an interesting result). 
Hakkarin 
Yes, that is what those two menu items do.

Save selected saves the selected brushes to a map file and save region saves the current region. 
Please Define 
'region' 
Region 
Region selection is in the "View" menu. It's basically a way to hide large chunks of the map at once. You can select only a specific area to be visible while editing, this can de-clutter your view of the map a lot.

I've only used the "set xy" option, so I don't really know how the others work. The "set xy" will hide everything that's not in the current xy 2D view

I've never tried saving a region, can't think of any good reason why I'd want to. I guess it just saves the currently viewable stuff in a new map. 
Preach : Interesting ! 
Thanks for those articles, looking forward to the follow-ups :)

If it turns out that the experimental switches like "-forcegoodtree" are indeed not having yet unknown side-effects, like causing one's offspring to be born with a tail, maybe it could be implemented in other tools as well - the code change needed is very minimal. 
Ah - That's Like Hammers Visgroups 
 
QuArK... 
.. has also this feature: it is possible to hide some part of the design in the editor (3 options are actually possible: visible, hide, or greyed).
Also, vis-grouping allows to be indeed more flexible. It is possible to build only a selected part of the design to check that it looks correct.
Well, I guess more or less all editors have this kind of features :) 
 
I've always liked quarks tree view that makes map components look like a file system. 
And Again... 
i still like quarks texture applying. 
Moving Platforms 
I tried messing around to figure out how to do it but can't figure this one out. How do I get brushes to move around like you see in many of the areas in the game? (Quake). I am talking about things like platforms that move back and forth and also things like those those cubes at the end of E1M2 that move around. How do I create those? 
Hakkarin 
thats a lot of questions..
head over to:

quakewiki.org/wiki/mapping

in entities you'll find what you looking for

googling the unofficial quake specs should be helpful too. 
Hakkarin 
func_train and Path_corner to be more unprecise 
Moving Platforms 
For platforms that only move in one direction like back and forth, or up and down, you can just use a door. For more complex motion you'll need to use a func_train with multiple path_corner entities. 
That's One Question To Be Precise 
Moving platforms are func_train entities. They move along an interlinked set of path_corner entities. The plaform starts at the path_corner it targets (if it has a targetname itself, it will only start moving after being triggered); each path_corner targets the next one, and the last one the first. If the platform is supposed to stop at the last path_corner, set "wait" "-1" there. 
Da Fuk 
Slow typer... 
Random Marksurfaces 
OK, my next foray into the realm of messing with BSP compilers, and the first real success (sort of).

http://tomeofpreach.wordpress.com/2013/06/07/random-algorithms-and-bsp/

Now with graphs! Yes graphs! 
 
Very interesting research into the BSP process, Preach.
It's weird how the results we so different from a box map and a full size one.

Have you tried this test with maybe some small maps like DM maps? 
Other Tests 
Afraid I didn't try any map in-between. I'd go and give it a shot now, although I expect that the result would be more like the latter than the former. Unfortunately I can't do that easily right now, because I've been revising the code for a future post, and don't have the original compiled at the moment... 
 
I was mainly interested in pinpointing where it started to become 'bad' and to try to pinpoint what it is about full maps that don't show up in box maps. 
Cutoff Point 
I may have some insight into that from the new tests. It seems like there's a very fine balance to strike with random input - it seems to work best for trying out different ways of resolving "ties". I guess that in the simplest of test maps there really isn't any difference between just tie-breaking and randomising everything - but I think as soon as you add any real detail then the difference matters. 
Just To Say 
I'm following this as well, thanks for the work.

Nothing solid to add though. 
Ijed 
is it possible to make rmq using some modern free engine?

i remember i've seen e1m1 on crytek eng 
Shit Wrong Thread 
 
And That Promised New Method 
http://tomeofpreach.wordpress.com/2013/06/09/quasi-randomised-algorithms-and-bsp/

So here's the way I was talking about, it gets you some improvement, even in the average case, over the deterministic compile run. I'm pretty sure that because the randomness is so low level, it's almost always a case of multiple tying brushes, and the randomisation changing how the tie is broken.

It's not mentioned in the post, but I did check and this version also performs well on the simple test map file. We achieve the same minimum of 160 (over 100 tests), and I'm beginning to suspect that can't be bettered. The graph shows an improvement in the average case, similar to the one that's in the article. So that's reassuring. 
Not Ijed 
is it possible to make rmq using some modern free engine?

that would end up being a free quake replacement, and zenimax would probably sue you for theft of IP. 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.