Page 1 of 2

RF Level Editor and General Level Building questions

Posted: Sun Aug 07, 2005 11:37 am
by QuestOfDreams
Q: Compiling- I'm new to Reality Factory and I was reading the compiling information. Is it true that you need Microsoft Visual C++ 6.0 to compile your game? Can you make a game without having it? I don't really feel like buying it either.

A: With RF there are several types of compiling that people will refer to:


1) Compiling levels - this is done from within the level editor, and is a required step to get your levels from the editor to the game. compiling a level calculates the .bsp file for the renderer and precalculates the lighting for the map. If you are planning to just build levels and run your game without customizing the Realityfactory program itself, then this is all you will likely be doing. No Visual Studio required.

2) Actors are compiled with the actorstudio.exe tool, this takes the actors mesh (the 'body' - .bdy file) and the animations (the 'motions' - .mot files) and compiles them into a game-ready .act file.

3) Compiling the Realityfactory.exe application. MOST USERS WILL NEVER NEED TO DO THIS- FOR ADVANCED RF EDITING ONLY. This is the main 'game' application that you will use to run the levels that you have built. You DO need Visual Studio to recompile the exe, but we provide you with a ready-to-go version so you don't necessarily have to. some people want custom features, etc that aren't in the default build of RF, and as such, they must use Visual Studio to compile their custom changes.

Posted: Sun Aug 07, 2005 11:39 am
by QuestOfDreams
Q. There are only a few entities. How do I see them all?

A. In the level editor, make sure the Headers Directory is set to c:\RealityFactory\source (or wherever your install of Reality Factory is).
RFEdit: Options->Level Options: Headers Directory
RFEdit Pro: Project->Level Options: Headers Directories
World Editor: File->Properties: Headers Directory

Posted: Sun Aug 07, 2005 11:46 am
by QuestOfDreams
Q. How do I place an entity in RFEdit/RFEdit Pro?

A. To place an entity, you must be in template mode (in RFEdit: the button in the menu with a big T on it, In RFEdit Pro: the button with the purple square and the arrow in it) then click on the template tab, the dropdown box contains the entity list.
Drop it down and select what you want . . .say a light.
Click on 'light' to highlight it (in RFEdit press the button next to the drop down list). Look back at your 2D maps and you will find that a blue X has appeared on your map. This is the soon-to-be light.
Click on the x and drag it to where you would like to place it. You can go back and forth to the different views to get it how you like, then press the 'Enter' key.
If you have the sound on, you will hear a funny little noise when you hit the enter key if you did things right. Then, when you go to select mode (in RFEdit: the button with the angled arrow in the top menu, in RFEdit Pro the button with the blue square and the arrow in it) that little blue x will turn white. If you did not do it right, the little blue x will disappear and you will have to start over.

Posted: Sun Aug 07, 2005 11:54 am
by QuestOfDreams
Q. I load a .3dt it says, 'Playerstart not found' or the level has no textures.

Q. I load a .3dt into World Editor or RFedit, it says, 'some entities or brushes did not load properly, see console for details.' The console will say something like:

Entity PlayerSetup1: type not found.
Entity PlayerStart1: type not found.
Entity DynamicLight1: type not found.


A. Go to Project->Level Options and browse to where the proper .txl file is c:\realityfactory\media\levels\default.txl is the standard, and c:\realityfactory\source is where GameEntityDataTypes.h usually lives.

Posted: Sun Aug 07, 2005 11:59 am
by QuestOfDreams
Q. I just made a level and it won't show up when I hit preview.

A. All levels need these two entities to run in the game. It is recommended you leave them at default settings the first time you run the level.

PlayerSetup
PlayerStart (this should be in the location you want to start the level in)

The entities must be placed somewhere inside the level.

Posted: Sun Aug 07, 2005 12:01 pm
by QuestOfDreams
Q. I apply the sky textures to the front, back, left, right, and top parts of where my player starts and check sky in the attributes. when I compile and test the sky is either just black or is the origonal texture that was given when I created the box.

A. To set a face to sky, make sure you select the inner face of the box and set the attribute to sky. Do this to all the faces you want to show the sky box in.

Posted: Sun Aug 07, 2005 12:09 pm
by QuestOfDreams
Q. 'Error writing level .MAP file. Check the output file path and ensure there is enough disk space' (when trying to compile a level). I have 1 gig free at least, and attempt to compile a smaller map. Changed to another drive, did the, same thing.

A. If you click ok and look at the path that it says it's writing the map file to you'll notice that the path is wrong, just change the path to the location of your RF maps and all should be well (e.g. c:\ RealityFactory\media\levels).

Posted: Sun Aug 07, 2005 1:11 pm
by QuestOfDreams
Q. What size should I make my levels?

A. The default player is 72 texels high. The default player is made to go through a 96 texel high door. Standard walls are 128. To make textures scale properly, brushes should be made in increments of 32 or 16. These are defaults and can be changed to anything. As for the whole level, it's generally agreed that a cube 4096 texels on a side, including skybox, is the limit.

The renderer breaks down after the 4096 limit due to floating point roundoff error. Most BSP engines suffer from this - it's one of the limitations of this engine type. As long as you don't allow (through either visibility blocking or clipping plane) the engine to render more than 4096 in any direction there should be no problem with levels exceding this size. You may require a lot more memory for bigger levels and that could be the real limiting factor.

Also note you can scale your actors and everything down.

Posted: Sun Aug 07, 2005 1:15 pm
by QuestOfDreams
Q. How do I get my level to compile, what and where are the .3dt, .bsp, .map, .prebsp, .gpf, .rec?

A. When you compile your level and the compile options box comes up look at the top line where it gives the directory and file name of the intermediate file the compiler will produce.

It will be a .map (rfEdit) or a .prebsp (World Editor). Note this is not the same as a Quake 2 type map file that's imported and exported by World Editor 2 and WorldCraft, and other Quake 2 engines. You might want to keep the Quake 2 maps in a separate directory.

Your .bsp file will be in the media\levels directory. Make sure this points to the media\levels directory.

When you save a level file it is a .3dt file and is saved in media\levels. This is a text file with all the info about your level in it.

All the other files except the.bsp file are used by the compiling process and can be ignored. The extra levels folder with nothing in it is required by World Editor when previewing a level. .rec files are lighting calculations made when you check 'radiosity'. GPF files are intermediate compiler files, .log is a text file report of the compile, look at this if your level doesn't work.

Posted: Sun Aug 07, 2005 1:19 pm
by QuestOfDreams
Q. What are the pros and cons of using cut brushes, that is, brushes that subtract from solid normal brushes as when you cut a wall to make a door?

A. This is from Festy, one of the original Eclipse level designers:
WARNING
There are a number of compile imperfections and even some bugs(!) in the first editor* that hide amongst cut brushes. Such as:

Textures that get shared across coplanar faces no matter how many times you tell it otherwise (floor texture of one cut room floods into the floor of the other room). Often fixed by making cuts slightly higher or lower (doorway slightly raised off ground).

Extra geometry leftovers (strange bits of geometry that hang out in mid air -- like molding chaff). Often fixed with proper snapping.

Fatal compile errors (too many 'brush has null volume' and other normally harmless warnings). Often fixed by avoiding cut brush overlap (and make newest on those that do to put them into hierarchical adjacency).

It is safer to use mostly solids for complicated levels. However, you can certainly continue using cuts if you are experiencing none of these symptoms, and can even mix up many styles within the same level.
*Note: The 'first' editor is the one you're using now, nothing major has ever been fixed.

Posted: Sun Aug 07, 2005 1:24 pm
by QuestOfDreams
Q. How do I get the window option in the brush attributes to work in the editor?

A. If you want a brush to be a window, you have to set its transparency: Select the brush, change to the face adjustment mode, open up the face attributes dialog, activate "Transparent" and enter a value about 160-180.
Setting the window flag in the brush attributes dialog only means that the brush won't cast a shadow.

Posted: Sun Aug 07, 2005 1:27 pm
by QuestOfDreams
Q. How do I place wall decals?

A. Placing Walldecals is more black magic than science but here are a few tips to make it right.
First, never, NEVER use the mouse to rotate the direction arrow. You'll never get things to work again if you do. Instead, use the entity editor to change the values of Angle.
To place the decal on a wall set X and Z to 0 and Y to 0, 90, 180 or 270. The arrow will point in the correct direction and you can move the entity to get the correct spot (where the arrow intersects the wall).
To place it on the floor set Y to 90, Z to 0 and X to -90. The arrow will point down and you can move the entity to the proper location.
To place on ceilings set Y to 90, Z to 0 and X to 90. The arrow points up correctly.
Using other values may give strange results.

Posted: Sun Aug 07, 2005 1:30 pm
by QuestOfDreams
Q. What is a detail brush for?

A. "As for details, they are for convenience. If there is a brush (a railing, say) that does little to completely obscure polygons (thus vising out nothing), then you can tell the compiler 'don't bother with that one, it's not worth the trouble.' Then the compiler can stick with the big walls and such for determining the visibility of polys from each given area of space (portal). 'Vis detail' on a full vis is for when you want the compiler to eliminate every last poly it can for maximum frame rate, because you are telling the compiler to use every single brush in the hopes that a few more unnecessary polys aren't drawn. This can occasionally backfire a bit. " Festy.

In most cases, it will slow down if details brushes are included in vis calculations. The BSP tree becomes much more complicated and so slower to deal with. On the other hand, if there are detail brushes that play an unsuspected part in the vis, it could go faster.

Posted: Sun Aug 07, 2005 1:34 pm
by QuestOfDreams
Q. I was just wondering.. I believe I read somewhere that you can import level geometry created in 3rd party software (ie. Milkshape, etc). does RF also retain the texturing or do you only create the geometry in the modeler and do all the texturing in the editor?

A. The level editors can import .map files. Worldcraft (and all other Quake 2 editors I've heard of) can export .map files. If you have Max, you can use gamebuilder to build maps and run 3ds2map on them. The textures are generally butchered, but Worldcraft .maps exports seem to retain the textures best. The Genesis .bsp compiler processes individual brushes, not contiguous meshes.

Posted: Sun Aug 07, 2005 1:38 pm
by QuestOfDreams
Q. How do I make a terrain?

A.The easiest way is using Nem's Terrain Maker. It can be found at
http://nemesis.thewavelength.net/index.php?p=8
Recommended settings:

X axis Length in Triangles 32 (+/- 4096)
Y axis Length in Triangles 32 (+/- 4096)
With a Triangle length of 256 (giving 2048 total faces)
Not adding hint brushes (although sky should work)

With these settings you will need a clipping plane at 4000 units or you might see rendering artifacts. If you don't want to use a clipping plane then 32x32 x 128 or 16x16x256.