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
Sock Has Guides 
 
Ask Me How 
I like mine, really.

http://s3.photobucket.com/user/amurad/media/Games/jam6_18b_zpswa4ketjr.jpg.html?sort=3&o=2

They were made like this:

http://www.simonoc.com/pages/articles/rockwall1_1.htm

Golden rule: as long as you skew faces, you're safe.

In other words: if you're going to move vertices, you have to move all vertices in a surface together. And I said MOVE, not rotate. 
Even Better 
Platinum rule: your brush is always valid if all faces are parallelograms, all vertices are on grid and at least two faces are parallel to orthogonal axis.

Meaning that if you make a cube you can skew its faces at your will, it will compile.

Of course you're not skewing a face across its opposite; in this case you're just trying to troll me. 
Trisoup! 
Make a cube out of 4 sided brushes (pyramids, not prisms). That can then be duplicated and manipulated to your heart's content to produce whatever formations of rocks you like. 
 
For tri-soup walls and floors use 3 sided prisms/columns and move the vertexes on one end up/down (or in/out if walls). In my Jam6 map you can see how I tri-souped the walls, floor and ceiling.

There's also some randomly formed off-grid rocks that seemed to compile fine.

With careful clipping I made some columns/prisms where all the sides are formed by triangles. You can drag the vertexes around to make interesting shapes, just keep the brush convex and the ends flat. Cap the flat ends with stubby pyramids to give them a rounder look. 
Yes 
Triangular faces are always valid. Diamond rule. 
Decorative Items/objects 
How much can you actually build using brushes? For example, say you were building a medieval style map and wanted wooden barrels, wheeled carts, crates, signs or metal light fixtures etc... can you build all that detail with no problems?

What I mean by "crates" is, beyond a six sided cube with a crate texture applied. A crate that has some dimensionality to it.

Engines are more advanced, limits are increased(providing openness and crazy architecture) as well as lighting being dramatically improved. But beyond that, there is very little in the way of filling the environment with anything more than monsters still! 
 
trisouping makes for really wonky slopes and ramps that are very awkward to walk on. collision with lots of strangely angled walls also feels very catchy and jagged. it looks nice but it works a lot better in quake3.

use flat floors, big ramps at compiler-friendly slope ratios, and lots of small steps if you really need to break up a floor with geometry. make your cliffs out of irregular hexagonal and pentagonal prisms (with the corners on-grid and the faces also on compiler-friendly slopes) and only slant the tops and bottoms.

you will be entirely forgiven (by me at least) if your rocks look a little "quakey" but have smooth solid collision. 
Mapping Tip Of The Day 
So you want to cast a shadow invisibly, like the Q on the ground in e1m5? If you're using a compiler which supports _shadow, you've probably thought of doing it with a func_wall that you then killtarget, or even hacking the entities in the bsp and deleting the func_wall. But there's an easier way! Instead of making the shadowcaster a func_wall, just give it the classname info_null, and the QC will remove it for you, no mess, no fuss. 
Rocks 
I liked the rocks in Daz' brimstone mapjam entry - they looking volcanic rock-like despite being angular and quakey.

Making really big lumps of strata looks good and doesn't leave you with micro-clip floor problems. 
@ijed 
Isn't it just a matter of structural irregular rock brushes touching the floor? Isn't it just a matter of making a whole cliff or at least its bottom a func_detail? Or func_wall, if my compiler doesn't support details?

@Lunaran

Shouldn't I just "caulk" my level in a Q3 style? I mean, make a jaggy cliff func_illusionary and cover it with clip brushes? That would separate the visual cliff from its collision.

About damage_inc question, can't I just fill my level with MDL props? 
 
I use to smooth player collision against really detailed walls using clip brushes. Any reason to not do it? 
 
definitely clip off detailed stuff always.

func_illusionary won't help you though, it's not solid to weapons so the player will notice right away.

mdl props are useful if they're small, but since they're vertex lit by the ground beneath their origin they're not useful for large things because they don't get shaded, so you can't make buildings or pillars or archways as big mdls. 
Microclipping 
By that I meant when tiny invisible misalignments in the floor form overhangs that the player gets stuck on.

Typically these are the result of mathematical inaccuracy from the editor and/or compiler.

The player will only notice them when they're part of the floor, since that's what they touch the most.

So it's pretty much what Lun says - use flat or simple brushes for your actual floor surfaces, or at least the ones the player will most use to navigate your level.

And yes, make the entire thing _detail. It has two downsides - higher memory requirement for end user (you might need heapsize >64 !!!) and the compiler will crash if there are no 'normal' world brushes.

Clipping off details is good for both the player and Quake Ai, and has a negligible improvement for the speed of calculating the hulls I believe. 
 
I've seen that "microclipping" thing happen occasionally. Seems to be a problem with the clipping hull because the brushes will all appear to meet perfectly. Usually a well placed clip brush will fix it. I've never had it happen enough to consider it a major problem. 
 
Thanks, guys. And @ijed, it's possible to pick what will be detail and what will not. In a pillar, just that lower brush that touches the floor, for example, not the whole thing. That's how I used to do for Torque Game Engine. I assume it's the same principle for modern Quake? Sometimes a touched surface can split and it's not bad. 
 
Lunaran

You mentioned "compiler-friendly slope ratios". Is that just wordsmithing or is that an actual thing? And, if so, is there a reference somewhere? 
First Thing That Came To Mind 
Adib 
Yeah I know, it's just more convenient to make the whole thing one object and has no real downside. 
 
OTP - Thanks! That's useful, saved... 
Warren 
The compiler splits the world up by radiating brushplanes outwards and cutting space with them, and if it picks a plane that's at some cockeyed angle the split it makes will intersect other walls and brushes in off-grid places. Walls, and vis leafs, will be split more often than is really necessary since intersections will rarely coincide with each other or with existing brushwork seams. Which is *technically* fine, modern computers and all that, but if you do this a lot you'll get a less healthy bsp tree. Vis will be shakier, and I think there's potential for microleafs and etc (someone like ericW can correct me on this voodoo).

Basically it doesn't make the map look a whole lot different to try to stick to 1:1, 1:2, and 1:4 but applied thoroughly it greatly reduces the odds of those really arcane compile errors, or a map with seemingly impossible to trace or fix vis errors like jam6_daz (once you start throwing little cylinders literally everywhere). 
 
OK, thanks. Yeah, I'm always awash in QBSP errors and VIS problems. 
Lunaran 
Just to be perfectly clear: func_detail planes (or func_whatever actually) doesn't split the space, right? Making a func_detail is just the way to let a structural regular brush out of VIS compilation, is that correct? 
Adib 
func_detail *does* split up the world. e.g. if you have a bunch of vertical columns as func_detail, they will split up the floor where they touch. The reason for this is Quake doesn't really support detail brushes, so they are compiled into ordinary world polys, except qbsp passes some extra info about them to vis so they can be ignored by the vis process. Also, func_detail shouldn't be used to seal the map - not sure why.

All of the other func_* entities behave differently - they're called "bmodels". They:
-are invisible to vis, like func_detail
-don't split up the world.
-are rendered in a separate pass by the engine. Some engines like fitzquake can get slow with very complex bmodels.
-they originally didn't cast shadows, but you can make them cast shadows with tyrutils by setting "_shadow" "1" on the entity.
-they take an edict slot.

So - long story short - if you specifically don't want to cause splitting of the world, use a func_wall with "_shadow" "1" set 
 
Now that func_walls can cast shadows, they are as close as you can get to Quake 3 detail brushes.

It's too bad they contribute to the 256 model limit. Is that impossible to change? 
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.