Unreal and Quake engines

Started by
12 comments, last by Monder 21 years, 1 month ago
Mapping for the Unreal engine and Quake engine is very different. In Unreal your meant to think of carving everything out of an infinite block and in Quake your meant to think of adding everything to an empty void. I was wondering why is this? Is it something to do with their space partitioning techniques?
Advertisement
At least with the Quake engine, it has nothing to do with the space partitioning. The CSG map (map built with blocks) is compiled using a special tool into a BSP-partitioned world that the engine can load and use.
There might be something like this going on for Unreal engine too... This would mean that carving / adding is simply the way the map editor programmers wanted their application to be.

ToohrVyk
-------------
Extatica - a free 3d game engine
Available soon!
Click here to learn more
Talking about Unreal Engine:
I was wondering what Space Partitioning Algorithms they use. I now Quake uses BSPs, but what about Unreal? Does it use BSPs too, or Octrees or whatever else exists. Just curious about that. I have no intent on rewriting Unreal or whatsoever.
Carving out of solid space and adding stuff to a room is ultimately the same thing.

When the room has been created by inserting a box or cutting one out of solid is meaningless as the player sees walls either way. It all comes down to putting objects in that room.

There is a mathematical leakage reason for it which nobody understands.

********


A Problem Worthy of Attack
Proves It''s Worth by Fighting Back
spraff.net: don't laugh, I'm still just starting...
quote:Original post by Monder
Mapping for the Unreal engine and Quake engine is very different. In Unreal your meant to think of carving everything out of an infinite block and in Quake your meant to think of adding everything to an empty void. I was wondering why is this? Is it something to do with their space partitioning techniques?


I think the reason the unreal map-making program uses the carving idea is because its impossible to have ''leaks'' when carving. A leak is when you don''t close a section off(like two walls don''t touch perfectly) so its possible to get outside the world. If the hole is big enough, players might fall outside the map and get stuck, but even if its really small it prevents the PVS system from optimizing the visibility information stored in the map file.
The map can run SIGNIFICANTLY slower if you don''t properly close the map using a ''build out of the void'' method, but its much more difficult to accidentally cause such a problem in the ''carve out of a solid world'' method.

----------
Almost typo-ified using Extrarius'' AUTOMATIC Typo Generator, but I decided to be nice =-)
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
Additionally preference of the users may have something to do with it(at least partially) , I found the cookie cutter method less intuitive early on than the create faces method, but after becoming familiar with the cookie cutter i found it was easier to use and in worldcraft making verticies of different faces match was a pain (leak issues mentioned in above post). I'm not sure between the Q3A vs UrealED, but from my experience comes from using Worldcraft vs. RED (redfaction level editor).

[edited by - _walrus on March 3, 2003 4:47:23 PM]
Thanks for the replies guys. I thought it was probably just the way the map editors work it''s just every map editing website I''ve read about it on(well many) talks about positive and negative space engines so I though there may actaully be a difference in the way the handle the map drawing stuff
In response to the comment made by walkingcarcass: "There is a mathematical leakage reason for it which nobody understands." ...

The whole idea is to partition the world into "solid space" and "empty space". So any surfaces that can be seen are facing "empty space". You must never have any geometry in which the visible side is facing solid space.

To illustrate what that means, picture a cube, for example. You know intuitively that each quadrilateral faces away from the center of the cube. That is, each quad is facing empty space, and the volume inside the cube is considered solid space. You never want to have geometry protruding solid space. If you did have this situation occuring in your 3D modelling application, you would need to do some boolean operations to cut out, or remove, the intersecting geometry.

Now why would you put these restrictions on the geometry? Well, the BSP compiler uses the knowledge that everything is either in solid space and empty space to build a list called a possible visibility set (PVS).

The way this works is as follows. The BSP compiler first creates a all of the portals. Think of these as invisible windows that plug up the doorways between concave hulls. When this step is done, you will now have rooms, or pockets of meshes that are all separated by these portals.

Next, the compiler generates a list called the possible visibility set (PVS) for each of these rooms (or brushes if you will). So when the camera is inside any node, you will already know what nodes are possibly visible from that node, and only bother to process and render those brushes. As you can imagine, this greatly reduces the amount of geometry the game engine needs to deal with on a per frame basis. This is why your first person shooters can render the maps so fast - they are not trying to render everything, just a small subset of it.

Thats just an oversimplified idea of what is going on here.

But just to summarize, your world geometry should always be completely separated into solid space and empty space. If any solid geometry is intersecting, perform boolean operations to subtract the overlapping portion of the geometry, and make sure the rest is welded together to become a single solid mesh. If you keep this in mind when you are modelling, all should work well.

The beauty of those game world editors such as UnrealEd, Q3Radiant, etc. is that they are designed to make sure you are building worlds that follow this concept of solid / empty space. Doing the work yourself in traditional modelling tools like 3ds max and Maya put the onus on the artist to keep things straight. These tools will save you time, and probably alot of frustration.


Terry Sznober
http://www.terrysznober.com
unreal''s is probably simpler to make, even though it SEEMS harder. its also probably faster because for one room, you have 6 polygons, but in quake you have 6 * 6, because each wall is really a block by itself (simple blocks, not complex intersections if it can do that)
unreal is bugfree.. you can''t "falloff" an unreal level. (though, the editor is not bugfree, so you _can_ build holes)

unreal makes much more sense. a level should never go into infinity => digging out the level of solid makes more sense

"take a look around" - limp bizkit
www.google.com
If that's not the help you're after then you're going to have to explain the problem better than what you have. - joanusdmentia

My Page davepermen.net | My Music on Bandcamp and on Soundcloud

This topic is closed to new replies.

Advertisement